对于静态文件浏览器会进行缓存, 缓存分为强缓存和协商缓存
强缓存:会取本地缓存资源不会发送http请求到服务器
协商缓存:会发送http请求到服务器, 确认是否资源有过期, 如果资源没有过期, 则会返回304状态码
浏览器缓存可由添加以下头部来设定:
cache-control:max-age(过期时间, 未过期前采用本地缓存) no-cache(不采用本地缓存, 采用协商缓存) no-store(不缓存) public 可以被所有用户缓存, 包括终端用户和cdn等中间代理商 private 只能被浏览器缓存
Expires:(设定过期时间, 未过期前采用本地缓存)
cache-control 和expires 同时启用, cache-control 优先级高
chrome浏览器的不同:
1.当你不明显设定过期时间的时候(max-age, expire), chrome浏览器会自主决定资源的缓存时间, 所以在这里建议大家对静态资源都设定明显的过期时间, 或者其他选项
2.chrome浏览器在资源未过期的时候,即使你刷新页面, 也不会发起http请求, 这与ie浏览器的情况不同
参考: