工作中遇到的cookie知识整理

本文主要记录在工作中遇到的cookie知识的一些整理,这些零散的细节的知识点在没遇到的时候是模棱两可,遇到的时候又不是很深入地了解,所以还要查资料,写demo来反复验证。所以这里把这次关于cookie的知识记录下以便后续查看。

在介绍结果之前先阐述个基本知识:同源,即相同协议、相同域名、相同端口。浏览器对于跨域访问有一些限制,但是对于cookie的限制稍微有些不同。

在实验中我们不讨论设置cookiedomain,只考虑设置path字段,有如下结论:

  • 同源情况下共享cookie,没毛病
  • 不同协议、同域名、同端口在不设置path或使用默认的path=/的情况下是共享cookie的,注意这里的默认path/,此时http和https是可以共享的
  • 同协议、同域名、不同端口在不设置path或使用默认的path=/的情况下是共享cookie的,此时跨端口是可以共享的
  • 不同协议、同域名、不同端口在不设置path或使用默认的path=/的情况下是共享cookie的,此时跨端口是可以共享的
  • 同协议、同域名、同端口、不同子目录的情况下在不设置path或使用默认的path=/的情况下是共享cookie的,即http://xxx.xx:port/abchttp://xxx.xx:port/def是共享cookie
  • 同协议、同域名、同端口、不同子目录的情况下在设置path为子目录的情况下不同的子目录是不共享cookie的,即path=/abchttp://xxx.xx:port/abchttp://xxx.xx:port/def不共享
  • 同协议、同域名、不同端口、不同子目录的情况下在不设置path或使用默认的path=/的情况下是共享cookie的,即http://xxx.xx:port1/abchttp://xxx.xx:port2/def是共享cookie
  • 同协议、不同二级域名在不修改domain的情况下是不共享cookie的,即https://super.domain.comhttps://sub.domain.com是不共享cookie

因此可以得出:

不管使用哪个协议(HTTP/HTTPS)或端口号,浏览器都允许给定的域以及其任何子域名(sub-domains)来访问cookie。
但跨二级域名是不共享cookie的。

测试文件

测试参考

相关文章

分享到