美文网首页
区别cookie、Session、LocalStorage、Ca

区别cookie、Session、LocalStorage、Ca

作者: Nelson_sylar | 来源:发表于2018-12-12 11:04 被阅读0次

什么是cookie?

  • cookie一般是由服务器用Set-Cookie 头给客户端一串字符串
  • 客户端每次访问相同域名的网页时,必须带上这段字符串
  • 客户端要在一段时间内保存这个Cookie
  • Cookie 默认在用户关闭页面后就失效,后台代码可以任意设置 Cookie 的过期时间
  • cookie存放于硬盘,通常大小为4KB
  • 前端最好不要读写cookie
  • 用户可以人为修改cookie

什么是session?

  • 正是因为用户可以修改cookie,所以诞生出session,它是基于cookie的.
  • session是服务器上的一块内存(hash表),保存了所有session
  • session将 SessionID(随机数)通过 Cookie 发给客户端.客户端访问服务器时,服务器读取 SessionID
  • 服务器再通过 SessionID 可以得到对应用户的隐私信息,如 id、email

什么是localstorage?

  • LocalStorage 跟 HTTP 无关
  • HTTP 不会带上 LocalStorage 的值
  • 只有相同域名的页面才能互相读取 LocalStorage(没有同源那么严格)
  • 每个域名 localStorage 存储量为 5-10Mb 左右(每个浏览器不一样)
  • 常用场景:记录有没有提示过用户(没有用的信息,不能记录密码)
  • LocalStorage 永久有效,除非用户清理缓存

什么是sessionstorage?

  • 与localstorage类似,属于本地存储与上面的session无关.但是关闭浏览器失效.

什么是cache-control?

  • cache-control通常用于优化网页性能,适当使用可减少重复读取相同内容
  • 可以在服务端setHeader设置cache-control
  • 可以设置让该字段存于缓存中,浏览器下次访问时不发起请求,直接从缓存中读取该资源

什么是ETag?

  • ETag通常用于优化网页性能,适当使用可减少重复读取相同内容
  • 可通过服务端setHeader设置etag为相应的字段的md5值
  • 浏览器访问时,request.headers会带有if-none-match属性(为上述MD5),若不等于则说明服务器上的
    该资源与本地存储的该资源不相同,需要重新从服务器加载;若相等则说明两者资源相同,则直接从本地
    缓存获取.后端应设置statusCode=304.与cache-control不同的是:etag始终都要发请求和收响应,而
    cache-control不发请求.

相关文章

网友评论

      本文标题:区别cookie、Session、LocalStorage、Ca

      本文链接:https://www.haomeiwen.com/subject/pqduhqtx.html