Nginx配置浏览器缓存
强缓存
说明:当浏览器向服务器获取请求结果后,将请求结果在本地浏览器内缓存,之后的请求都先反问缓存内的结果,返回200
在Response Headers中设置cache-control、expires,两种方式都设置,以cache-control为主
cache-control,用来控制缓存方式
cache-control: max-age=6000 设置缓存存储的最大周期,超过这个时间缓存被认为过期
cache-control: no-store 不缓存
cache-control: no-cache 不使用强缓存,使用协商缓存
expires,响应头包含日期/时间,即在此时之后,响应过期
expires: Mon,15 Sep 2020 09:20:20 GMT
协商缓存
说明:当浏览器向服务器获取请求结果后,将请求结果在本地浏览器内缓存,之后向服务器发送请求,如果服务器内容没有发生变化,返回304,在从浏览器缓存中获取内容,如果发生变化,获取新的数据,返回200,再更新缓存,
response: last-modified: Mon,15 Sep 2020 09:20:20 GMT
request: if-modified-since: Mon,15 Sep 2020 09:20:20 GMT
response: etag: "619df7f3-554ca"
request: if-none-match: "619df7f3-554ca"
last-modified,包含源头服务器认定的资源做出修改的日期及时间 if-modified-since,服务器只在所请求的资源给定日期时间之后对内容进行过修改的情况下,才会将资源返回,状态码200,如果请求的资源从那时未经过修改,返回304,只能用在get、head请求 etag,是http响应头资源标识符,如果请求内容没有发生修改,web服务器不需要发送完整的响应,如果发生了修改,就会更新这个标识 if-none-match,将请求的etag的值做为参数传递给服务器,与服务器的etag进行对比,如果两者相同,标识没有发生修改,web服务器不需要发送完整的响应,如果不相同,标识请求内容修改过,获取新的内容
Ngnix配置缓存方法
浏览器默认对静态文件使用强缓存
server {
// 协商缓存
location ~* \.(html)$ {
access_log off;
add_header Cache-Control max-age=no-cache;
}
// 强缓存
location ~* \.(css|js|png|jpg|jpeg|git|gz|svg|mp4|ogg|ogv|webm|htc|xml|woff)$ {
access_log off;
add_header Cache-Control max-age=36000;
}
}
|