webstorage
webstorage是本地存储,存储在客户端,包括localStorage和seesionStorage.
1.localStorage
生命周期是永久的,意味着除非用户显示在浏览器提供的UI上清楚信息,否则一直存在。仅在浏览器中保存,不参与和服务器的通信。
2.sessionStorage
仅在当前会话下有效,关闭页面或浏览器后被清除。仅在浏览器中保存,不参与和服务器的通信。源生接口可以接受。
使用时使用相同的API:’
localStorage.setItem("key","value");//以“key”为名称存储一个值“value”
localStorage.getItem("key");//获取名称为“key”的值
localStorage.removeItem("key");//删除名称为“key”的信息。
localStorage.clear();//清空localStorage中所有信息
但它们的作用域不同:
1.不同浏览器无法共享localStorage或sessionStroage中的信息。
2.相同浏览器的不同页面可以共享相同的localStorage.。
3.如果一个标签页包含多个iframe标签且他们属于同源页面,他们之间可以共享sessionStorage。
Cookie
生命期只在设置的cookie过期时间之内有效,即使窗口或浏览器关闭。存放数据很小。
可以与服务端通信,每次都会携带再HTTP头中。源生Cookie接口不友好。
优点:具有极高的扩展性和可用性
1.控制保存在cookie中的session对象的大小。
2. 通过加密和安全传输技术,减少cookie被破解的可能性。
3.控制cookie的生命周期,即使被盗,随时可能失效。
缺点:
1.cookie的长度和数量有限制,最多存放20条,每条长度不超过4kb。
2.如果cookie被截掉,就会被盗取所有的session信息。
3.有些状态不可能保存在客户端。
三者共同特点:
都是保存在浏览器端,且同源的。