HTTP状态码304是什么?出现该状态码是否需要担忧?
HTTP 304状态码相关问题解答
是否需要担忧
完全不需要,304是浏览器与服务端缓存协商机制正常生效的表现,不仅没有问题,反而说明网站静态资源缓存策略配置合理,能有效降低重复资源传输带来的带宽消耗,提升页面加载速度。
出现304状态码的具体原因
304的全称为Not Modified(未修改),针对PNG、GIF这类更新频率低的静态资源触发,完整逻辑如下:
- 首次访问网站加载对应静态资源时,服务端会在响应头中返回两个关键缓存标识:
ETag(资源内容生成的唯一哈希值,内容变了值才会变)、Last-Modified(资源在服务端的最后修改时间),浏览器会把这两个标识和资源文件一同存入本地缓存。 - 后续再次访问该网站,浏览器请求同个资源前,会在请求头中带上
If-None-Match(值为之前缓存的ETag)、If-Modified-Since(值为之前缓存的Last-Modified),发给服务端做内容校验。 - 服务端校验后确认资源从上次返回至今没有任何修改,就不会重新传输完整的资源内容,仅返回304状态码通知浏览器直接读取本地缓存的资源即可。
- 304响应仅包含基础响应头,体积远小于返回完整资源的200响应,能大幅缩短请求耗时。
内容的提问来源于stack exchange,提问作者HeyitsCara
相关产品推荐
相关产品推荐

