返回

什么是 HTTP 缓存头 - HTTP 缓存指南

前端







## HTTP 缓存头部如何工作

HTTP 缓存头部是一种特殊的 HTTP 头部,用来控制浏览器和服务器如何缓存网页内容。当浏览器请求一个网页时,服务器会发送一个 HTTP 响应,其中包含了 HTTP 缓存头部。浏览器会根据这些 HTTP 缓存头部来决定是否缓存网页内容。

如果浏览器决定缓存网页内容,则会在本地存储一份网页的副本。当浏览器下次请求同一个网页时,它将直接从本地存储中加载网页,而不会发送请求到服务器。这可以大大提高页面的加载速度。

## HTTP 缓存头部的类型

HTTP 缓存头部有很多种,常用的 HTTP 缓存头部包括:

* **Expires:**  Expires 头部指定了网页内容的过期时间。当网页内容过期后,浏览器将不再从本地存储中加载网页内容,而是会发送请求到服务器。
* **Cache-Control:**  Cache-Control 头部可以控制网页内容的缓存方式。它可以指定网页内容是否可以被缓存、缓存多长时间以及哪些类型的浏览器可以缓存网页内容。
* **Vary:**  Vary 头部指定了网页内容可能会根据不同的请求头而发生变化。当 Vary 头部存在时,浏览器在决定是否缓存网页内容时,将考虑请求头。
* **ETag:**  ETag 头部包含了一个唯一标识符,用于标识网页内容的版本。当网页内容发生变化时,ETag 头部也会发生变化。浏览器在决定是否缓存网页内容时,将比较 ETag 头部来判断网页内容是否发生变化。
* **Last-Modified:**  Last-Modified 头部包含了网页内容最后修改的时间。当网页内容发生变化时,Last-Modified 头部也会发生变化。浏览器在决定是否缓存网页内容时,将比较 Last-Modified 头部来判断网页内容是否发生变化。

## 如何使用 HTTP 缓存头部

要在网页中使用 HTTP 缓存头部,可以在网页的 HTTP 响应中添加 HTTP 缓存头部。例如,要在网页中添加 Expires 头部,可以在 HTTP 响应中添加以下代码:

Expires: Wed, 21 Oct 2022 07:28:00 GMT


这样,当浏览器请求网页时,服务器会发送一个 HTTP 响应,其中包含了 Expires 头部。浏览器会根据 Expires 头部来决定是否缓存网页内容。

## HTTP 缓存头部的注意事项

在使用 HTTP 缓存头部时,需要注意以下几点:

* HTTP 缓存头部只能控制浏览器如何缓存网页内容,不能控制服务器如何缓存网页内容。
* HTTP 缓存头部可能会被浏览器忽略。例如,当浏览器认为网页内容不适合被缓存时,它可能会忽略 HTTP 缓存头部。
* HTTP 缓存头部可能会被服务器忽略。例如,当服务器认为网页内容不应该被缓存时,它可能会忽略 HTTP 缓存头部。
* HTTP 缓存头部可能会被代理服务器忽略。例如,当代理服务器认为网页内容不适合被缓存时,它可能会忽略 HTTP 缓存头部。

## 总结

HTTP 缓存头部是一种非常有用的技术,可以大大提高页面的加载速度。在使用 HTTP 缓存头部时,需要注意以上几点。