谈一谈cookie,session,Storage

583 阅读2分钟

谈一谈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)