小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
cookie
cookie最初用于在客户端存储会话信息,HTTP 请求时,通过发送 Set-Cookie HTTP 头部包含会话信息。
demo.js
HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value
Other-header: other-header-value
限制
cookie 是与特定域绑定的。设置 cookie 后,它会与请求一起发送到创建它的域。这个限制能保证cookie 中存储的信息只对被认可的接收者开放,不被其他域访问。
因为 cookie 存储在客户端机器上,为保证它不会被恶意利用,浏览器会施加限制。同时,cookie也不会占用太多磁盘空间。
通常的限制:
不超过300cookie, 每个cookie不超过4096个字节,每个域不超过20个cookie,每个域不超过81920字节。
cookie 的构成
cookie 在浏览器中是由以下参数构成的。
名称:唯一标识 cookie 的名称
值:存储在 cookie 里的字符串值
域:cookie 有效的域
路径:请求 URL 中包含这个路径才会把 cookie 发送到服务器
过期时间:表示何时删除 cookie 的时间戳
安全标志:设置之后,只在使用 SSL 安全连接的情况下才会把 cookie 发送到服务器
注意:不要在 cookie 中存储重要或敏感的信息。cookie 数据不是保存在安全的环境中,因 此任何人都可能获得。应该避免把信用卡号或个人地址等信息保存在 cookie 中。
Web Storage
Web Storage中定义了两个对象:localStorage 和 sessionStorage。localStorage 是永久存储机制,sessionStorage 是跨会话的存储机制。这两种浏览器存储 API 提供了在浏览器中不 受页面刷新影响而存储数据的两种方式。
Storage 类型用于保存名/值对数据,直至存储空间上限(由浏览器决定)。Storage 的实例与其他对象一样,但增加了以下方法:
clear():删除所有值;不在 Firefox 中实现。
getItem(name):取得给定 name 的值。
key(index):取得给定数值位置的名称。
removeItem(name):删除给定 name 的名/值对。
setItem(name, value):设置给定 name 的值。
注意:Storage 类型只能存储字符串。非字符串数据在存储之前会自动转换为字符串。 这种转换不能在获取数据时撤销。