CY-Left

基本功底网络原理

浏览器缓存设置

浏览器缓存设置

一、浏览器级缓存设置

减少服务器请求, 节省流量

设置 cache-control

cache-control 参数如下:
1. max-age: 设置缓存最大有效时间(s), 有此配置将覆盖 Expires
2. s-maxage: 仅用于代理缓存(如 Nginx), 会覆盖 Expiresmax-age
3. public, 默认选项, 请求会被缓存, 且支持多用户共享
4. private: 响应只作为私有的缓存,不能在用户间共享。如果要求HTTP 认证,响应会自动设置为 private
5. no-cache: 通知浏览器忽略资源的缓存副本,强制直接请求服务器,验证是否使用缓存,但不是“不缓存”。
6. no-store: 禁止缓存。
7. must-revalidate: 验证字段,如果页面过期,则去服务器进行获取。

浏览器根据如下规则寻找缓存:

判断是否使用缓存(no-store) -> 判断是否验证(no-cache) -> 有代理服务器缓存(s-maxage) -> 判断过期时间, 验证是否 public 缓存

无代理服务器缓存(max-age) -> 未过期直接调用本地缓存

二、代理服务器级缓存设置

减少文件编译, 直接获取上一次调用过的文件

代理服务器 Nginx 设置

proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m

报文设置

  1. 设置 s-maxage = 20
  2. 没有 s-maxage 时, 会询问是否设置 max-age

本文虽拙,却也系作者劳动,转载还请保留本文链接: http://cyleft.com/?p=809