客户端第一次向服务器成功发送请求,服务器会把内容正确返回给客户端,状态码是200,并会标记内容修改时间,和一个etag标记用来核实内容是否修改过,等下次同一客户端再次发送请求,会根据请求标记的修改时间,etag来判断文件内容在这期间是否修改过,如果没有修改过则返回304状态码,客户端直接加载Web缓存内容,如果文件内容修改过则把最新内容返回给客户端,并返回最新文件修改时间,etag标记。
参考如下事例,客户端第一次访问一个图片,请求成功,服务器返回200状态码,response响应包里会包含文件最近修改时间last-modified,和etag标记,
当客户端再次访问时,会在请求头带上上次读取内容的修改时间和etag标记,如下图,服务器会根据etag和last-modified判断文档内容最近有没有修改过,如若没有则返回304状态码,如若修改过则把最新内容返回客户端,状态码则是200。
所以有时候服务器日志,或者CDN日志,OSS日志都会有304状态码,这个是正常的,说明Web缓存已经有这些内容了,并且在这期间这些内容并没有修改过,如果想更新Web缓存,可以按ctrl+F5页面,客户端会清除本地Web缓存从服务器发送请求,服务器则返回请求内容,并且状态码是200。
如问题还未解决,请联系售后技术支持。
该文章对您有帮助吗?