http cache-control

[复制链接]
发表于 2024-10-5 21:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Cache-Control 是 HTTP 协议中用于控制缓存行为的重要头部字段。它定义了客户端和服务器端如何缓存资源,以及缓存的有效期。以下是关于 Cache-Control 的详细解释:
哀求指令



  • max-age=

    • 指示客户端继承的响应最大年事。如果缓存的响应超过这个年事,将被视为过期。

  • max-stale[=]

    • 客户端愿意继承过期的响应。如果指定了秒数,表现客户端愿意继承超过过期时间至多这么多秒的响应。

  • min-fresh=

    • 客户端渴望获取的响应至少还有指定秒数的希奇时间。

  • no-cache

    • 强制缓存在使用任何缓存的响应之前,必须重新验证其有效性。

  • no-store

    • 禁止缓存存储任何关于客户端哀求和服务器响应的信息。

  • no-transform

    • 禁止署理对响应举行任何转换(例如,压缩、修改图片格式等)。

  • only-if-cached

    • 客户端只继承已缓存的响应,并不想发起网络哀求。

  • stale-if-error=

    • 如果新的哀求失败,允许缓存在指定时间内提供过期的响应。

  • stale-while-revalidate=

    • 允许缓存返回一个过期的响应,同时在背景异步检查新的响应。

响应指令



  • max-age=

    • 指示响应可以在缓存中存储并被视为希奇的最大时间。

  • s-maxage=

    • 类似于 max-age,但仅实用于共享缓存(例如,署理服务器)。

  • no-cache

    • 要求缓存每次在提供响应之前,都必须向服务器验证其有效性。

  • no-store

    • 完全禁止缓存存储响应,实用于包含敏感信息的响应。

  • no-transform

    • 禁止署理对响应举行任何转换。

  • public

    • 明白指出响应可以被任何缓存所存储,纵然通常情况下不可缓存的响应。

  • private

    • 响应是为单个用户定制的,不应该被共享缓存存储。

  • must-revalidate

    • 一旦资源过期,缓存必须在使用之前向服务器验证其有效性。

  • proxy-revalidate

    • 类似于 must-revalidate,但仅实用于共享缓存。

  • immutable

    • 表现响应正文不会随时间改变,实用于永远不变的资源。

  • stale-while-revalidate=

    • 允许缓存在背景异步验证希奇度时,提供一个过期的响应。

  • stale-if-error=

    • 如果在验证希奇度时发生错误,允许缓存提供一个过期的响应。

这些指令提供了细粒度的控制,允许开发者根据具体需求优化缓存计谋,进步网站性能和用户体验。
注意事项


  • Cache-Control 会覆盖较旧的 Expires 头。
  • 差别的指令可能会相互辩论,如 no-store 和 max-age 同时使用时,no-store 会优先生效。
  • 浏览器可能会忽略某些缓存指令,特别是在隐私浏览模式下。
  • 对于须要频繁更新的资源,可以考虑使用版本号或哈希值作为文件名的一部分,而不是依赖缓存控制。
  • 在设置缓存计谋时,须要均衡性能提拔和内容时效性。
通过合理使用 Cache-Control,可以显着进步网站性能,减少服务器负载,同时确保用户可以或许及时获取最新内容。在实际应用中,应根据具体的业务需求和资源特性来选择符合的缓存计谋。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表