cookie、session、localStorage、Cache-Control

1.cookie是http请求响应中的一部分
2.服务器通过Set-Cookie头给客户端一段字符串
3.客户端每次访问相同的域名网页时必须带上这段字符串
4.客户端在一段时间内保存这个Cookie
5.cookie默认在用户关闭页面时失效,但是后端可以设置cookie的有效期

session

session是基于cookie实现的,因为cookie传输的数据是明文的,所以就通过session加密,将用户数据存在服务器上session内存里,通过id来找出对应的cookie
1.将sessionId(随机数)通过cookie发给客户端
2.客户端访问服务器时,服务器读取sessionID
3.服务器有一块内存(哈希表),保存了所有的session
4.通过sessionID我们可以获取对应用户的隐私信息,如ID、email
5.这块内存(哈希表)就是服务器上所有的session

localStorage(操作本地存储)

1.html5技术提供的一个API
2.window.localStorage.getItem/window.localStorage.setItem/window.localStorage.removeItem/window.localStorage.clear
3.localStorage是一个浏览器上的hash
4.session是服务器上的一个hash
5.localStorage存的是字符串,长和JSON一起使用(1.JSON.parse()2.JSON.stringify)
用法
1.跨页面记录数据
let prompt=localStorage.getItem(‘prompt’);
if(!prompt){
alert(‘你好’);
localStorage.setItem(‘prompt’,true);
}
特点:
1.localStorage跟http无关
2.http不会带上loclStorage的值
3.只有相同域名的页面才能读取localStorage
4.每个页面的localStorage最大存储量为5mb左右(每个浏览器不一样)
5.常用场景:记录一些不敏感的信息如:是否已经提示过,不能记录一些私密信息安全信息
6.不会过期,只能手动清除

sessionStorage

1.2.3.4.5同上
6.在用户关闭页面时失效

Cache-control(控制缓存)web性能优化

1.可以在服务器的路由里设置响应头response.setHeader(‘Cache-Control’,’max-age=30’)浏览器在响应头里发现这个设置会30秒内不重新加载(必须是相同的URL才能缓存)
2.一般来说不给首页设置缓存
3.可以通过更改URL来重新加载缓存过的数据

Etag是请求之后不下载

Cache-Control直接不发请求

猜你喜欢

转载自blog.csdn.net/wang_liuyong/article/details/81981087