这篇文章主要介绍了Nginx与浏览器缓存的处理方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧

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

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

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

  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

#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仍然起着作用。

  <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与浏览器缓存的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对爱安网网站的支持!

    无相关信息
最新资讯
《科学》子刊封面:如何让大脑变年轻?

《科学》子刊封面:如何

“脑子越来越不好使”,是衰老最让人害怕和无奈的特征之
CWA:Google不公平地解雇了试图加入该工会的员工

CWA:Google不公平地解

外媒Techspot报道,由于工会正式向美国国家劳资关系委员
苹果调查16英寸MacBook Pro“爆音”问题

苹果调查16英寸MacBoo

Mac Rumors消息,苹果公司正在调查16英寸MacBook Pro笔
人民锐评:给用户挖“坑” 视频网站小心绊倒自己

人民锐评:给用户挖“坑

但凡买过视频网站会员的网友,恐怕都有这个烦恼。花钱买
孙正义对话马云:我还没有取得任何成就 仍是挑战者

孙正义对话马云:我还没

马云评价孙正义, “在投资方面可能是世界上最有胆量的
消息称2020款苹果iPhoneSE 2可能被命名为iPhone 9

消息称2020款苹果iPho

据日(J)本(P)博客网站Mac Otakara引用“知情人士”消息称,广
最新文章
Ubuntu18 给terminal改个漂亮的命令行提示符的方法

Ubuntu18 给terminal

这篇文章主要介绍了Ubuntu18 给terminal改个漂亮的命
Linux下Docker及portainer相关配置方法

Linux下Docker及porta

本文以CentOS 7为例,安装docker CE版本,docker有两种版
vmware workstation安装windows server 2019(图文教程)

vmware workstation安

这篇文章主要介绍了vmware workstation安装windows se
protobuf简单介绍和ubuntu 16.04环境下安装教程

protobuf简单介绍和ub

protobuf是谷歌的开源序列化协议框架,结构类似于XML,JSO
ansible删除目录下所有内容的方法

ansible删除目录下所

这篇文章主要介绍了ansible删除目录下所有内容的方法,
基于 ZooKeeper 搭建 Hadoop 高可用集群 的教程图解

基于 ZooKeeper 搭建

Hadoop 高可用 (High Availability) 分为 HDFS 高可用