Apr
12
2021
使用CDN加速域名后访问资源返回304状态码
概述
本文主要介绍使用CDN加速域名后,访问资源有时会返回304状态码的相关介绍。
详细信息
客户端第一次向服务器成功发送请求,服务器会把内容返回给客户端,状态码是200,且会标记内容修改时间,生成一个ETag标记,用来核实内容是否修改过。等下次同一客户端再次发送请求,会根据请求标记的修改时间,通过ETag标记判断文件内容在这期间是否修改过。如果没有修改过,则返回304状态码。客户端直接加载缓存内容,如果文件内容修改过则把最新内容返回给客户端,并返回最新文件修改时间和ETag。返回304状态码示例如下。
-
浏览器客户端第一次访问一个图片,请求成功,服务器返回200状态码,Response Header响应包里会包含Last-Modified最近修改时间和ETag。
-
当客户端再次访问时,会在请求头中加上之前读取内容的修改时间和ETag,如下图所示,服务器会根据ETag和Last-modified判断内容最近有没有修改过。如果没有修改,则返回304状态码,如果修改过,则把最新内容返回客户端,状态码则是200。
- 所以有时候服务器相关日志文件、CDN日志文件和OSS日志文件都会有304状态码,这属于正常情况,说明缓存中已经存在这些内容,并且在此期间中这些内容并没有修改,如果想更新缓存,可以按 Ctrl + F5 键,客户端会清除缓存,重新向服务器发送请求,服务器则返回请求内容,并且状态码是200。
本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。
我有话说: