前端静态资源如何实现缓存

缓存分类

强缓存 (一般不会向服务器发起请求)

** 服务端通过Cache-control(http1.1) Expires(http1.0)字段设置, Cache-control优先级高于Expires**

Cache-control 常用属性值:

private: 私有缓存设备(浏览器)
public: 公有缓存设备(cdn )
max-age: 时间段,指定缓存最大有效时间,秒为单位如(360000) 在private设备中取资源,状态码200
s-maxAge: 时间段,指定缓存最大有效时间,秒为单位如(360000) 在public设备中取资源 同时设置的时候优先级高于max-age.状态码304
no-cache: 会把强缓存机制改为协商缓存,会像服务端发起请求,资源是否取缓存取决于服务端响应头字段(last-modifed等)
no-store: 该资源不会读取缓存

Expires: 属性值为通常为UTC时间格式

协商缓存 (会向服务端发起请求,向服务端询问是否可以使用缓存)

对应的http header字段 Last-modifed, Etag

Last-modifed

原理:通过读取文件最后修改日期和请求头中'if-modified-since'做比较,如果相等的话就返回304,客户端就可以使用缓存文件,如果不相等就返回200和最新的文件,同时响应头加上'Last-Modifed'字段。
属性值:UTC格式的时间

Etag (优先级高于Last-modifed)

原理:一般使用文件的版本号为属性值,通过对比请求头中的if-none-match字段的版本号字符与文件的版本号字符对比,如果没有变化就告诉客户端可以使用缓存。
属性值:能标识请求文件的字符串
总结一下流程图:

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值