gpt4 book ai didi

apache - 避免 304(未修改)响应

转载 作者:可可西里 更新时间:2023-11-01 15:10:24 29 4
gpt4 key购买 nike

ExpiresDefault Apache 指令是否足以避免来自服务器的 HTTP 状态 304 响应?我已经设置了 ExpiresDefault "access plus 10 years" 但我仍然看到带有 304 响应的日志条目 "GET/assets/template/default/css/style.min.css? v=1 HTTP/1.1" 每当我在本地 PHPMyFAQ 上打开任何页面时地点。清空浏览器缓存似乎没有任何改变。

最佳答案

服务器发送的 Expires: header 与 future 的 304 响应无关。它仅向客户端/代理提供他们在考虑资源“陈旧”之前可以等待多长时间的估计。客户端不需要遵守此 header ,并且可以根据需要自由地继续对同一资源发出新请求。因此,简短地回答您的问题:

No, you'll never be able to explicitly prevent users from making new requests for the same resource regardless of what headers you send.

304 响应是客户端请求中匹配 If-MatchIf-Modified-Since header 的结果。这里发生的事情是您的服务器正在发送以下一个/或/两个 header 及其原始响应:

  • ETag
  • 最后修改时间

然后客户端将以下 header 与他们的请求一起发回,以查看资源是否已从其缓存版本更改:

  • If-Match (ETag)
  • If-Modified-Since(上次修改)

如果这些条件中的任何一个为真,那么服务器将发送您观察到的 304 Not Modified 响应,并且客户端将知道它可以安全地提供其缓存版本的资源。

合规说明

RFC 2616 Section 14.21实际上禁止合规服务器在未来一年以上发送 Expires header ,因此您首先不应使用“access plus 10 years”: p>

HTTP/1.1 servers SHOULD NOT send Expires dates more than one year in the future.

关于apache - 避免 304(未修改)响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22383125/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com