HTTP 304状态码的详细讲解

8,875 阅读1分钟

304状态码: 客户端有缓存情况下服务端的一种响应。

自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。

如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。服务器可以告诉 Googlebot 自从上次抓取后网页没有变更,进而节省带宽和开销。

将域名指向github pages以后,加载主页会出现Status code304的情况

httpcode304.png

模拟访问过程

  • 首次访问 200

  • F5刷新(第二次访问)304

  • Ctrl + F5强制刷新 200

  • Fiddler查看请求的过程

  • eg: 访问地址https://home-link.cc/

首次访问200

200.png

再次访问304

304.png

对比两次请求request headers中的信息

  • 首次加载
Cache-Control: no-cache
Pragma: no-cache
  • 第二次刷新
Cache-Control: max-age=0
If-Modified-Since: Mon, 07 Feb 2022 09:39:52 GMT
If-None-Match: W/"6200e8e8-a16"

首次加载的时候请求头中包含Pragma: no-cache, 再次加载的时候请求头增加了If-Modified-Since, If-None-Match

参考文章 HTTP 304状态码的详细讲解