cookie知识总结

1.cookie的同源协议不同于cors,cookie同源不区分端口,比如www.baidu.com输出的cookie在www.baidu.com:8080站点中也可以读写。

2.父域名和(www.baidu.com)子域名(a.baidu.com)或多个子域名间(a.baidu.com,b.baidu.com)需要共享cookies的,输出cookie时domain应设置为baidu.com。
3.path
一个站点下有如下目录:/test/,/test/a/,/test/b/,现设一个cookie1的path为/test/,cookie2的path为/test/b/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/a/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。
 
参考知识: Cookies  使用不同的源定义方式
 
4.ajax与cookie
 
ajax同源请求时,如果响应头中包含cookie信息,浏览器会自动写入,请求时如果站点下有cookie也会自动带上。
ajax跨域请求时,即使响应头中包含cookie信息,浏览器也不会自动写入,js无法从响应头中读取到cookie信息,发送请求时ajax不会自动携带能访问到的cookie(即cookie同源,ajax跨域),需要通过前端和后端配置相应参数:
前端参数:
withCredentials: true(发送Ajax时,Request header中会自动带上Cookie信息) 
后端参数: 
 (1)Access-Control-Allow-Origin:设置允许跨域的域名, 响应头指定了该响应的资源是否被允许与给定的origin共享; 特别说明:配置了Access-Control-Allow-Credentials:true则不能把Access-Control-Allow-Origin设置为通配符*; 
 (2)Access-Control-Allow-Credentials:响应头表示是否可以将对请求的响应暴露给页面(cookie)。返回true则可以,其他值均不可以

 5. 获取站点下的所有cookie名

var cookieNameArray = document.cookie.match(/[^ =;]+(?==)/g);
posted @   我是格鲁特  阅读(199)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示