如果客户端在请求一个文件的时候,发现自己缓存的文件有 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错误代码详细介绍.txt"这个文件很可能包含了所有常见的HTTP错误代码及其详细解释,包括但不限于上述列举的代码。对于开发者来说,理解这些错误代码的含义至关重要,因为它们可以帮助定位和解决问题,确保Web...
以下是对HTTP常见错误代码的详细解读,希望能为读者提供一份全面且实用的参考资料。 #### 2xx 成功响应 **200 OK** 表示请求已成功被服务器处理。这是最常见的HTTP状态码之一,通常用于指示一个GET或POST请求被...
下面,我们将详细解释标题和描述中提到的几个主要的HTTP状态码:301、404、200和304。 1. HTTP状态码200: "200 OK"是最常见的状态码,表示服务器成功处理了客户端的请求,并且返回了请求的数据。这通常意味着用户...
### HTTP错误(常用错误解释和处理) HTTP协议作为互联网数据通信的基础之一,其错误代码对于开发者、运维人员以及网络管理员来说至关重要。本文将详细介绍一系列常见的HTTP状态码,并提供相应的处理建议,帮助读者...
### sina微博错误代码详解 在使用Sina微博API进行开发时,可能会遇到各种错误代码,这些代码对于开发者来说是...理解并能够解读这些错误信息,可以帮助我们快速定位问题所在,从而提高API调用的成功率和应用的稳定性。
### HTTP 错误信息提示详解 HTTP(HyperText Transfer ...以上就是关于HTTP错误信息提示的详细解释,这些错误信息对于排查网络通信中的问题非常有帮助。在实际开发和运维过程中,正确理解和处理这些错误码至关重要。
DB2 错误信息中文对照说明...以上仅是部分错误代码的解释,实际上DB2错误信息对照文档包含了更多详细信息,可以帮助用户快速定位和解决问题。在遇到DB2错误时,参照这份文档可以大大缩短故障排查的时间,提高工作效率。
本文将详细介绍DB2中一系列常见错误码的具体含义及处理方法,帮助DBA和开发人员更好地理解和解决实际工作中遇到的问题。 #### 二、错误码分类 根据DB2提供的错误信息,我们可以将这些错误码分为几大类: 1. **...
今天,我们将对常见的网页错误代码进行详细的解释,包括 200、300、400 和 500 系列错误代码。 200 系列错误代码:Successful Client Requests * 200 OK——成功:表示服务器成功地响应了客户端的请求。 * 201 ...
通过对错误码的详细解读,可以帮助开发者快速定位并解决问题。 #### 二、错误码分类及含义 **1. SQL语句成功完成** - **错误码**: `000` - **SQLState**: `00000` - **说明**: 表示SQL语句已成功执行完毕,没有...
本文将对部分DB2错误码进行详细解析,以便于开发者在遇到问题时能够迅速找到解决方向。 #### 错误码概览 DB2错误码通常由一个五位数字(SQLCODE)和一个五字符的字符串(SQLSTATE)组成,其中SQLCODE为正数时表示...
文档的内容涉及了BPS304i条码定位系统的详细操作指导,从以下几个方面: 1. 关于文档:说明了文档的结构,符号和信号词的使用。 2. 安全:强调了设备的预期用途、可能的误用、合格人员的定义、责任豁免以及激光...
- **304 Not Modified**:资源未被修改,客户端可以使用缓存的版本。 - **4xx(客户端错误状态码)** - **400 Bad Request**:请求语法错误,无法理解。 - **401 Unauthorized**:请求需要用户认证。 - **403 ...
以下是对各类HTTP错误代码的详细解释: 1xx - 信息提示:这是临时响应,表明服务器已经接收到部分请求,客户端需要继续处理。例如,100 "继续" 表示服务器接收了初始请求,客户端可以发送剩余部分;101 "切换协议" ...
以下是对DB2 SQLSTATE错误码的详细解释: 1. **Class Code 00: 无条件成功完成** - SQLSTATE值00000表示操作成功完成,没有产生任何警告或异常情况。SQLCODE值为+000。 2. **Class Code 01: 警告** - SQLSTATE值...
本文将详细介绍Tomcat中常见的错误代码,帮助开发者快速定位问题并解决问题。 #### 二、HTTP状态码及解释 HTTP状态码是Web服务器与客户端通信的一种标准方式,用于告知客户端请求的结果。了解这些状态码对于诊断...
### HTTP状态码详解 HTTP(超文本传输协议)是用于从...以上就是对HTTP状态码的详细解读,这些状态码对于调试网络应用程序、理解服务器响应等场景非常重要。熟悉并掌握它们有助于更好地开发和维护基于HTTP的应用程序。
DB2的错误信息通常由`sqlcode`和`sqlstate`组成,这两部分提供了关于错误性质和严重性的详细信息。 `sqlcode`是一个三位数字,它指示了错误的类型。正数的`sqlcode`表示警告,负数表示错误。例如,`00000`表示SQL...