cookie,对于设置的域名,他的子域名,也会被携带cookie
document.cookie
name1=value1;name2=value2;name3=value3
所有名和值都是 URL 编码的,因此必须使用 decodeURIComponent()解码。
在设置值时,可以通过 document.cookie 属性设置新的 cookie 字符串。这个字符串在被解析后会 添加到原有 cookie 中。设置 document.cookie 不会覆盖之前存在的任何 cookie,除非设置了已有的 cookie。设置 cookie 的格式如下,与 Set-Cookie 头部的格式一样:
name=value; expires=expiration_time; path=domain_path; domain=domain_name; secure
25.1 cookie 753
在所有这些参数中,只有 cookie 的名称和值是必需的。下面是个简单的例子: document.cookie = "name=Nicholas";
这行代码会创建一个名为"name"的会话 cookie,其值为"Nicholas"。这个 cookie 在每次客户端向
服务器发送请求时都会被带上,在浏览器关闭时就会被删除。虽然这样直接设置也可以,因为不需要在
名称或值中编码任何字符,但最好还是使用 encodeURIComponent()对名称和值进行编码,比如:
document.cookie = encodeURIComponent("name") + "=" + encodeURIComponent("Nicholas");
26 encodeURIComponent("Nicholas") + "; domain=.wrox.com; path=/";
使用cookie的注意事项
1,cookie保存在浏览器中,是不安全的,最好不要保存一些很敏感的信息
2,cookie中存储大量的数据,会影响请求的性能,cookie越大,请求的时间越长
webstorage
主要是用来解决存储在客户端,不需要频繁向服务器发送的数据
webstorage2的目标
1,存储大量数据
2,cookie之外的存储会话数据的方式
Storage的两个实例
1,localstorage,永久存储机制
作为在客户端持久存储 数据的机制。要访问同一个 localStorage 对象,页面必须来自同一个域(子域不可以)、在相同的端 口上使用相同的协议。
2,sessionstorage,跨会话存储机制
sessionStorage 对象应该主要用于存储只在会话期间有效的小块数据。如果需要跨会话持久存储 数据,可以使用 globalStorage 或 localStorage。
sessionStorage 对象只存储会话数据,这意味着数据只会存储到浏览器关闭。这跟浏览器关闭时 会消失的会话 cookie 类似。不受页面刷新影响,浏览器崩溃
重启的时候,sessionStorage的数据是会恢复的。
两种存储方法的区别在于,存储在 localStorage 中的数据会保留到通过 JavaScript 删除或者用户 清除浏览器缓存。
localStorage 数据不受页面刷新影响,也不会因关闭窗口、标签页或重新启动浏览 器而丢失。Web Storage定义了两个对象用于存储数据:sessionStorage和localStorage。
前者用于严格 保存浏览器一次会话期间的数据,因为数据会在浏览器关闭时被删除。后者用于会话之外持久保存数据。
window.addEventListener("storage",
IndexedDB