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 错误,也称为 "Not Modified",是HTTP协议中的一种状态码,用于指示客户端在发送请求时提供了缓存信息,并且服务器验证后发现客户端的缓存版本是最新的,无需重新发送完整的资源。这个状态码是HTTP缓存机制...
304 Not Modified是一种HTTP状态码,表示客户端(浏览器)已经缓存了资源,并且该资源未发生变化,服务器无需发送完整内容。为了有效利用304缓存,我们需要设置合适的HTTP响应头。在HttpModule中,我们可以在`...
**ASP.NET Web API 中未修改的HTTP 304详解** 在ASP.NET Web API中,HTTP 304状态码是用于实现HTTP缓存机制的一部分,特别是“Not Modified”(未修改)响应。这个状态码允许客户端(如浏览器)利用缓存副本,减少...
HTTP 状态码 304 是什么意思.zip
下面,我们将详细解释标题和描述中提到的几个主要的HTTP状态码:301、404、200和304。 1. HTTP状态码200: "200 OK"是最常见的状态码,表示服务器成功处理了客户端的请求,并且返回了请求的数据。这通常意味着用户...
理解 HTTP 状态码 304
网站304状态码是HTTP协议中的一个状态码,它表示客户端在进行条件GET请求时,服务器端资源未被修改。这种情况通常出现在浏览器缓存了网页内容,再次访问时如果服务器上的内容没有更新,就会返回304状态码,而不是...
以下将详细介绍关于“web服务器缓存静态资源,更新静态资源的规则”以及HTTP状态码304的相关知识点。 首先,静态资源的缓存分为两种类型:强缓存和协商缓存。强缓存主要通过`Cache-Control`或`Expires`响应头来控制...
例如,编号23的包显示了一条从10.2.137.27发出到128.119.245.12的HTTP GET请求,而编号30的包则是从128.119.245.12返回到10.2.137.27的HTTP 304 Not Modified响应,表明资源未修改,可以使用缓存。 在进行抓包实验...
- **优点**:简单容易,支持HTTP304协议。 - **缺点**:上传的数据与Web应用程序混合在一起,可能导致数据丢失。 - **适用场景**:小规模应用。 2. **自编写下载程序** - **优点**:可以将数据放在Web程序外部...
利用HTTP开发可缓存的网站这段示例代码使用框架来说明如何利用HTTP...以控制生存时间基于Vary标头的缓存变化基于Etag标头的条件请求成功验证内容后返回HTTP 304状态代码基于Accept-Language标头的内容协商和语言选择使
* 304 Not Modified:服务器已经成功处理了客户端的请求,但自从上次客户端请求后,网页没有修改。 * 305 Use Proxy:客户端只能使用代理来访问服务器的网页。 4xx 客户端错误 这些状态码表示客户端可能出错,阻碍...
304(未修改)意味着服务器告诉客户端,请求的资源自上次请求后没有发生变化,节省了传输数据。 4xx(请求错误):这类错误代码表明请求有误,服务器无法处理。400(错误请求)表示服务器无法理解客户端的请求语法...
- 304(未修改):客户端缓存的文件未被修改,服务器告诉客户端可以继续使用缓存的文件。通常在客户端请求带有条件性(例如If-Modified-Since头)时返回,以节省带宽。 - 302(临时移动):请求的资源暂时位于新的...
【F5 APM技术专家304学习指南】 F5 APM技术专家304认证是获取F5认证技术专家,访问策略管理器(F5-CTS,APM)地位的第二个考试。本文档旨在概述F5 APM专家认证考试涵盖的主题领域以及可帮助考生准备的资源。 **一...
HTTP状态码304代表“Not Modified”(未修改),表示服务器允许浏览器使用本地缓存的文件。当浏览器再次向服务器请求某个已缓存的资源时,如果该资源未被修改,服务器通过发送304状态码来告诉浏览器可以直接使用缓存...
git-guppy-pre-commit-hook ...npm http 304 https://registry.npmjs.org/named-regexp npm http GET https://registry.npmjs.org/lazypipe npm http GET https://registry.npmjs.org/lodash npm http GET ht
在IT行业中,304和443通常与网络通信中的HTTP状态码和HTTPS端口号有关,而不是不锈钢材料。然而,根据提供的文件内容,这里主要讨论的是不锈钢304和443(21CT)的性能差异和应用场景,而非IT领域的概念。以下是关于...