session、cookie、sessionStorage、localStorage等区别?
session会在一定的时间内存储在服务器端,用来保存用户的对象信息,session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;
cookie、sessionStorage、localStorage的相同点是都存储在客户端
不同点分别表现在存储大小
有效时间
数据与服务器的交互方式
session使用方式
ession.setAttribute("key","存储值");// 储存到key关键标识
session.getAttribute("key");// 获取相对于定义的key值存储参数
cookie使用
(1)存储大小cookie数据大小不能超过4k。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
// 创建储存参数
document.cookie="username=John Doe";
// 创建储存参数,设置储存值过期时间;达到过期时间,将会删除此cookie.
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";
// 创建储存参数,设置储存值过期时间;声明此cookie属于path某地址网页;
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
// 读取方式
var obj = document.cookie;
sessionStorage和localStorage使用方式相似
(2)有效时间localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;sessionStorage 数据在当前浏览器窗口关闭后自动删除。cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
(3) 数据与服务器之间的交互方式cookie的数据会自动的传递到服务器,服务器端也可以写cookie到客户端sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
sessionStorage/localStorage.setItem("key","存储参数");// 存储
sessionStorage/localStorage.getItem("key");// 读取key
sessionStorage/localStorage.removeItem("key");// 清除对应key
sessionStorage/localStorage.clear();// 清空所有存储
sessionStorage/localStorage.key = "999";// 设置该key存储参数