最近和同事一起看Web的Cache问题,又进一步理解了 HTTP 中的 304 又有了一些了解。 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,从而大大的降低带宽的消耗,对于用户的感觉也是提高。
当这些缓存有效的时候,通过 HttpWatch 查看一个请求会得到这样的结果
第一次访问 200
鼠标点击二次访问 (Cache)
按F5刷新 304
按Ctrl+F5强制刷新 200
如果是这样的就说明缓存真正有效了。以上就是我对 HTTP 304 的一个理解。
原帖:http://bulaoge.com/topic.blg?dmn=webdev&tid=301677
分享到:
相关推荐
VICTOR 304ABC说明书转曲20190627
根据给定文件的信息,我们可以总结出关于ER304二极管的相关知识点: ### 基本特性 #### 低漏电流(Low Leakage) ER304二极管具有非常低的漏电流特性,这意味着在关闭状态下,几乎没有任何电流通过二极管。这种...
《USR-TCP232-304:485转以太网服务器的软件使用指南》 在工业自动化和物联网领域,数据通信是至关重要的环节。USR-TCP232-304是一款功能强大的485转以太网转换器,它允许设备通过RS-485接口连接到以太网网络,从而...
"LNK304设计" LNK304是一种非隔离电源模块,主要用于将220V直接转换为直流低压12V,广泛应用于遥控开关插座、空调、洗碗机、电饭煲等家用电器的控制电源。 LNK304的设计特点: 1. 输出功率为1.44W,适用于小功率...
《libtesseract304.dll与liblept172.dll:OCR技术的关键组件解析》 在信息技术领域,光学字符识别(OCR)是一项至关重要的技术,它能够将图像中的文字转换为可编辑、可搜索的文本。libtesseract304.dll和liblept172...
QC T 304-1999汽车转向拉杆接头总成台架试验方法.doc
USR-TCP232串口转网络调试助手是一款强大的工具,专为开发人员设计,用于在串口设备(如Arduino和ESP8266)与网络之间建立通信桥梁。这款软件能够帮助用户轻松地进行远程调试和数据传输,极大地提高了工作效率。 ...
LNK304PN是一款由Power Integrations公司生产的LinkSwitch-TN系列离线开关集成电路,它主要面向成本效益较高、组件数量最少的高效能源转换应用。LNK304PN具有出色的线性和负载调节能力,即使在典型的负载条件下也能...
220V输入DC5V输出LNK304电源板+完整的原理图文件,可以直接制版。参考LNK系列IC资料可以修改采样电阻的比值来确定输出电压高低。该电路可以用在一些直接从市电来去电给小控制板的系统应用场合。
1. **USR-TCP232-304_software_V1.0.6.pdf**:这很可能是该串口转网口设备的软件手册或用户指南,版本号V1.0.6,涵盖了如何安装、配置和操作设备的软件部分。 2. **USR-TCP232-304_V1.0.6.pdf**:这可能是设备的主...
标题 "HL-340USB转串口线驱动.zip" 提供的信息主要涉及一个特定的硬件设备驱动程序,用于将USB接口转换为串行通信接口。这种设备通常用于那些需要传统串口通信但只有USB接口的计算机上。HL-340是这款USB转串口适配器...
[3.4.1]--304)栈的应用:十进制转换为二进制.srt
[3.4.1]--304)栈的应用:十进制转换为二进制.mp4
USR-TCP232-304_AT_V2.0是一个专为串口通信设计的模块,它将传统的RS-232串行接口转换为TCP/IP网络接口,使得串口设备能够方便地接入到以太网环境中。该模块通常用于工业自动化、物联网(IoT)应用以及任何需要串口到...
【Azure AZ-304微软云架构设计】 Azure AZ-304是针对微软云架构设计的专业认证考试,旨在测试考生在设计微软Azure解决方案时的能力,包括但不限于资源管理、网络、安全、计算、存储和身份管理等方面。这个认证适合...
它的最新版本为0.8.8p,体积仅为304kb,却蕴含了丰富的功能。osmconvert64不仅支持将.osm.pbf转换为.osm,还能进行数据筛选、合并、裁剪等操作,是OSM数据处理中的得力助手。 使用osmconvert64进行转换的基本命令...
标题中的“BITEK BIT1802A Demo Board schematic/PCB v304”指的是一款由BITEK公司推出的基于BIT1802A芯片的演示板的电路图和PCB设计,版本号为v304。这个芯片是一款集成了JPEG编解码器、视频解码器和T-CON(Timing ...
如果你的USB转串口线上面标的是HL340,安装驱动后无法进行通信,那这个转接线的芯片可能是CH340的,你可以安装这个兼容CH340的CH341USB转串口驱动CH341SER,兼容win7的HL340驱动.
在IT行业中,Cesium是一个广泛使用的开源JavaScript库,主要用于创建交互式的3D地球浏览器和地图应用。3DTiles是Cesium提供的一种高效的数据分发格式,它允许在Web上流式传输大规模3D地理空间数据。...
- 测试环境包括必要的硬件和软件,如DC5V电源、USB转485线、网线、USR-TCP232-304设备和一台电脑。 4. 测试步骤 - 硬件连接:包括串口线和网线的连接。 - 485接线:按照特定的接线要求连接A、B端口。 - 设置...