iis服务器助手广告
返回顶部
首页 > 资讯 > 服务器 >http Cache-Control详解及nginx设置Cache-Control
  • 836
分享到

http Cache-Control详解及nginx设置Cache-Control

httpnginx服务器 2023-08-22 06:08:44 836人浏览 八月长安
摘要

Cache-Control是个Http1.1响应头,用来控制资源缓存,它可取的值: no-store;不允许缓存资源;no-cache;使用缓存前,先去源服务器校验资源有效性,如果未变更,则响应304,不发送资源内容,使用cache中的资源

Cache-Control是个Http1.1响应头,用来控制资源缓存,它可取的值:

  • no-store;不允许缓存资源;
  • no-cache;使用缓存前,先去源服务器校验资源有效性,如果未变更,则响应304,不发送资源内容,使用cache中的资源,等于多了一次round-trip,能减少网络传输,如果已经过期,则响应200,并发送资源内容;会携带if-modified-since;if-match;no-cache和max-age:0,must-revalidate表达相同的意思;
  • public: 表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存;
  • private: 表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)。私有缓存可以缓存响应内容,比如:对应用户的本地浏览器。;
  • max-age: 设置缓存存储的最大周期,超过这个时间缓存被认为过期 (单位秒)。与Expires相反,时间是相对于请求的时间。
  • Expires:优先级比max-age优先级低;意味着某个date/time后失效;比如Expires: Wed, 21 Oct 2015 07:28:00 GMT
  • immutable:表示响应正文不会随时间而改变。资源(如果未过期)在服务器上不发生改变,因此客户端不应发送重新验证请求头(例如If-None-Match或 If-Modified-Since)来检查更新,即使用户显式地刷新页面;

对于html页面设置的建议

  • 使用缓存前,去源服务器校验有效性,Nginx设置方法
location / {    add_header Cache-Control no-cache;}
  • 如果不想html被缓存,nginx设置方法
location / {    add_header Cache-Control no-store,max-age:0; }

no-store只能阻止新的资源不会被缓存,不能阻止已经缓存的资源仍被使用,添加max-age:0,可以清除旧缓存;这个设置意味着每次请求都会去源服务器获取资源,状态码就是200;

对不变的jsCSS等静态资源建议设置:

location / {    add_header Cache-Control public, max-age:最大值, immutable,max-age;    //max-age可以设置超大的值,以达到永不过期的目的;}

顺便说一下,pragma属于http1.0规范,一般来说现在的通信端都用http1.1,所以不缓存时,没必要设置此header了。

Pragma: no-cache

参考

Cache-Control
Expires

来源地址:https://blog.csdn.net/wangjun5159/article/details/128564360

--结束END--

本文标题: http Cache-Control详解及nginx设置Cache-Control

本文链接: https://www.lsjlt.com/news/377594.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作