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

如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 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,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

当这些缓存有效的时候,通过 HttpWatch 查看一个请求会得到这样的结果:

第一次访问 200

鼠标点击二次访问 (Cache)

按F5刷新 304

按Ctrl+F5强制刷新 200

如果是这样的就说明缓存真正有效了

HTTP 304错误的详细讲解相关推荐

  1. java如何爬取304_HTTP 304错误的详细讲解

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

  2. java 304_HTTP 304错误的详细讲解

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

  3. HTTP 304 错误的详细解释

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

  4. HTTP 304状态码的详细讲解

    HTTP 304状态码的详细讲解 304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应. 整个请求响应过程如下: 客户端在请求一个文件的时候,发现自己缓存的文件有 Last ...

  5. HTTP Status Code 304 状态码的详细讲解

    HTTP 304状态码的详细讲解 304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应. 整个请求响应过程如下: 客户端在请求一个文件的时候,发现自己缓存的文件有 Last ...

  6. Yaml版接口自动化详细讲解(Python + pytest + allure + log + yaml + mysql + redis + 钉钉通知 + Jenkins)

    目录 框架介绍 框架结构 框架功能讲解 common  # 配置 config.yaml  # 公共配置 setting.py  # 环境路径存放区域 data  # 测试用例数据 Files  #  ...

  7. java异常详细讲解_Java异常处理机制的详细讲解和使用技巧

    一起学习 1. 异常机制 1.1 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 1.2 ...

  8. python爬虫原理-python爬虫原理详细讲解

    原标题:python爬虫原理详细讲解 一 .爬虫是什么 1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. 2.互联网建立的目的?互联网的 ...

  9. oracle怎么将一列挪到另一列,详细讲解Oracle数据库的数据迁移方法

    <详细讲解Oracle数据库的数据迁移方法>由会员分享,可在线阅读,更多相关<详细讲解Oracle数据库的数据迁移方法(4页珍藏版)>请在人人文库网上搜索. 1.详细讲解 Or ...

最新文章

  1. postman请求soap 请求_postman测试调用web service asmx
  2. 深度学习1:生成模型的输入数据集和可视化
  3. 独家 | 基于癌症生存数据建立神经网络(附链接)
  4. 网络推广专员浅析网站运营三种基本模式具备哪些网络推广重点!
  5. java 调试 gdb_android gdb 调试实例演示(有源代码篇)
  6. php读取部分文章显示不出来了,织梦使用PHP5.3环境时遇到部分文章出现”读取附加信息出错“的解决办法jz1...
  7. 3ds Max Shortcuts 快捷键大全
  8. 使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】
  9. HTML第一章:初始HTML
  10. pythonmysql部署_详解centos7+django+python3+mysql+阿里云部署项目全流程
  11. 返回上一视图,凸显一个视图,其他视图变模糊
  12. 学习python: 单例设计模式
  13. php 连接芒果数据库,芒果数据库mongoDB
  14. 利用matlab符号变量进行矩阵乘法公式推导
  15. 论文笔记:OntoED: Low-resource Event Detection with Ontology Embedding
  16. bp抓包挂代理127.0.0.1服务器出现“有软件正在阻止Firefox安全连接至网站”问题的解决方法
  17. 2015年自我激励及2014年的总结
  18. windows文本转语音调用
  19. 像素鸟 app 的设计与实现
  20. 数据分析常用方法思路算法

热门文章

  1. 安装crf++的python包
  2. 通过股票量化交易券商接口如何减少发生亏损的风险?
  3. PyQt文本输出textEdit
  4. 华为机试2022.4.6:天然货仓
  5. 4数据库操作知识复习点
  6. vue引入echarts实现3D地球旋转 不设置背景图片
  7. MySQL一条SQL语句查询多个科目的成绩
  8. CSS开发技巧(一):button样式设置
  9. 电动汽车充电设备标准化设计方案:电气原理图
  10. PBKDF2加密的实现