欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

cookie的规范Cookie的不可跨域名性或Cookie与域名的关系

程序员文章站 2022-03-11 16:21:38
前些天在开发中遇到了关于浏览器cookie的一些小细节问题。例如: 我创建的一个小购物车的web项目。 用nginx绑定域名cart.test.com,对应ip为localhost:8888。具体问题: 使用地址栏访问:cart.test.com/cart/addItemToCartList?itemId=123 (此为添加购物车数据方法)时,返回的结果为成功,存储过程没有问题。但是,我使用......

前些天在开发中遇到了关于浏览器cookie的一些小细节问题。

例如: 我创建的一个小购物车的web项目。
用nginx绑定域名 cart.test.com,对应ip为localhost:8888。


具体问题: 使用地址栏访问:cart.test.com/cart/addItemToCartList?itemId=123 (此为添加购物车数据方法)时,返回的结果为成功,存储过程没有问题。
但是,我使用localhost:8888/cart/findCartList(此为查询购物车数据方法)获取的数据却是空数组:[]。然而,如果换成 cart.test.com/cart/findCartList 访问该方法时却可以拿到数据。
解决思路:通过debug发现我使用 cart.test.com/cart/findCartList 和localhost:8888/cart/findCartList 访问同一方法时,所产生的cookie是不一样的。

答案:百度得知
cart.test.com/cart/findCartList
localhost:8888/cart/findCartList
域名和域名对应相同ip
这种情况属于跨域场景。又因为,Cookie具有不可跨域名性。所以无法获取同样的数据。

解决方案:初步定为统一访问方式
参考如下:

*常见跨域场景
URL 说明 是否允许通信
http://www.domain.com/a.js
http://www.domain.com/b.js 同一域名,不同文件或路径 允许
http://www.domain.com/lab/c.js
http://www.domain.com:8000/a.js
http://www.domain.com/b.js 同一域名,不同端口 不允许

http://www.domain.com/a.js
https://www.domain.com/b.js 同一域名,不同协议 不允许

http://www.domain.com/a.js
http://192.168.4.12/b.js 域名和域名对应相同ip 不允许**

http://www.domain.com/a.js
http://x.domain.com/b.js 主域相同,子域不同 不允许
http://domain.com/c.js

http://www.domain1.com/a.js
http://www.domain2.com/b.js 不同域名 不允许*

最后说一下cookie的相关知识点:

  1. Cookie的不可跨域名性

很多网站都会使用Cookie。例如,Google会向客户端颁发Cookie,Baidu也会向客户端颁发Cookie。那浏览器访问Google会不会也携带上Baidu颁发的Cookie呢?或者Google能不能修改Baidu颁发的Cookie呢?

答案是否定的。Cookie具有不可跨域名性。根据Cookie规范,浏览器访问Google只会携带Google的Cookie,而不会携带Baidu的Cookie。Google也只能操作Google的Cookie,而不能操作Baidu的Cookie。

Cookie在客户端是由浏览器来管理的。浏览器能够保证Google只会操作Google的Cookie而不会操作Baidu的Cookie,从而保证用户的隐私安全。浏览器判断一个网站是否能操作另一个网站Cookie的依据是域名。Google与Baidu的域名不一样,因此Google不能操作Baidu的Cookie。

需要注意的是,虽然网站images.google.com与网站www.google.com同属于Google,但是域名不一样,二者同样不能互相操作彼此的Cookie。
参考作者:https://www.cnblogs.com/andy-zhou/p/5360107.html

本文地址:https://blog.csdn.net/weixin_43043173/article/details/85914901

相关标签: 开发 cookie规范