2017-03-16
详解 Cookie 纪要
cookie规范定义了服务器和客户端交互信息的格式、生存期、使用范围、安全性。
Cookie通常用来存储一些不是很敏感的信息,或者进行登录控制,也可用来记住用户名、记住免密码登录、防止刷票等。
每个域名下允许的Cookie是有限制的,个域名的每个Cookie限制以4千字节(KB)键值对的形式存储。
还有一种Cookie是Flash创建的,成为Flash Shard Object,又称Flash Cookie,即使清空浏览器所有隐私数据,这类顽固的Cookie还会存在硬盘上,因为它只受Flash管理,很多网站采用这种技术识别用户。
Cookie跨域
Cookie 基础知识
- cookie 是有大小限制的,大多数浏览器支持最大为 4096 字节的 Cookie,cookie 字符串的长度超过最大限制,则该属性将返回空字符串。
- cookie 不能存放重要信息的原因: cookie 最终都是以文件形式存放在客户端计算机中,所以查看和修改 cookie 都是很方便的
- cookie 的格式都是这样的:cookieName = Vaue;
- cookie 是存在 有效期的。
- alert(typeof document.cookie)结果是 string.
- 一个网页所创建的 cookie 只能被与这个网页在同一目录或子目录下得所有网页访问,而不能被其他目录下得网页访问
- 同个网站可以创建多个 cookie ,而多个 cookie 可以存放在同一个cookie 文件中。
- cookie 有两种清除方式①:通过浏览器工具清除 cookie ②通过设置 cookie 的有效期来清除 cookie.
- 浏览器可以通过设置来接受和拒绝访问 cookie。
与cookie类似的另一个概念是会话(Session),会话一般是记录客户端和服务器端从客户端浏览器连接上服务器端到关闭浏览器期间的持久信息。会话一般保存在内存中,不保存到磁盘上。会话可以通过cookie机制来实现,对于不支持cookie的客户端,会话可以采用URL重写方式来实现。可以将会话理解为内存中的cookie。
Cookie 基本操作
存取,
读取,
以及设置有效期
set: function (name, value, days) {
var d = new Date;
d.setTime(d.getTime() + 24*60*60*1000*days);
window.document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString();
},
get: function (name) {
var v = window.document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
return v ? v[2] : null;
},
delete: function (name) {
this.set(name, '', -1);
}
cookie 域概念
cookie 安全性
document.cookie = “username=Darren;secure”如果一个 cookie 的属性为secure,那么它与服务器之间就通过HTTPS或者其它安全协议传递数据。