HTTP高级(Cookie,Session ,LocalStorage )

Cookie浏览器

  1. 服务器经过 Set-Cookie 头给客户端一串字符串
  2. 客户端每次访问相同域名的网页时,必须带上这段字符串
  3. 客户端要在一段时间内保存这个Cookie
  4. Cookie 默认在用户关闭页面后就失效,后台代码能够任意设置 Cookie 的过时时间
  5. 大小大概在 4kb 之内

Session缓存

  1. 将 SessionID(随机数)经过 Cookie 发给客户端
  2. 客户端访问服务器时,服务器读取 SessionID
  3. 服务器有一块内存(哈希表)保存了全部 session
  4. 经过 SessionID 咱们能够获得对应用户的隐私信息,如 id、email
  5. 这块内存(哈希表)就是服务器上的全部 session

LocalStorage安全

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

SessionStorage(会话存储)服务器

一、二、三、4 同上cookie

五、SessionStorage 在用户关闭页面(会话结束)后就失效。session

 

 


 

Cookie 和 Session 的区别

  • cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
  • cookie数据存放在客户的浏览器上,session数据放在服务器上。
  • cookie不是很安全, 能够被篡改, 考虑到安全应当使用session。
  • 单个cookie保存的数据通常不超过4K,而session的内存比较大
  • 通常将登录信息等重要信息存放为SESSION, 免登录功能数据就能够放在COOKIE中

Cookie 和 LocalStorage 的区别

  • Cookie会被浏览器带到服务器; 而LocalStorage与HPPT无关。
  • 单个Cookie保存的数据通常不超过4K;每一个域名LocalStorage最大存储量为5MB左右。
  • 客户端在必定时间内保存Cookie,关闭页面后失效;LocalStorage永久有效,除非清除缓存。

LocalStorage 和 SessionStorage 的区别

  • LocalStorage永久有效,除非清除缓存。SessionStorage在页面关闭后失效。

Cache-Control: max-age=1000 缓存 与 ETag 的「缓存」有什么区别?

  • Cache-Control: max-age=1000 缓存,是1000秒内不返回请求
  • ETag 的「缓存」,是返回请求响应体为空
相关文章
相关标签/搜索