Nginx与浏览器缓存的处理方法

  

<强>一、浏览器对缓存的处理:互联网选项

  

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

  

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

  

,,,,,,1.每次访问网页时
  ,,,,,,,,,,,,不管是否有缓存,资源状态是否过期,都会再次请求服务器。
  ,,,,,2.每次启动Internet Explorer时
  ,,,,,不管是否有缓存,资源状态是否过期,都会再次请求服务器。
  ,,,,,3.自动
  ,,,,,,,,,,,大体上和2是一样的,只是对于图片的策略有点不同。
  ,,,,,4.从不
  ,,,,,,,,,,,,完全按照资源的缓存策略来请求服务器。

  

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

  

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

  

<强>二、缓存控制策略

  

★last - modified/if - modified - since要配合cache - control使用,Etag/具有也要配合cache - control使用。

  

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

  

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

  

★HTML通过元的http-equiv属性控制浏览器缓存策略:通过设置编译指示和cache - control和到期控制

  

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

  

cache - control的信息和同到期时存在,那么先处理信息。
  cache - control指定了no - cache后,信息和到期。
  编译指示:http 1.0即浏览器才识别,请求头中不会体现,但是确实有效果
  cache - control: http 1.1

  

<强>三,Nginx设置浏览器缓存

  

,,,,,★Nginx设置浏览器缓存:可以在http服务器上,位置节点中添加。可以设置各种资源的缓存策略,不仅仅是HTML。而& lt;元http-equiv>节点只针对HTML

        # add_header cache - control no - cache;   # add_header cache - control私人;   add_header cache - control信息=7200;   如果($ request_filename ~ * ^ * & # 63; \。(ico | jpeg | gif | jpg | png | woff) $) {   到期7 d;   }   如果($ request_filename ~ * ^ * & # 63; \。(js | css)美元){   到期7 d;   }   if ($ request_filename ~ * ^ * & # 63; \。美元(html | htm)) {   到期的3 d;   }      

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

  

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

  

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

        & lt;元http-equiv=霸幼ⅰ蹦谌?" no - cache "/比;   & lt;元http-equiv=癱ache - control”内容=" no - cache;信息=0 "/比;   & lt;元http-equiv=暗狡凇蹦谌?" 0 "/祝辞      

  

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

Nginx与浏览器缓存的处理方法