前言
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:保存浏览器,浏览器关闭后,页面失效。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。