cookie、session、localStorage、sessionStorage

(1)cookie 是一种早期的客户端存储机制。适合存储少量文本数据(部分浏览器任然对单个cookie有4KB限制)。不仅如此,任何以cookie形式存储的数据,不论服务器端是否需要,每一次HTTP请求都会把这些数据传输到服务器。

Cookie默认的有效期很短暂,只能维持在web浏览器的会话期间,一旦用户关闭浏览器,数据丢失。Cookie的作用域并不局限在浏览器的单个窗口中,而是在整个浏览器进程,与有效期一致。Cookie的作用域是通过文档源和文档路径确定的(domain、path),来自同一个web服务器的web页面,只要其URL是以指定的路径前缀开始的,都可以共享cookie。

(2)cookie发送:创建cookie对象;设置最大时效;将cookie放入到HTTP响应报头。

(3)Cookie与session的区别:

        session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。

        session中保存的是对象,cookie中保存的是字符串。

        session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。

session需要借助cookie才能正常,如果客户端完全禁止cookie,session将失效(通过重写URL将session Id传递回服务器端)。

(4)localStorage与sessionStorage的区别

localStorage存储的数据是永久性的,除非web应用刻意删除,或用户通过设置浏览器配置来删除。localStorage的作用域限定在文档源级别,也受浏览器供应商限制。

sessionStorage:一旦窗口或标签页被永久关闭,数据就被删除。sessionStorage的作用域也限定在文档源,还被限定在窗口中(顶级窗口)。

原文地址:https://www.cnblogs.com/9192miss/p/4592742.html