Я использую SetaPDF для печати PDF-файла, используя PHP. Поскольку печать - это длительный и тяжелый процесс на стороне сервера, я пытаюсь заставить браузер (все браузеры) кэшировать штампованный PDF, когда пользователь просматривает его в своем браузере, поэтому в следующий раз, когда он посещает URL моей маркировки * Файл 1020 * - браузер будет извлекать PDF-файл из своего кэша.
Я пробовал несколько настроек заголовков, чтобы добиться этого, но, похоже, браузер никогда не кэширует PDF-файл и всегда извлекает его с сервера снова.
это заголовки, которые я пробовал:
header("Cache-Control: max-age=2592000");
header('Pragma: public');
Я вижу заголовки ответов браузера, как я их установил в PHP с помощью инструмента инспектора сетей chrome следующим образом:
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-файл.
Я неправильно устанавливаю заголовки? какие-либо предложения?