Session-Cookie-webStorage的区别

15次阅读

共计 825 个字符,预计需要花费 3 分钟才能阅读完成。

前言

Session

保存在服务器端,大小没有限制,由后端进行设置。

不要把 session 与 sessionStorage 搞混,他们并不是一个东西
session 是服务端设置的,保存在服务端
sessionStorage 是 webStorage 中的一种,只保存在客户端,不会与服务端进行通信

服务器会对每一个客户端的请求做一个唯一标识,当客户端向服务端发送请求时,服务端会先进行一下判断,是否有携带的 sessionId, 如果有,就进行搜索,是否有效,如果没有 sessionid,则创建一个新的 sessionId

服务器可以将 sessionid 的值保存到 cookie 中,使浏览器每次发出请求都会将 Seesion 的值一起发送到服务器。(浏览器自动的,不需要设置),用户可以根据设置 cookie 的 secure 来关闭自动发送

Cookie

保存在客户端的内存或硬盘中,大小限制在 4k 左右

cookie 中会保存一系列的信息:

domain: 服务器端 的主机名
path:cookie 的作用域,
expires/max-age:cookie 的有效期
httponly: 是不是只读,设置只读,则不能获取 cookie 的值,由后端进行设置
secure: 设置是否自动发送 cookie,默认为 False, 自动发送,为 ture 表示不允许自动发送,也由后端进行设置
samesite: 定义 cookie 如何跨域发送, 为谷歌新研发的一种安全机制,目的是防止 CSRF 跨站请求以及 XSSI 跨站脚本攻击

浏览器会根据请求的服务器地址以及客户端 cookier 的设置,进行判断,是否需要携带 cookie,以及携带哪个 cookie。

webStorage

保存在浏览器,比 cookie 容量更大,最大为 5MB。只会在当前的网站中有效。

localStorage: 保存在浏览器端,不主动的清除,不会失效

sessionStroage: 保存浏览器,浏览器关闭后,页面失效。

参考链接

https://www.cnblogs.com/cence…

正文完
 0