Cookie

两种常用类型的cookie
1.临时Cookie(会话Session Cookie)
不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。
这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
2.永久Cookie(有实效的Cookie)
设置了过期时间,浏览器就会把cookie保存到硬盘上,
关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

一般来说cookie总共分为以下7种:

  1. Session Cookie
    这个类型的cookie只在会话期间内有效,即当关闭浏览器的时候,它会被浏览器删除。设置session cookie的办法是:在创建cookie不设置Expires即可。
  2. Persistent Cookie
    持久型cookie顾名思义就是会长期在用户会话中生效。当你设置cookie的属性Max-Age为1个月的话,那么在这个月里每个相关URL的http请求中都会带有这个cookie。所以它可以记录很多用户初始化或自定义化的信息,比如什么时候第一次登录及弱登录态等。
  3. Secure cookie
    安全cookie是在https访问下的cookie形态,以确保cookie在从客户端传递到Server的过程中始终加密的。这样做大大的降低的cookie内容直接暴露在黑客面前及被盗取的概率。
  4. HttpOnly Cookie
    HttpOnly属性指示浏览器除了HTTP/HTTPS请求之外不要显示cookie。这意味着这种cookie不能在客户端通过脚本获取,因此也不会轻易的被跨站脚本窃取。目前主流的浏览器已经都支持了httponly cookie。1. IE5+ 2. Firefox 1.0+ 3. Opera 8.0+。
  5. 3rd-party cookie
    第一方cookie是cookie种植在浏览器地址栏的域名或子域名下的。第三方cookie则是种植在不同于浏览器地址栏的域名下。例如:用户访问a.com时,在ad.google.com设置了个cookie,在访问b.com的时候,也在ad.google.com设置了一个cookie。这种场景经常出现在google adsense之类的广告服务商。广告商就可以采集用户的一些习惯和访问历史。
  6. Super Cookie
    超级cookie是设置公共域名前缀上的cookie。通常a.b.com的cookie可以设置在a.b.com和b.com,而不允许设置在.com上,但是很不幸的是历史上一些老版本的浏览器因为对新增后缀过滤不足导致过超级cookie的产生。
  7. Zombie Cookie
    僵尸cookie是指那些删不掉的,删掉会自动重建的cookie。僵尸cookie是依赖于其他的本地存储方法,例如flash的share object,html5的local storages等,当用户删除cookie后,自动从其他本地存储里读取出cookie的备份,并重新种植。
Ps:
cookie过期时间为0,马上过期,即会话,并非真的马上失效,浏览器关闭才失效。
当然cookie的有效性还得服务端检查。

posted @ 2022-05-26 01:20  Arborblog  阅读(129)  评论(0编辑  收藏  举报