304未用200修改(来自缓存)

我试图了解“状态304未修改”和“200(来自缓存)”之间的区别究竟是什么

我在上次更改的JavaScript文件上获得了304份。 为什么会发生? 感谢您的帮助。


https://sookocheff.com/post/api/effective-caching/是形成围绕这2个HTTP状态代码所需理解的极好来源。

彻底阅读后,我有这种理解

在典型用法中,当检索URL时,Web服务器将返回资源的当前表示及其相应的ETag值,该值位于HTTP响应标题“ETag”字段中。 然后客户可能决定缓存表示,以及它的ETag。 稍后,如果客户端想要再次检索相同的URL资源,它将首先确定本地缓存版本的URL是否已过期(通过Cache-Control和Expire标头)。 如果URL尚未过期,它将检索本地缓存资源。 如果确定URL已过期(已过时),则客户端将联系服务器,并在“If-None-Match”字段中将先前保存的ETag副本与请求一起发送。 (来源:https://en.wikipedia.org/wiki/HTTP_ETag)

但即使将来设置了资产的到期时间,浏览器仍然可以根据'Vary'标题使用ETag到达服务器以获得有条件的GET。 有关'变化'标题的详情:https://www.fastly.com/blog/best-practices-using-vary-header/


304修改
304未修改意味着文件自指定版本以来没有被“If-Modified-Since”或“If-None-Match”修改。

200 OK
如果HTTP请求有效,这是您将得到的响应。 GET请求将与文件有关。 一个POST请求将会持有该操作的结果。

快乐的编码!
LYFE

链接地址: http://www.djcxy.com/p/45597.html

上一篇: 304 Not Modified with 200 (from cache)

下一篇: What's the difference between Cache