1、Cookie是什么

Cookie是一小段文本信息,伴随着用户请求在 Web 服务器和浏览器之间传递。它存储于访问者的计算机中,每当同一台计算机通过浏览器请求某个页面时,就会发送这个 Cookie。Cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,也就是说,Cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。

最常见的用途就是我们在登录网站的时候会勾选下次自动登录,这样后面就不需要重复验证了,就是通过Cookie保存的用户信息。

2、Cookie的作用域

Cookie有两个很重要的属性:Domain和Path,用来表示此Cookie的作用域

  • Domain字段为可以访问此Cookie的域名,告诉浏览器当前要添加的Cookie的域名归属,如果没有明确指明则默认为当前域名,可以设置当前域名或者(​父域名必须以“.”开始,例如.xxx.com​)。为了保证安全性,Cookie无法设置除当前域名或者其父域名之外的其他Domain。
  • Path字段为可以访问此Cookie的页面路径。如果没有明确指明则默认为当前路径,比如Domain是sixi.com,path是/contoso,那么只有/contoso路径下的页面可以读取此Cookie,"/"表示根路径。

例如

类型

Domain

Path

Cookie1

.sixi.com

/

Cookie2

www.sixi.com

/contoso/

Cookie3

lw.sixi.com

/

Cookie4

www.sixi.com

/

当我访问www.sixi.com时:
Cookie1 可以提交
Cookie2 不可以提交,path不一样
Cookie3 不可以提交,lw.sixi.com不是www.sixi.com的父域名
Cookie4 可以提交

3、同源策略

同源策略:同一协议,同一域名,同一端口号。只要不满足三者其中一种都是属于跨域问题。

例如

​http://www.sixi.com:6666/contoso/lw.html

协议是http://

域名是www.sixi.com

端口是6666

4、总结

  • 重要属性:Domain和Path,Domain为Cookie的域名,Path为Cookie的页面路径
  • 同源策略:同一协议,同一域名,同一端口号。只要不满足三者其中一种都是属于跨域问题