我正在使用SetaPDF使用PHP标记PDF文件。 因为标记是一个漫长的服务器端过程,所以我试图让浏览器(所有浏览器)在用户在浏览器中查看其后缓存已标记的PDF,因此下次他访问我的标记PHP的网址时文件-浏览器将从其缓存中检索PDF。
我已经尝试了几种标头设置来实现此目的,但是似乎浏览器从不缓存PDF并始终从服务器再次检索它。
这些是我尝试过的标题:
header("Cache-Control: max-age=2592000");
header('Pragma: public');
我确实看到浏览器响应标头是通过chrome的网络检查器工具在PHP中设置的,如下所示:
Request Method: GET
Status Code: 200 OK
Response Headers:
Cache-Control: max-age=2592000
Connection: Keep-Alive
Content-Disposition: inline; filename="myfilename.pdf"
Content-Length: 5383171
Content-Type: application/pdf
Date: Tue, 24 Mar 2020 16:00:57 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive: timeout=5, max=100
Pragma: public
Server: Apache/2.4.6 (CentOS)
X-Powered-By: PHP/7.0.32
但是PDF似乎并没有被缓存,而是从服务器中检索出来,它始终是200响应码而不是304。
我也尝试过:
header('Cache-Control: only-if-cached');
,我尝试完全不使用“ Cache-Control”或“ Pragma”。 似乎仍然没有缓存PDF。
我设置标题错误吗?有什么建议吗?