304 Not Modified是什么意思

发布于 2021-09-02  429 次阅读


HTTP 304 Not Modified客户端重定向响应代码指示不需要重新传输请求的资源。

在客户端向服务端发送http请求时,要是返回http状态码为304 Not Modified 则表明此次请求为条件请求。在请求头中有两个请求参数:If-Modified-Since 和 If-None-Match。

当客户端缓存目标资源但不确定缓存的资源是否为最新版本时,会发送条件请求。客户端在发出条件请求时,会向服务器提供一个 If-Modified-Since 请求头,其值为服务器上次返回的响应头中的 Last-Modified 值,以及一个 If-None-Match 请求头,其值为服务器上次返回的 ETag 响应头的值。

服务器将读取这两个请求头中的值,并判断客户端缓存的资源是否是最新的。如果是,服务器将返回HTTP/304未修改响应头,但没有响应体。客户端收到304响应后,将从本地缓存中读取相应的资源。因此,当存在对被访问资源的304访问时,被访问的资源实际上首先被本地缓存。

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

兼容性说明

  • 如果此响应错误地包含持久连接上的主体,则浏览器行为会有所不同。有关更多详细信息,请看其他内容
  • If-Modified-Since
  • If-None-Match

总结

使用F5刷新网页时,返回HTTP 304 Not Modified

使用ctrl+F5刷新网页时,返回HTTP 200


公交车司机终于在众人的指责中将座位让给了老太太