(010)Nginx静态资源web服务_浏览器缓存原理与演示
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了(010)Nginx静态资源web服务_浏览器缓存原理与演示,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2234字,纯文字阅读大概需要4分钟。
内容图文
![(010)Nginx静态资源web服务_浏览器缓存原理与演示](/upload/InfoBanner/zyjiaocheng/939/8f5b96e6f5cb4481935e097743571750.jpg)
1、浏览器缓存原理
我们都知道浏览器是有缓存的,有了缓存,客户端不会每次都去请求服务端,这样能减轻服务器的压力,并且使浏览器的读取速度更快。浏览器缓存是基于HTTP协议定义的缓存机制(如:Expires,Cache-control等)实现的。浏览器会根据一定的规则校验缓存是否可用。浏览器访问服务端时会去临时文件夹中查找是否有临时文件,如果没有,会请求服务器。如果有的话就会就行缓存校验,浏览器通过3个参数校验缓存文件,下面具体说一下。
1)Expires或Cache-control:HTTP协议1.0版本用Expires,1.1版本用Cache-control,Cache-control中有一个max-age,它定义了缓存周期,即缓存文件在多久以内生效,超期了则进行下一步校验。
2)Last-Modified:协议中Last-Modified头信息校验,后面跟时间,缓存中的文件与服务器文件的最后修改时间进行比较。
3)Etag:协议中Etag头信息校验,后面跟字符串,缓存中的文件与服务器文件的Etag参数进行比较。
客户端先检查本地Cache-control是否过期,如果没有过期从缓存文件中读取,如果过期了,再校验则Etag或者Last-Modified。校验这两个参数会访问服务器,Last-Modified只能精确到秒,所以会优先校验Etag。
2、演示
首先说一点,原理上如上述,但是实际中大多数浏览器会有修改,比如每次请求的的max-age等于或者小于0,在有缓存的情况下,使浏览器每次都对比服务器,验证文件是否修改过,现实中这样做也是合理的。
配置语法:
Syntax:expires [modified] time;
expires epoch | max | off;(不常用)
Default:expires off;
Context:http,server,location,if in location
新建测试文件/opt/app/code/time.html
<html> <head> <meta charset="utf-8"> <title>admin</title> </head> <body style="background-color:red;"> <h1>Hello!Word! 2017-07-16 11:46</h1> </body> </html>
修改配置文件,指定首页路径
location ~ .*\.(html|htm)$ { root /opt/app/code; }
访问:http://192.168.7.151/time.html
刷新,状态为304,当校验Etag和Last-Modified时,发现内容没有改变则返回304,从缓存中读取。
这一次刷新request header里面有了max-age=0,第一次请求的时候,服务端并没有返回给缓存文件max-age=0的信息,这是浏览器自己加的,目的每一次都校验服务器。
下面配置缓存。在上的配置中增加expires。
location ~ .*\.(html|htm)$ { expires 24h; root /opt/app/code; }
校验配置文件,并重新启动nginx。清空浏览器缓存,重新访问:
返回200,response返回了设置的24h,因为第一次请求没有缓存,所以Cache-control:no-cache。
刷新一下:返回304,request header里面依然是浏览器默认的max-age=0。其实expires配置是不起作用的。
内容总结
以上是互联网集市为您收集整理的(010)Nginx静态资源web服务_浏览器缓存原理与演示全部内容,希望文章能够帮你解决(010)Nginx静态资源web服务_浏览器缓存原理与演示所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。