前端缓存

105 阅读2分钟

浏览器缓存

cookie

背景

HTTP是一种无状态协议,无状态是指服务端对客户端每次发送的请求都认为是一个新的请求,上一次会话和下一次会话没有联系。但是又需要知道两次会话的关系,就有了cookie

cookie产生过程

  • 客户端发送请求,服务器

session

背景

HTTP是无状态协议,客户端与服务端数据交互时,服务端不知道客户端是否是登录状态,不知道客户端是哪个用户发来请求数据的,为了保持客户端和服务端之间的联系,就有了session。session用于在服务端保存用户状态的方式,通常是保存用户的登录状态。

session的工作流程

  • 客户端向服务端发送登录HTTP请求,如果用户首次访问服务器,服务器则为该用户单独创建一个Session对象,并分配一个新的SessionID。SessionID通过cookie保存在客户端。
  • 客户端之后的每次请求,cookie中的sessionid都会随着cookie传递到服务端,服务端根据传递的sessionid对用户身份验证。

session的优缺点

优点
  • session数据存储在服务器端,用户数据更安全
  • 每次请求不需要在请求体或请求接口中携带用户信息给服务端
缺点
  • session保存在服务端的内存中,用户增多,服务端开销增大
  • cookie如果被截获,用户会受到跨站请求伪造的攻击
  • sessionid设置在cookie中,如果客户端和服务端不是同一个服务器,cookie会存在跨域问题

localStorage

sessionStorage

  • localStorage可以跨页面通讯。sessionStorage不可以跨页面通讯

  • localStorage不会随着页面关闭而被清除,他只能手动清除。sessionStorage会随着页面的关闭而清除。

  • localStorage和sessionStorage的存储大小都是5M。

http缓存

强缓存

协商缓存