分析HTTP请求返回304状态码

Posted asdfasdfasdad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析HTTP请求返回304状态码相关的知识,希望对你有一定的参考价值。

大家好,今天给大家分享一个状态码304,大家可能在以前的开发中打开chrome tools 或 firebug工具时有意间或无意间看到它。




HTTP 304: Not Modified 
标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
如下图:



在请求头里有:If-Modified-Since: Mon, 17 Aug 2015 01:53:41 GMT

在响应头里有:Last-Modified: Mon, 17 Aug 2015 01:53:41 GMT

大家对比一下这二个日期发日期和时分秒都是完全一致的,如果一致就从缓存中去获取内容

我们在图片中看到了一个它cache-control 
如果cache-control:no-chache说明强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验。
如果cache-control:max-age=0有二种情况:
1、max-age>0 时 直接从游览器缓存中 提取 
2、max-age<=0 时 向server 发送http 请求确认 ,该资源是否有修改有的话 返回200 ,无的话 返回304. 

第一次访问 200 
鼠标点击二次访问 (Cache) 
按F5刷新 304 
按Ctrl+F5强制刷新 200

以上是关于分析HTTP请求返回304状态码的主要内容,如果未能解决你的问题,请参考以下文章

常见HTTP状态(304,)

HTTP状态码304与ETag详解

HTTP状态码304与ETag详解

HTTP状态码304与ETag详解

区分http请求状态码来理解缓存(协商缓存和强制缓存)

HTTP返回代码 201 304 404 500等代表的含义