Cookie中的几个概念

1. Domain

Domain表示Cookie所在的域(如:www.baidu.com),对于Cookie的访问是不能跨域的(如:我们无法在www.baidu.com下访问www.google.com中的Cookie),但当前域中的cookie可以在子域中访问,反之则不行;

 

2. Path

Path表示Cookie所在路径(或者说是目录),我们可以访问本目录及其上级目录(所有的上级目录)中的Cookie,但不能访问子目录中的Cookie。对于相同目录中的Cookie,多次赋值则后面的值会覆盖前面的值。对于不同目录下的同名Cookie的值则互不影响。

在ASP.NET中,Cookie的路径默认是"/",即根目录:

在Chrome浏览器中可以通过开发者工具来查看Cookie:

 

3. 同源策略限制

Cookie受同源策略影响相对较弱,只要发送请求方所在域与Cookie的Domain值相同即可将cookie发送至服务器端,无需考虑协议和端口号。如:

home.cnblogs.com/u/Cwj-XFH/,home.cnblogs.com为博客园的二级域名,/u/Cwj-XFH/为访问路径。

 

服务器无法将cookie的Domain值设置与当前域不兼容(如,一级域名和二级域名可以理解为兼容)的值。如:

在www.a.com中设置cookie的Domain值为www.b.com,则默认情况下浏览器不会存储该cookie

 

4. 第三方Cookie

若cookie的域和当前页面的域不同或不兼容的cookie称为第三方cookie,反之则成为第一方cookie。

第三方cookie多用于浏览记录追踪和广告投放,可在浏览器设置中禁用第三方cookie。

 

5. 其它

服务器可以设置cookie的各种属性,如名称,值,过期时间等等。但具体的存储是在客户端,过期时间也以客户端为准而非服务器。一句话:服务器下命令,客户端干活。

Cookie不可跨浏览器访问,如chrome和IE,但同一台计算机上打开两个chrome浏览器则不存在该问题;

Cookie不可跨域访问,见第3条。

浏览器对于各站点存放的cookie数量及大小均有限制;

敏感信息或重要信息不推荐放到cookie中,警惕CSRF攻击;

 

6. 推荐阅读

HTTP cookies

Google 使用的 Cookie 类型

How do browser cookie domains work?

同源策略与CORS

版权声明

本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接

如有问题, 请发送邮件和作者联系。

posted @ 2016-07-19 15:49  雪飞鸿  阅读(663)  评论(0编辑  收藏  举报