HTTP 304: Not Modified :Not Modified客户端有缓冲的文档并发出了一个条件性的请求(一般是提供if-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。如果客户端在请求一个文件的时候,发现自己缓存的文件有Last Modified,那么杂请求中会包含if Modified Since,这个时间就是缓存文件的Last Modified(Date).如下图(很想上传自己的图片,但是不知道为什么新版的csdn上传的图片总是上传不上,所以就借鉴别人的图片了,我的图片中在响应头中Last Modified实际是Date)

在请求头(Request Header)中有:if-Modified-Since:Mon,17 Aug 2015 01:53:41 GMT

在响应头(Response Headers)中有:Last-Modified:Mon,17 Aug 2015 01:53:41 GMT

对比一下上面的请求头信息,我们能够发现,两个的日期和时间完全一致,如果一致就是从缓存中去获取内容

因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。

但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。

因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

第一次访问 200

鼠标点击二次访问 (Cache)

按F5刷新 304

按Ctrl+F5强制刷新 200

HTTP 304: Not Modified相关推荐

  1. 304 Not Modified

    304 Not Modified,不是服务器发出的错误,是服务器所承载的业务系统在开发时为了节省带宽和提升浏览器的体验,对GET/js,css,image等执行了缓存机制.客户端第一次对服务器发出GE ...

  2. Where is ABAP Netweaver HTTP 304 not modified set

    Created by Jerry Wang, last modified on Mar 26, 2015 test1: test2: What does 304 Not Modified mean? ...

  3. SAP ABAP应用服务器返回给前端的304 not modified是怎么设置的

    Created by Jerry Wang, last modified on Mar 26, 2015 test1: test2: What does 304 Not Modified mean? ...

  4. HTTP 200 OK和HTTP 304 Not modified的由来

    这两个字段都和HTTP协议的缓存控制相关. 浏览器缓存机制是通过HTTP协议Header里的Cache-Control(或Expires)和Last-Modified(或 Etag)等字段来实现. 这 ...

  5. 200 OK (from cache) 与 304 Not Modified

    本文载于袁源(歪歪)的个人博客:http://www.bokeyy.com/post/200-ok-from-cache-vs-304-not-modified.html . 为什么有的缓存是 200 ...

  6. 返回状态码304 Not Modified详解

    第一次访问 200 鼠标点击二次访问 (Cache) 按F5刷新 304 按Ctrl+F5强制刷新 200 在客户端向服务端发送http请求时,若返回状态码为304 Not Modified 则表明此 ...

  7. 304 Not Modified详解

    第一次访问 200  鼠标点击二次访问 (Cache)  按F5刷新 304  按Ctrl+F5强制刷新 200 在客户端向服务端发送http请求时,若返回状态码为304 Not Modified 则 ...

  8. HTTP statusCode 200 OK 和 304 Not Modified

    场景 启动Node服务器之后,GET一个文件资源,多次刷新发现除了第一次,之后的相应码皆为304. 响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户 ...

  9. 304 not modified 缓存问题解决

    304 not modified 缓存问题解决   问题引入:一个普通的get请求,当点击按钮,发送第二次请求,Status变为304 not modified,不在是200   解决方法:需在url ...

最新文章

  1. python函数拟合不规则曲线_python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案...
  2. Centos 7.5安装配置MongoDB 4.0.5
  3. 解决网通英文wiki无法显示图片问题【20100723更新】
  4. 基于用例点来度量软件规模并管理进度 之一
  5. 压力测试工具Jemeter安装及使用
  6. SpringBoot_web开发-引入thymeleaf
  7. python守护线程
  8. mapping数据列表
  9. 搭建LNMP基础框架
  10. jeecms首页模板自定义
  11. apache编译出错 error: mod_deflate has been requested
  12. 【网络】为什么我执行了发布操作,但是线上的资源并没有更新?
  13. 周期信号的博里叶级数表示(连续时间)
  14. 使用python替换word模版中的内容
  15. 【海外合作】效率源智能手机取证系统入选克罗地亚大学教学工具
  16. 观点 | 电动汽车变革进行时,芯片IP供应商扮演着怎样的角色?
  17. vue js 清除 data数据
  18. 做SEO需要学习什么?做好SEO必备的七大技能
  19. Oracle hint认识
  20. 前端技能树,面试复习第 52 天—— 手写代码:Javascript 基础考核

热门文章

  1. docker golang buid rstp2webrtc
  2. 记一款游戏--《程序员升职记》
  3. WINCE 注册表修改
  4. html-css-js
  5. 002概率论基本公式
  6. ks:能定阈值的评价指标
  7. Ubuntu系统管理 —— 磁盘的初始化及自动挂载
  8. 计算机咋么开远程桌面权限,怎么将win10系统电脑中的允许远程桌面访问权限打开...
  9. 用好WinXP自带的虚拟光驱
  10. supermap开发帮助文档链接