📅  最后修改于: 2023-12-03 15:31:20.067000             🧑  作者: Mango
HTTP 缓存控制是网站优化中的一个重要方面。它允许开发人员控制浏览器如何缓存网页,并通过减少重复请求来改善性能和减轻服务器负担。本文将介绍 HTTP 缓存控制的基础知识。
使用 Cache-Control 和 Expires 标头让浏览器缓存资源是一种常见方法,它们指示浏览器在请求之间持久存储资源的时间。
Cache-Control 是用于控制缓存的 HTTP 标头之一。它指定浏览器应如何缓存响应,并在何时必须重新请求新资源。
例如,Cache-Control 标头可以包含以下指令:
示例代码:
Cache-Control: public, max-age=3600
这里,我们允许 CDN 缓存响应,并将缓存时间设置为 1 小时。
Expires 标头是另一个用于控制缓存的 HTTP 标头。它允许开发人员指定必须在过期之后重新请求新资源。
和 Cache-Control 标头一样,Expires 标头可以指定一个时间戳,以指示资源到期的日期。
示例代码:
Expires: Fri, 01 Jan 2021 00:00:00 GMT
这里,我们指定资源将在 2021 年 1 月 1 日到期。
ETag 是另一个用于控制缓存的 HTTP 标头。它允许开发人员指定一个唯一的标识符,以便浏览器可以根据资源的内容是否更改来验证缓存是否仍有效。
当浏览器发出请求时,它将发送一个包含 ETag 值的 If-None-Match 标头。如果浏览器已经有一个资源的缓存副本,并且 ETag 值匹配,那么服务器将返回一个 304 Not Modified 状态码,告诉浏览器可以使用缓存资源。
示例代码:
ETag: "12345"
这里,我们指定资源的唯一标识符为 "12345"。
HTTP 标头是控制缓存的重要工具。Cache-Control 和 Expires 标头用于确定资源是否应被缓存以及在何时重新请求新资源。ETag 标头可用于验证资源是否已更改,从而减少网络流量并提高性能。