当用户第一次访问并登陆一个网站的时候,cookie的设置以及发送会经历以下4个阶段:
客户端发送一个请求到服务器
服务器发送一个httpResponse响应到客户端,其中包含set-cookie的头部
客户端保存cookie,之后向服务器发送请求时,httpRequest请求中会包含一个Cookie的头部
服务器返回响应数据
cookie的域名
Cookie是不可以跨域名的,隐私安全机制禁止网站非法获取其他网站的Cookie。
正常情况下,同一个以及域名下的两个二级域名也不能交互Cookie,比如test1.jianshu.com与test2.jianshu.com,因为二者简书的域名不完全相同,如果想要jianshu.com名下的二级域名都可以使用该Cookie,需要设置Cookie的domain参数为jianshu.com,这样使用test1.jianshu.com和test2.jianshu.com就能访问同一个域名了。
下面是Chrome浏览器存储的一个cookie信息
设置的过程,服务器设置cookie的时候,需要指定cookie的domain,当domain与当前host的匹配不上的时候,responseHeader里的set-cookie不会设置成功。这也就是cookie不支持跨域问题。