服务器set-cookie出现同名key的问题

首先简单介绍一下服务器set-cookie时关于path的规则

cookie的path属性:它表示此cookie在哪个路径下起作用。

如果服务器不设置cookie的path或设置了相同的path,则名字相同的Cookie视为相同的Cookie,后面的会覆盖前面的COOKIE,服务器设置COOKIE时是大小写敏感的。

如果服务器为同名的Cookie设置了不同的path,那么这就是两个不同的COOKIE,分别用在不同的路径下。

服务器默认的Cookie-path为当前请求URL的路径。
总结:cookie可以重名,但同名同path的cookie视为相同cookie,后面的会覆盖前面的

 

1.案例一、如图

 

在本例中第一个CSRF_VALIDATE也就是如下路径: /uap/

作为初学者,我就暂且武断的认为,这两个COOKIE设置重复了,新的CSRF_VALIDATE没有了HttpOnly属性,path值为/uap/

 

2.案例二、

同名cookie不同path,这里相当于如果你要访问/uac这个目录,需要打开两道门,第一道门是/,第二道门是/uac
第一个JESSIONID是打开/目录的钥匙。第二个JESSIONID是打开/uac这个门的钥匙。

 

 

在浏览器环境下,修改Cookie值主要有以下几种方式: ### 1. **通过JavaScript操作** 可以直接利用 `document.cookie` 属性对 Cookie 进行读取、设置和删除。 - 设置或修改一个已存在的 Cookie: ```javascript document.cookie = "key=value; expires=Thu, 01 Jan 2050 00:00:00 UTC; path=/"; ``` 其中: - `"key=value"` 表示键值对。 - `"expires="` 定义过期时间。 - `"path="/` 指定路径范围。 如果需要覆盖现有的同名 Cookie,则只需要再次指定相同的名称即可完成更新。 --- ### 2. **服务端返回Set-Cookie头** 当服务器向客户端响应数据时,可以携带 HTTP 响应头部字段 `Set-Cookie` 来创建新的 Cookie 或者替换已有 Cookie 的内容。例如,在 Express 中可以通过这种方式设置: ```javascript res.setHeader('Set-Cookie', ['name=value; Path=/']); ``` 客户端接收到这个请求后会自动将该信息存储到对应的域名下,并且会在后续访问此站点资源时附带发送给服务端。 --- ### 3. **HTML表单提交并由后台处理后再生成新Cookies** 用户填写完 HTML 页面中的某些表单项之后点击按钮触发 POST 请求传递至服务器上;然后依据业务逻辑判断是否应该改变用户的 Session 状态或者其他相关信息并通过 Set-Cookie 回显回去保存进浏览器缓存区里去供下次调用继续沿用当前登录凭证等资料方便快捷地认证身份验证流程减少频繁输入账号密码麻烦程度提高用户体验满意度水平达到高效便捷的目的效果显著优于传统手动编码维护的方式效率更高准确性更强稳定性更好兼容性强适配广泛等等优点十分突出值得推荐使用这种方法来进行日常项目开发工作当中遇到类似需求场景的时候优先考虑采用这样的解决方案比较好一些哦!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值