304 的标准解释是: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,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

http响应状态码304相关推荐

  1. HTTP:状态码304

    状态码304 相关头信息   * Last-Modified:响应头,表示当前资源的最后修改时间:   * If-Modified-Since:请求头,表示缓存的资源最后修改时间: 状态码304:表示 ...

  2. HTTP简介、请求方法与响应状态码

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Https相关的文章,请看这一篇:TCP.IP协议族之数字签名与HTTPS详解 接下来想系统的回顾 ...

  3. HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头

    http://blog.csdn.net/qxs965266509/article/details/8082810 用于HTTP请求中的常用请求头字段 Accept:用于高速服务器,客户机支持的数据类 ...

  4. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  5. python爬虫常见报错_Python爬虫常见HTTP响应状态码详解

    在使用Python进行网页数据抓取时,经常会遇到无数据返还或错误等异常,这个时候可以通过status_code命令来查看获得http请求返回的状态码,以便查找原因并制定相应的解决方案.import r ...

  6. 02-HTTP的请求方法以及响应状态码

    1.   HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...

  7. ABAP应用服务器的HTTP响应状态码(Status Code)

    最近Jerry参与了SAP Commerce Cloud的标准开发,我们调用微软云平台Azure上创建Lambda Function的Restful API来创建Lambda Function: 在开 ...

  8. fastapi 响应模型 / 响应状态码 / 表单参数

    文章目录 1. response_model 2. 添加输出模型 3. 响应模型编码参数 4. response_model_include 和 response_model_exclude 5. 代 ...

  9. http响应状态码大全

    http响应状态码大全 转:http://blog.sina.com.cn/s/blog_4ae187490100x9u7.html http状态返回代码 1xx(临时响应) 表示临时响应并需要请求者 ...

最新文章

  1. jQuery-1.9.1源码分析系列(四) 缓存系统
  2. cygwin编译生成hello world_自己动手实现Lua:虚拟机、编译器、标准库(一)——搭建开发环境...
  3. CentOS 8 已是绝版?还有后续么?
  4. 计算机科学与技术分享会,“相伴成长,绘梦未来”——计算机科学学院计算机科学与技术专业举办交流分享会...
  5. track_info分区表的创建并将ETL的数据加载到Hive表
  6. centos php mcrypt_Centos 建议使用epel源
  7. 【Hadoop 分布式部署 十 一: NameNode HA 自动故障转移】
  8. oozie中时间EL表达式
  9. java代码转python代码(需要手动调整)
  10. 如何进行IP子网划分
  11. Mac Mojave 更改默认的截图名称格式及路径
  12. 求若当标准型的变换矩阵
  13. [SIGMOD 2021] SharPer: Sharding Permissioned Blockchains Over Network Clusters
  14. Niagara N4 与物联网的学习经验分享(一 New Station)
  15. 2022微信群裂变强制分享引流源码+防洪+独立后台
  16. 微信是怎样炼成的 微信产品的发展历程
  17. 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)
  18. 胡笨笨硕士期间项目心得之项目三气象知识图谱的构建及区域积水地区预测
  19. 世界上只有三种人:程序猿人和男人女人
  20. STM32CubeMX——LED定时闪烁和输出PWM波

热门文章

  1. 农行最新最全申请进度代码大全
  2. Codeforces Round #798 C. Infected Tree
  3. python减法报错_python – numpy FloatingPointError:减法中遇到的值无效 – 不可重现?...
  4. 逻辑运算符 [MySQL][数据库]
  5. 一粒云-企业微信免登配置
  6. 3GPP TS 29244-g30 中英文对照 | 5.7.1 General
  7. Windows 关闭指定端口命令
  8. Windows10打开telnet功能
  9. 极米刷鸿蒙系统,极米科技再创经典,极米RS Pro 2让用户尊享旗舰级体验
  10. python列表操作——列表嵌套列表,找出嵌套列表中共同的元素