HTTP教程

HTTP 缓存

HTTP 通常用于分布式信息系统,其中的性能可以通过使用响应缓存来提高。 HTTP/1.1 协议包含许多旨在使缓存工作的元素。
在 HTTP/1.1 中缓存的目标是消除在许多情况下发送请求的需要,并消除在许多其他情况下发送完整响应的需要。
HTTP/1.1 中的基本缓存机制是对服务器指定到期时间和验证器的缓存的隐式指令。为此,我们使用 Cache-Control 标头。
Cache-Control 标头允许客户端或服务器在请求或响应中传输各种指令。这些指令通常会覆盖默认缓存算法。缓存指令在逗号分隔的列表中指定。例如:
Cache-control: no-cache
客户端可以在其 HTTP 请求中使用以下缓存请求指令:
SN 缓存请求指令和描述
1 no-cache
在没有与源服务器成功重新验证的情况下,缓存不得使用响应来满足后续请求。
2 no-store
缓存不应存储有关客户端请求或服务器响应的任何内容。
3 max-age = seconds
表示客户端愿意接受年龄不大于指定时间(以秒为单位)的响应。
4 max-stale [ = seconds ]
表示客户端愿意接受超过其过期时间的响应。如果给定了秒数,则不得超过该时间。
5 min-fresh = seconds
表示客户端愿意接受新鲜度生命周期不小于其当前年龄加上指定时间(以秒为单位)的响应。
6 no-transform
不转换entity-body。
7 only-if-cached
不检索新数据。缓存只有在缓存中才能发送文档,并且不应联系源服务器查看是否存在更新的副本。
服务器可以在其 HTTP 响应中使用以下缓存响应指令:
SN 缓存响应指令和描述
1 public
表示响应可以被任何缓存缓存。
2 private
表示响应消息的全部或部分是针对单个用户的,不能被共享缓存缓存。
3 no-cache
在没有与源服务器成功重新验证的情况下,缓存不得使用响应来满足后续请求。
4 no-store
缓存不应存储有关客户端请求或服务器响应的任何内容。
5 no-transform
不转换entity-body。
6 must-revalidate
缓存在使用之前必须验证过时文档的状态,过期文档不应使用。
7 proxy-revalidate
proxy-revalidate 指令与 must-revalidate 指令含义相同,只是它不适用于非共享用户代理缓存。
8 max-age = seconds
表示客户端愿意接受年龄不大于指定时间(以秒为单位)的响应。
9 s-maxage = seconds
此指令指定的最大年龄覆盖由 max-age 指令或 Expires 标头指定的最大年龄。 s-maxage 指令总是被私有缓存忽略。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4