Cookie分发是通过扩展HTTP协议来实现的,服务器通过再HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。
Cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的,浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。
Cookie 的内容主要包括:名字,值,过期时间,路径和域。
其中域可以指定某一个域,如:google.cn
路径是指跟在后边的URL路径,比如"/",或者 "/foo"等
路径和域合在一起就构成了cookie的作用范围。
如果不设置过期时间,则标识这个cookie的生命周期为浏览器会话期间,被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,如果设置了过期时间,就会把cookie保存在硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的期限。
此外,存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口;而保存在内存里的cookie,不同的浏览器有不同的处理方式,在一个打开的窗口上按Ctrl+N(或者从file中)打开窗口可以与原来的窗口共享同一cookie,而是用其他方式新打开的IE进程则不能共享已经打开的窗口的内存cookie,对于FF0.8,所有的进程和标签都可以共享同样的cookie;一般说来,javascript的window.open打开的窗口与原窗口共享内存cookie。
Cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的,浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。
Cookie 的内容主要包括:名字,值,过期时间,路径和域。
其中域可以指定某一个域,如:google.cn
路径是指跟在后边的URL路径,比如"/",或者 "/foo"等
路径和域合在一起就构成了cookie的作用范围。
如果不设置过期时间,则标识这个cookie的生命周期为浏览器会话期间,被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,如果设置了过期时间,就会把cookie保存在硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的期限。
此外,存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口;而保存在内存里的cookie,不同的浏览器有不同的处理方式,在一个打开的窗口上按Ctrl+N(或者从file中)打开窗口可以与原来的窗口共享同一cookie,而是用其他方式新打开的IE进程则不能共享已经打开的窗口的内存cookie,对于FF0.8,所有的进程和标签都可以共享同样的cookie;一般说来,javascript的window.open打开的窗口与原窗口共享内存cookie。