美文网首页
cookie、session、eTag、cache-contro

cookie、session、eTag、cache-contro

作者: 阿亮2019 | 来源:发表于2018-06-25 22:16 被阅读38次

cookie

  1. 服务端在response header中通过 set-cookile: sid=a7686711-37ec-491f-9996-b40a512616fd; user_id=77; 一般在login成功时会设置。
  2. 浏览器每次发起ajax请求时,会默认带上所有的cookie。一般不建议通过js对cookie进行增删改查,cookie很多的话会增长每次ajax的请求时间。
  3. cookie会在浏览器上保存一段时间(可能15分钟),之后会失效,或者关闭浏览器后,也会失效。但是现在的后端一般都会自己设置失效时间,做持久化处理。
  4. cookie容量很小,一般为5K;

session

  1. 服务器内存中会有一个很大hashmap,用户在登录后,就会在hashmap中新增一条记录,它的key值就是sid,value值是用户的详细信息,比如email,电话号码等隐私信息。
  2. 当服务器接收到浏览器的请求时,会读取request header中的coookie部分,通过cookie中sid与hashmap中key值做比较,如果没有或者cookie过期,则可以302重定向到login页面

localStorage

  1. localStorage是保存浏览器上的临时数据,跟HTTP没有关系, 只有cookie才会默认带上。
  2. 只有相同域名的页面才可以互相读取localStorage
  3. localStorage大小一般为5M(各大浏览器各有不同)
  4. localStorage是可以永久存储的(当然用户可以手动清除浏览器缓存)

sessionStorage

  1. 跟localStorage很像,区别是sessionStorage在关闭页面后就会失效。

删除cookie

1. js清除所有cookie函数              
function clearAllCookie() {  
  var keys = document.cookie.match(/[^ =;]+(?=\=)/g);  
  if(keys) {  
    for(var i = keys.length; i--;)  
      document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString()  
   }  
} 
  1. 手动清除浏览器缓存。

相关文章

网友评论

      本文标题:cookie、session、eTag、cache-contro

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