小知识:Nginx与浏览器缓存的处理方法

一、浏览器对缓存的处理:Internet选项

  ★ 控制请求服务器策略:是忽略资源的缓存策略的情况下额外强制请求服务器的意思。

    ★ 检查存储的页面较新版本

         1.每次访问网页时

                不管是否有缓存、资源状态是否过期,都会再次请求服务器。

         2.每次启动Internet Explorer时

           不管是否有缓存、资源状态是否过期,都会再次请求服务器。

         3.自动

                大体上和2是一样的,只是对于图片的策略有点不同。

         4.从不

                完全按照资源的缓存策略来请求服务器。

  ★ F5 刷新:请求服务端,但是会根据和服务器对比文件来确定是否下载

  ★ Ctrl + F5刷新:一定会去服务器下载。

二、缓存控制策略

  ★Last-Modified/If-Modified-Since要配合Cache-Control使用,Etag/If-None-Match也要配合Cache-Control使用。

    ps: 分布式系统里多台机器间文件的last-modified必须保持一致,以免负载均衡到不同机器导致比对失败

       分布式系统尽量关闭掉Etag(每台机器生成的etag都会不一样)

  ★HTML通过meta的http-equiv属性控制浏览器缓存策略:通过设置Pragma和Cache-control和expires控制

    ps:只能控制html的缓存策略,不能控制css/js/图片的缓存策略。

    Cache-control的max-age和expires同时存在,那么先处理max-age。

    Cache-control指定了no-cache后,max-age和expires。

    Pragma: http 1.0 IE浏览器才识别,请求头中不会体现,但是确实有效果

    Cache-control: http 1.1

三、Nginx设置浏览器缓存

      ★Nginx设置浏览器缓存:可以在http 、server、location节点中添加。可以设置各种资源的缓存策略,不仅仅是HTML。而<meta http-equiv>节点只针对HTML

?
1
2
3
4
5
6
7
8
9
10
11
12
#add_header Cache-Control no-cache;
#add_header Cache-Control private;
  add_header Cache-Control max-age=7200;
if ($request_filename ~* ^.*?\.(ico|jpeg|gif|jpg|png|woff)$){
    expires 7d;
  }
if ($request_filename ~* ^.*?\.(js|css)$){
    expires 7d;
  }
if ($request_filename ~* ^.*?\.(html|htm)$){
    expires 3d;
  }

  ★Nginx中的配置会覆盖HTML的http-equiv=”Cache-control”配置。

   但是如果HTML中的加了下面3个标签,浏览器端效果还是只能no-cache。(从效果上来看:Nginx的Cache-control配置无效)

          因为Nginx的Cache-control配置只是覆盖了Cache-control(如果html加的是后面两个标签,Nginx还是有效的),而Pragma仍然起着作用。

?
1
2
3
<meta http-equiv=”Pragma” content=”no-cache”/>
  <meta http-equiv=”Cache-control” content=”no-cache;max-age=0″/>
  <meta http-equiv=”expires” content=”0″/>

总结

以上所述是小编给大家介绍的Nginx与浏览器缓存的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://www.cnblogs.com/caoshouling/archive/2018/04/28/8966062.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:用Nginx反向代理Node.js的方法

2023-4-19 1:13:52

建站知识

小知识:如何让Nginx快速支持TLS1.3协议详解

2023-4-19 1:32:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索