HTTP Cache 总结及Nginx Cache配置
程序开发
2023-09-03 16:52:32
作者:链上研发
时间:2016-09-21
简介
先说一下我对缓存的理解:缓存可以让用户更加接近数据
HTTP缓存指我们用浏览器访问网站时,根据服务器返回的HTTP缓存响应头设置,缓存相应的数据,下次访问就可以直接使用,或者去服务器验证数据是否过期。这样可以大大减轻宽带压力,加快网页加载速度。
相关头部
当我们首次访问http://sage.moe/content/images/2016/07/masuzu-desktopsky-22521-jpg-900.jpg 时,得到如下响应头:
服务器返回如下几个缓存控制头部:
- Last-Modified:表示文档的最后修改时间,当去服务器验证时会拿这个时间去;
- Expires:http/1.0规范定义,表示文档在浏览器中的过期时间,当缓存的内容超过这个时间则需要重新去服务器获取最新的内容;
- Cache-Control:http/1.1规范定义,表示浏览器缓存控制,max-age=3153600表示文档可以在浏览器中缓存一年。
- ETag:发送到服务端进行内容变更验证的,而Catch-Control是用于控制缓存时间的(浏览器、代理层等)。此处我们使用了弱实体W”6124c”,弱实体(”6124c”)只要内容语义没变即可,比如内容的gzip版和非gzip版可以使用弱实体验证;而强实体指字节必须完全一致(gzip和非gzip情况是不一样的),因此建议首先选择使用弱实体。nginx在生成etag时使用的算法是Last-Modified + Content-Length计算的。
根据规范定义Cache-Control优先级高于Expires,实际使用时可以两个都用,或仅使用Cache-Control就可以了。一般情况下Expires=当前系统时间(Date) + 缓存时间(Cache-Control: max-age)。
当我们
标签:
上一篇:
Vue如何实现swiper左右滑动内容区控制导航tab同时切换高亮
下一篇:
相关文章
-
无相关信息