Http缓存小结

http缓存:

  1. 强缓存200
  2. 协议缓存304
强缓存

浏览器判断本地缓存没有过期,就直接使用,不需要再发起http请求

1.Cache-Control

参数:

  1. private: 可以进行缓存
  2. pubilc: 客户端与服务端都可以进行缓存 ( 对于前端来说 与 private 是一样的
  3. max-age: 最大缓存时间
  4. no-cache: 需要进行协议缓存
  5. no-store: 不进行缓存
2.Expires

http1.0时代的api
如果设置了cache-control: max-age 则不会生效
值为一个过期日期,该日期为本地时间

协议缓存

是服务端告诉浏览器文件没有发生变化,让浏览器使用本地缓存

1.E-tag

由服务端将js文件打上一个指纹(md5。
第二次请求时,将上一次的指纹放入 if-None-Match 中, 如果两值保持一致,说明不需要重新下载文件,则返回304.

const fileMd5 = md5(fs.readFileSync('文件路径'))
response.setHeader('ETag',FileMd5)

if(request.headers['if-none-match'] === fileMd5){
    response.statusCode = 304
} else {
    response.write()
}
response.end()
2.Last-Modified / If-Modified-Since
Last-Modified

写入资源最后修改时间

If-Modified-Since

二次请求时,该字段显示上次请求最后的文件的修改时间

如果 Last-Modified 等于 If-Modified-Since ,则说明不需要修改,返回304

const date = new Date()
response.setHeader('LastModified', date )

if(request.headers['if-modified-since'] === date ){
    response.statusCode = 304
} else {
    response.write()
}
response.end()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值