http://msdn.microsoft.com/en-us/library/bb250442(VS.85).aspx
Table 1. Client Cache Headers
Pragma: no-cache | The client is unwilling to accept any cached responses from caches along the route and the origin server must be contacted for a fresh copy of the resource. |
If-Modified-Since | datetime The server should return the requested resource only if the resource has been modified since the date-time provided by the client. |
If-None-Match: etagvalue | The server should return the requested resource if the ETAG of the resource is different than the value provided by the client. An ETAG is a unique identifier representing a particular version of a file. |
Any Cache-Control directives supersede the Expires header.
Table 2. Common Cache-Control Headers
public | The response may be stored in any cache, including caches shared among many users. |
private | The response may only be stored in a private cache used by a single user. |
no-cache | The response should not be reused to satisfy future requests. |
no-store | The response should not be reused to satisfy future requests, and should not be written to disk. This is primarily used as a security measure for sensitive responses. |
max-age=#seconds | The response may be reused to satisfy future requests within a certain number of seconds. |
must-revalidate | The response may be reused to satisfy future requests, but the origin server should first be contacted to verify that the response is still fresh. |
- 1)For legacy reasons, servers may send a Pragma: no-cache header. This is treated as Cache-Control: no-cache.
- 2)The Vary header signals to a cache that a response is valid for reuse only under certain circumstances. For example, use Vary: User-Agent to direct that the current response may only be reused for future requests sending the same User-Agent header. The directive Vary: * is equivalent to Cache-Control: no-cache.
- 3)关于Vary的定义:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44
分享到:
相关推荐
- `no-cache`: 这个指令并不禁止缓存,而是要求在使用缓存前先验证(通常通过`ETag`或`Last-Modified`)来确认资源是否已更新。即使缓存了响应,每次请求时仍会向服务器发送验证请求。 - `must-revalidate`: 类似...
Etags原理:Add an Expires header已经对浏览器缓存机制中的Cache-Control和Expires进行了配置,这一条评测的是另外两个:Last-Modified和ETag。简单的说,即使设置了文件的期限,浏览器在访问资源时也会因为Last-...
一、强缓存(Cache-Control 和 Expires) 强缓存是指浏览器直接使用本地缓存的资源,而无需向服务器发起请求。这主要依赖于两个响应头:`Cache-Control` 和 `Expires`。`Cache-Control` 是HTTP/1.1中的标准,具有更...
这种方法生成的ETag称为“弱ETag”,因为它还考虑了资源的最后修改时间,而这可能会导致不必要的缓存失效。在实际应用中,Nginx往往会同时支持Last-Modified和ETag,以提高缓存效率和准确性。 #### 七、总结 综上...
HttpClient 4.2引入了HTTP缓存机制,遵循HTTP/1.1规范中的缓存控制头(如Cache-Control, Expires, ETag, Last-Modified等)。缓存策略根据服务器返回的响应头动态调整,可以有效减少重复请求,提高性能。 3. 缓存...
例如,对于公共资源,可以设置cache-control为public,no-cache,这样公共缓存服务器可以缓存资源,但必须在每次请求时都向服务器验证资源的有效性。 最后,Last-Modified与If-Modified-Since是服务器和浏览器间...
浏览器端缓存机制可以分为两类: Cache-Control、Etag、Expires、Last-Modified 和 Vary。这些规则可以控制浏览器缓存的行为,影响浏览器缓存的结果。 Cache-Control 是一种控制浏览器缓存的规则,它可以控制...
这涉及到`Cache-Control: max-age`和`Expires`字段,`max-age`指定了缓存的有效秒数,`Expires`则设置了绝对的过期时间。 3. 过期的:当页面过期后,浏览器必须重新从服务器获取内容。浏览器会发送`If-Modified-...
这主要通过设置“Expires”和“Cache-Control”响应头来实现。其中,“Expires”是HTTP/1.0中用来指定资源过期时间的头,“Cache-Control”是HTTP/1.1中引入的更为强大的缓存控制机制。 具体来说,expires指令的...
通过设置合适的缓存策略,如Cache-Control、Etag、Expires、Last-Modified和Vary等HTTP头部信息,可以减少不必要的网络传输,加快页面加载速度。但要注意,不同浏览器对这些设置的支持和行为可能有所差异,需要对...
HTTP 1.1中文文档详细解释了如何通过“Cache-Control”、“Expires”和“ETag”等头部信息来控制缓存行为。例如,“Cache-Control: max-age=3600”表示资源的有效期为3600秒,期间浏览器可以使用缓存副本而无需再次...
2. **HTTP缓存策略**:包括Last-Modified、ETag、Expires等头部信息,用于控制浏览器何时使用缓存,何时重新请求资源。 3. **哈希算法**:文件名中的字符串可能由MD5或SHA等哈希算法生成,确保即使文件内容微小变动...
强制缓存的控制字段包括Expires和Cache-Control。Expires是HTTP/1.0标准中的字段,指定资源过期的绝对时间(GMT格式),但可能因客户端与服务器时间不同步导致不准确。HTTP/1.1引入了Cache-Control字段,其优先级...
如果资源的`Cache-Control`或`Expires`头部指示该资源仍未过期,浏览器将直接从缓存中获取,无需向服务器发送请求。 2. **协商缓存**:当强缓存未命中时,浏览器会向服务器发送一个带有`If-Modified-Since`或`If-...
这一过程基于HTTP响应头中的两个字段:`Cache-Control`和`Expires`。 - `Cache-Control`: 更现代的控制方式,它允许更精确地设置缓存策略,如`max-age`表示资源的有效期,值为秒。若`Cache-Control: max-age=3600`...
- **请求报文**: 包含`Cache-Control: no-cache` 或 `Pragma: no-cache` 字段,以及可能的`Last-Modified` 或 `ETag` 值。 - **响应报文**: 包含200 OK状态码和相应的缓存控制头信息。 #### 七、总结 HTTP缓存机制...
1. 强缓存:主要通过Cache-Control和Expires字段控制。Cache-Control可以设置no-cache、max-age等值,告诉浏览器资源的缓存策略。例如,max-age指示资源在多少秒内被视为有效。Expires是HTTP/1.0中的缓存控制,是一...
强缓存是通过Expires和Cache-Control字段来实现的。当请求再次发出时,如果缓存未过期,浏览器将直接从缓存中获取资源,不会与服务器进行通信。强缓存的实现主要是为了减少服务器负载和提高响应速度,因为它避免了...
2. 服务端优化:使用 CDN、expires/cache-control 强缓存、Etag/Last-modified 协商缓存、GZIP 压缩等。 3. CSS 优化:将样式表放到页面顶部、不要使用 CSS 表达式等。 4. JS 优化:将脚本放到页面底部、压缩 JS 和 ...
`no-cache`告诉浏览器不要使用本地缓存,但可以使用验证器(如ETag或Last-Modified)检查服务器上的更新。`no-store`则更为严格,它要求浏览器不存储任何响应内容。 ```csharp Response.Cache.SetCacheability...