cookie详解
cookie干嘛用的?
参见文章http会话(session)详解:
cookie分类
cookie分session cookie和persistent cookie
session cookie储存在浏览器内存中,针对某一次会话而言,会话结束session cookie也就随着消失了;
而persistent cookie存储在客户端硬盘上,表现为一段文本(通常是加密的),但是可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,所以不如session cookie安全。当客户端向浏览器发送请求时,会附persistent cookie,随每一个请求发送至同一个服务器。
cookie分发
正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示Set-Cookie以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。
cookie的内容
cookie的内容主要包括:名字,方向,值,路径,域,过期时间等
名字:也就是会话名称session name
方向:Received--从服务器接受到的sent--发送给服务器的
值:也就是会话id(session id)
域:比如二级www.baidu.com
路径:就是跟在域名后面的URL路径,比如/或/index.php?等
注意:路径与域合在一起就构成了cookie的作用范围。
过期时间:如果不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。
关于cookie共享
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。
而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。ie8下测试,在一个打开的窗多个浏览器窗口(不管用啥方式打开的)可共享session cookie;对于Mozilla Firefox0.8,所有的进程和标签页都可以共享session cookie。