http缓存
浏览器缓存策略:强缓存和协商缓存
强缓存:不用向服务器询问
1、expires-过期时间。设置expires值表示缓存会在这个时间后失效,过期时间是绝对日期,如果修改本地日期,
或本地日期与服务器日期不一致,将导致缓存过期时间错误
例如:Expires: Thu, 26 Dec 2019 10:30:42 GMT
2、设置Cache-Control.可以通过设置max-age字段设置过期时间
协商缓存:需要向服务器询问缓存是否过期
1、last-Modified:最后修改时间,浏览器第一次请求资源,服务器会在响应头加上Last-Modified,当浏览器再次请求该资源时,
浏览器会在请求头中带上If-Modified-Since字段,字段的值为服务器返回的最后修改时间,服务器对比这两个时间,若相同则
返回304,否则返回新资源并更新Last-Modified
2、ETag:表示文件唯一标识,只要文件内容更改,ETag就会重新计算。浏览器第一次请求资源,服务器会返回ETag字段,当
浏览器再次请求时,会发送if-None-Match,服务端对比这两个值,如果ETag不匹配,则返回新资源
ETag和Last-Modified比较:ETag更准确,如果打开文件但没有修改,last-Modified也会改变;而且Last-Modified只能
精确到秒,不适合短时间内频繁改动的资源。