【发布时间】:2011-02-03 14:09:24
【问题描述】:
我正在使用 PHP 脚本向提供了允许他们访问的凭据的访问者提供图像(存储在 webroot 之外)。
我正在发送以下标头:“Content-Type”、“Last-Modified”、“Content-Length”、“Content-Disposition”(用于设置文件名)。
我合并了代码来检查$_SERVER['HTTP_IF_MODIFIED_SINCE'],如果合适,发送“HTTP/1.1 304 Not Modified”并退出。但在 Firebug 中,我注意到请求的响应标头包括:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
每次我查看该页面时,图像似乎都在重新下载。这是不必要的;客户端缓存图像是有意义的。但我不知道我应该发送哪些额外的标题来实现这一点。我需要发送哪些标头?
编辑:这些是我最终放入脚本的标题命令:
header('Cache-Control: private, max-age=0, must-revalidate');
header('Expires: Sat, 1 Jan 2000 12:00:00 GMT');
header('Pragma:');
【问题讨论】:
-
您是否已经尝试在脚本中设置 Cache-Control 和 Pragma?因为您可以从 PHP 中设置这些...检查stackoverflow.com/questions/1981973/… 是否有类似问题。
标签: php http-headers