ETag 和 Last-Modified, 协商缓存。 文件h

2018-10-25  本文已影响0人  樊海鹏

特性

ETag特点

  1. Last-Modified只能精确到秒,秒之内的内容更新Etag才能检测
  2. 文件有时会定时重新生成相同内容,Last-Modified不能很好辨别
  3. etag每次服务端生成都需要进行读写操作,而last-modified只需要读取操作,etag的消耗是更大的

Etag/If-None-Match例子

  1. 第一次请求
image.png

2.第二次请求


image.png

通过实验可以清晰看到这个请求头是怎么起作用的

Last-Modified/If-Modified-Since

与上面类似,具体请对照实验

304

如上面所示,304状态码出现在协商缓存,进行缓存内容有效性验证的时候。如果缓存内容被服务端认定没有变化,则只返回response header,并把状态码设置为304,并不返回response body,浏览器再收到304的时候,从本地的缓存中读取内容。如果内容有变,则返回新的header和body。可见,304在缓存中的作用最后体现在少返回了一次内容上。

参考资料:

http://www.telerik.com/blogs/understanding-http-304-responses
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag

作者:donnylin
链接:https://www.jianshu.com/p/b5c805f4e8d1
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

上一篇下一篇

猜你喜欢

热点阅读