一、cookie策略
浏览器持有的cookie分为两种:
(1)Session Cookie,又称为临时Cookie
(2)Third-party Cookie,又称为本地Cookie
两者的区别在于:
Third-party Cookie是服务器在Set-Cookie时指定了Expire时间,只有到了Expire时间后才失效,这种Cookie会保存在本地;
而Session Cookie没有指定了Expire时间,这种Cookie会保存在浏览器进程的内存空间,所以浏览器关闭后,Session Cookie就失效了。
如果网站设置了Session Cookie,那么在浏览器进程的生命周期内,即使浏览器新打开了Tab页,Session Cookie也都是有效地。
如果浏览器从一个域的页面中,要加载另一个域的资源,由于安全原因,某些浏览器会阻止Third-party Cookie的发送。如IE6、IE7、IE8、safari。
二、Cookie常用属性描述:
String name:
该Cookie的名称。Cookie一旦创建,名称便不可更改
Object value
该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码
int maxAge
该Cookie失效的时间,单位秒。如果为正数,则该Cookie在maxAge秒之后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为–1
boolean secure
该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false
String path
该Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”
String domain
可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”
String comment
该Cookie的用处说明。浏览器显示Cookie信息的时候显示该说明
int version
该Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范
HttpOnly
设置该属性后,js将无法读取cookie中该记录。