gpt4 book ai didi

apache - 必须重新验证此请求的 header 是否错误?

转载 作者:可可西里 更新时间:2023-11-01 16:06:56 26 4
gpt4 key购买 nike

我注意到 chrome 缓存了一个视频文件。我用服务器上的另一个替换了它,chrome 继续从缓存中提供旧的(使用 JW flash player 5)

请求的 header 如下所示:

joe@joe-desktop:~$ wget -O - -S --spider http://www.2xfun.de/files_geheimhihi14/20759.mp4
Spider mode enabled. Check if remote file exists.
--2011-05-15 22:40:56-- http://www.2xfun.de/files_geheimhihi14/20759.mp4
Resolving www.2xfun.de... 213.239.214.112
Connecting to www.2xfun.de|213.239.214.112|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Sun, 15 May 2011 20:40:56 GMT
Server: Apache
Last-Modified: Sun, 15 May 2011 20:37:59 GMT
ETag: "89b38-3bb227-4a35683b477c0"
Accept-Ranges: bytes
Content-Length: 3912231
Cache-Control: max-age=29030400, public, must-revalidate
Expires: Sun, 15 Apr 2012 20:40:56 GMT
Connection: close
Content-Type: video/mp4
Length: 3912231 (3.7M) [video/mp4]
Remote file exists.

我在 apache2 中使用 mod_headers 和 mod_expires 是这样的:

<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|mp4)$">
ExpiresDefault A29030400
Header append Cache-Control "public, must-revalidate"
</FilesMatch>

我是不是拼错了 revalidate 之类的?

编辑:

为了使用例清晰:我想要缓存文件,因为它们相当大并且我想节省带宽。但另一方面,我希望重新验证文件。因此客户端发出 HEAD 请求并检查内容是否已更改(这就是 etag 的用途),并且仅在必要时重新获取。

最佳答案

您的问题是 must-revalidate 仅在缓存条目不再新鲜时才会启动,但您已将响应标记为可缓存 2900 万秒。 'Cache-Control: max-age=0, must-revalidate' 可能更接近你想要的,如果你想允许缓存但需要在每次使用时重新验证。

关于apache - 必须重新验证此请求的 header 是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6011123/

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