cookie、session、eTag、cache-contro
作者:
阿亮2019 | 来源:发表于
2018-06-25 22:16 被阅读38次
cookie
- 服务端在response header中通过
set-cookile: sid=a7686711-37ec-491f-9996-b40a512616fd; user_id=77;
一般在login
成功时会设置。
- 浏览器每次发起ajax请求时,会默认带上所有的cookie。一般不建议通过js对cookie进行增删改查,cookie很多的话会增长每次ajax的请求时间。
- cookie会在浏览器上保存一段时间(可能15分钟),之后会失效,或者关闭浏览器后,也会失效。但是现在的后端一般都会自己设置失效时间,做持久化处理。
- cookie容量很小,一般为5K;
session
- 服务器内存中会有一个很大hashmap,用户在登录后,就会在hashmap中新增一条记录,它的key值就是sid,value值是用户的详细信息,比如email,电话号码等隐私信息。
- 当服务器接收到浏览器的请求时,会读取request header中的coookie部分,通过cookie中sid与hashmap中key值做比较,如果没有或者cookie过期,则可以302重定向到
login
页面
localStorage
- localStorage是保存浏览器上的临时数据,跟HTTP没有关系, 只有cookie才会默认带上。
- 只有相同域名的页面才可以互相读取localStorage
- localStorage大小一般为5M(各大浏览器各有不同)
- localStorage是可以永久存储的(当然用户可以手动清除浏览器缓存)
sessionStorage
- 跟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()
}
}
- 手动清除浏览器缓存。
本文标题:cookie、session、eTag、cache-contro
本文链接:https://www.haomeiwen.com/subject/oneuyftx.html
网友评论