http缓存

ROES 2020-04-22

浏览器缓存策略:强缓存和协商缓存

强缓存:不用向服务器询问

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只能

精确到秒,不适合短时间内频繁改动的资源。

相关推荐