Nginx与浏览器缓存
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
  #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与浏览器缓存的更多相关文章
- nginx,控浏览器缓存,前端优化方案
		
1,困惑 做web项目,对于开发者来说,一个最头痛的问题就是浏览器缓存,有缓存,js更改了,html更改了,发布服务器以后用户往往无法通过浏览器访问到最新的类容,需要用户主动去刷新页面, 因为一直做企 ...
 - nginx 与 浏览器缓存
		
一.本地静态文件 location /html/{ rewrite ^(html/.*)$ /$1 break; root /data/static; expires 12h; etag off; i ...
 - Nginx 决策浏览器缓存是否有效
		
expires指令是告诉浏览器过期时间 syntax:expires [modified] time; eopch | max | off; default : off context :http,s ...
 - # Nginx设置浏览器缓存
		
配置语法 在location或if段里,来写. 格式 expires 30s; expires 30m; expires 2h; expires 30d; (注意:服务器的日期要准确,如果服务器的日期 ...
 - nginx 禁止浏览器缓存
		
如果我们使用Nginx作为静态资源服务器,那么可以使用expires进行缓存控制. location /{ expires 1s; } 如果Get页面未做任何修改,服务器就是对客户端返回304 Not ...
 - Nginx实践篇(2)- Nginx作为静态资源web服务 - 控制浏览器缓存、防盗链
		
一.控制浏览器缓存 1. 浏览器缓存简介 浏览器缓存遵循HTTP协议定义的缓存机制(如:Expires;Cache-control等). 当浏览器无缓存时,请求响应流程 当浏览器有缓存时,请求响应流程 ...
 - Nginx使用Expires增加浏览器缓存加速(转)
		
转载自:Nginx使用Expires增加浏览器缓存加速 Nginx可以更改HTTP头部,这个是Web服务器必须的,当然Nginx更可以支持在HTTP头部中添加Expires等相关信息,增强浏览器缓存, ...
 - 【nginx网站性能优化篇(1)】gzip压缩与expire浏览器缓存
		
gzip压缩 概述 网页在服务器端经过了gzip或者其他格式的压缩后的输出明显减少了content-length字节,当访问过百万时,这些减少的字节就会变为客观的流量给节约下来;从而减轻服务器的压力以 ...
 - nginx优化--gzip压缩与expire浏览器缓存
		
gzip压缩 概述 网页在服务器端经过了gzip或者其他格式的压缩后的输出明显减少了content-length字节,当访问过百万时,这些减少的字节就会变为客观的流量给节约下来;从而减轻服务器的压力以 ...
 
随机推荐
- ArcGIS10.3+Oracle12C+ArcGIS Server10.3安装布署(之三)
			
1.将Oracle的客户端切换到64位 (1)将C:\下的instantclient_12_1目录重命名为instantclient_12_1X86 (2)从Oracle的官方网站下载 insta ...
 - Kubernetes核心概念简介
			
本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍.相反,我们会使用一些图表(其中一些是动画)和示例来解释这些概 ...
 - AR中的SLAM(一)
			
写在前面 本系列打算讲讲个人对AR行业和AR中的SLAM算法的一点浅显的看法.才疏学浅,文中必然有很多疏漏和不足,还望能和大家多多讨论.今天先讲讲我对AR的一些认识. AR的一点理解 AR是什么 AR ...
 - leetCode题解之Number of Lines To Write String
			
1.题目描述 2.分析 使用一个map将字母和数字对应起来,方便后续使用. 3.代码 vector<int> numberOfLines(vector<int>& wi ...
 - webpack-易混淆部分的解释
			
原文链接: https://medium.com/@rajaraodv/webpack-the-confusing-parts-58712f8fcad9 webpack的核心哲学 1. 任何皆模块 正 ...
 - Python项目生成requirements.txt的多种方式
			
我相信任何软件程序都会有依赖的类库,尤其现在开源如此的火爆,因为一个项目可能会有无很多的依赖的包 这个时候难道我们都要一个一个的去找到安装吗?即使你找到了依赖的包 但是呢模块的版本又有很多难道你都要装 ...
 - WinPE ISO制作
			
1.安装ADK,然后导出winPE镜像文件和启动文件: 打开 部署和映像工具环境,cd "Windows Preinstallation Environment",运行 copyp ...
 - 使用linux远程登录另一台linux
			
可以用ssh命令行方式登录.对方需要开启ssh服务. ssh [-l login_name] [-p port] [user@]hostname 例如,使用root用户登录 192.168.0 ...
 - qt的共享内存
			
https://blog.csdn.net/gdutlyp/article/details/50468677
 - 北美Developer生存发展攻略
			
http://www.followmedoit.com/bbs/forum.php?mod=viewthread&tid=49&extra=page%3D1 在北美,做PM不易,而做D ...