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的页面路径
- 同源策略:同一协议,同一域名,同一端口号。只要不满足三者其中一种都是属于跨域问题