文章目录
nginx作为静态资源服务器,用于处理静态资源非常的高效
静态资源类型 | 后缀 |
---|---|
html资源 | html、css、js |
图片文件 | jpg、png、gif、jpeg |
视频文件 | mp3、mp4、avi |
文本文件 | txt、doc、xml |
其他文件 |
1.静态资源缓存
1)浏览器缓存
#响应头部
cache-control: max-age=2592000
expires: Thu, 19 Nov 1981 08:52:00 GMT
ETag: "5f3fefc8-2d03"
Last-Modified: Fri, 21 Aug 2020 16:01:12 GMT
#请求头部
If-Modified-Since: Fri, 21 Aug 2020 16:01:12 GMT
If-None-Match: "5f3fefc8-2d03"
2)浏览器读取缓存流程
1.浏览器会先去查看响应头部的cache-control(缓存控制)
2.如果没有到达过期时间,会直接返回缓存中的内容,不需要重新读取服务器
3.如果cache-control设置为 no-cache,浏览器会去读取expires(缓存过期时间)
4.如果没有到达expires过期时间,会直接返回缓存中的内容,不需要重新读取服务器
5.如果cache-control和expires都没有设置
6.浏览器会去查看服务器上面ETag值,如果有浏览器会拿着 If-None-Match 去跟他对比
7.如果ETag与浏览器的 If-None-Match 相同,则走缓存
8.如果ETag与浏览器的 If-None-Match 不相同,浏览器会去查看服务器上面 Last-Modified值
9.如果服务器上有 Last-Modified值,浏览器会拿着If-Modified-Since去跟他对比
10.如果Last-Modified值与浏览器的 If-Modified-Since 相同,则走缓存
11.如果Last-Modified值与浏览器的 If-Modified-Since 不相同,重新去服务器读取数据
#含义
1.cache-control:缓存控制,记录的时文件保留时间
2.expires:缓存时间,记录的是文件的过期时间
3.ETag:服务器上保留的文件唯一标识符
4.If-None-Match:浏览器上保留的文件唯一标识符
5.Last-Modified:服务器上保留的文件最后修改时间