Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息 。
目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除。
持续的 Cookie 则保存在用户的 Cookie 文件中,下一次用户返回时,仍然可以对它进行调用。在 Cookie 文件中保存 Cookie,有些用户担心 Cookie 中的用户信息被一些别有用心的人窃取,而造成一定的损害。其实,网站以外的用户无法跨过网站来获得 Cookie 信息。如果因为这种担心而屏蔽 Cookie,肯定会因此拒绝访问许多站点页面。因为,当今有许多 Web 站点开发人员使用 Cookie 技术,例如 Session 对象的使用就离不开 Cookie 的支持。(信息来自百科)
在chrome上按F12或者右键按检查可以进入控制台,在Application选项卡下,可以找到Cookie的有关信息。
由上图可以看到,在一个域名下,对应着多个cookie,每个cookie有多个属性,下面详细介绍各个属性:
Name:Cookie的名称,一旦创建就不可
Value:该Cookie的值,若cookie的值为unicode,则需要字符编码;若cookie为二进制数据,则需要BASE64编码;
Domain:可以访问该cookie的域名,必须以“.”开头,如“.baidu.com”表示所有以baidu.com结尾的域名都可以访问该cookie。
Path:该cookie的使用路径,最后一个字符必须设置为"/",如“/a/”表示contextPath为“/a/”的程序可以访问该cookie。
Expires/Max-Age:cookie的失效时间,单位为秒。若该值为正,则cookie将在设置的时间后失效;若为负,则表示cookie将在浏览器关闭的时候失效,浏览器不会对该cookie做任何形式的存储;若为0,则表示删除该cookie;cookie默认值为-1。
Size:此cookie的大小。
HTTP:有HttpOnly属性,当设置为true,js将无法通过document.cookie获取cookie信息。这在一定程度上可以防止XSS攻击。
Secure:设置该cookie是否使用安全协议传输,默认为false。