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与浏览器缓存的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对云狐网站的支持!
- 上一篇
使用mysql管理软件导入恢复/导出备份mysql(图文)
利用mysql管理工具导入导出,可以避免数据导入导出时出现的乱码问题,mysql的管理软件有很多,文本主要介绍Navicat Premium的使用方法,软件可以去官方搜索下载。本文来源于互联网。注意:使用软件管理需要开启mysql的远程连接
- 下一篇
phpstudy使用教程(图文)
phpstudy相比于wampserver具有多站点的优势,可以随意切换php版本,在本地可以模拟真实域名测试项目,不管是前端还是后端会使用phpstudy都是非常必要的。 phpstudy官方下载:https://www.xp.cn/download.html 安装过程
更多相关
相关文章
- linux的目录结构;Linux系统各个目录的作用介绍
- mssql2000数据库通过附加数据库转到SQL2008(图文)
- Win2012配置asp网站(图文教程)
- win2008 r2系统iis7中如何设置ip限制(图文)
- IIS7 支持html页面包含(include)html页面 IIS设置与代码编写
- Win2003+IIS6.0+php5.2.2+MySQL 5.0.41+phpMyAdmin 2.10.1环境配置安装
- 网站采集入库502 Bad Gateway错误时,修改PHP 配置修改参考
- 出错了,[腾讯云COSFS]运行时发生错误!qcloud_cos.cos_exception.CosClientError: SecretId and SecretKey is Required!
- 腾讯Linux云主机快速挂载云盘命令,设置开机自动挂载详细图文教程
- 腾讯轻量云主机win2012系统挂载SSD云硬盘操作步骤(图文)