谈一谈cookie
-
cookie:
-
-http是无状态协议,http自身不会对响应和请求之间的通信进行保存每次请求的时候,不知道客户端是谁
-
-cookie的本职工作其实并非本地存储,而是维持状态
-
-cookie是绕开了http的无状态协议的手段,服务端可以通过用户请求携带的cookie信息,来维护客户端和服务端之间的状态
-
cookie的特点:
-
-cookie提供的内存很小,并且有个数限制
-
-cookie一定会随着请求发送,过多的cookie会有更多性能消耗
-
-cookie在http的传输中是明文的,安全性不高,https除外
谈一谈session
- 服务端存储
- 1.客户端发送登录请求,在报文中携带登录信息
- 2.服务端接收请求,创建一个session对象,然后给当前的用户信息创建一个永远不会重复的sessionID组成一个key-value保存在session对象中
- 3.服务端返回响应,cookie携带了sessionID
- 4.客户端接收响应,把sessionID保存在cookie中
- 5.客户端第二次发送请求,会自动携带cookie,cookie中携带有sessionID
- 6.服务端通过解析,获取到了客户端请求的cookie中的sessionID,去判断用户信息是否在session对象中保存
- 7.如果服务端验证成功,则会响应对应的请求,否则需要再次登录
谈一谈Storage
- localStorage:本地存储
-
-把数据保存在本地磁盘上,按照浏览器和域名存储
-
-保存的数据长期存在,每次访问的时候都可以直接读取到数据
-
-大小为5M左右
-
-仅限客户端时候,不和服务端通信
-
-跨页面通信
-
-接口封装非常nice
-
接口:
-
设置:localStorage.setItem(key,value)
-
获取:localStorage.getItem(key)
-
删除:localStorage.removeItem(key)
- 临时存储接口:(页面关闭即消失,不能跨页面通信)
-
设置:sessionStorage.setItem(key,value)
-
获取:sessionStorage.getItem(key)
-
删除:sessionStorage.removeItem(key)