前言

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...


麦篱落
146 声望4 粉丝