я пытаюсь добавить этаг
проверка кэша на основе веб-приложения, которое я разработал, которое работает на Apache через обратный прокси-сервер NGINX. Веб-приложение написано на Perl. В Perl-скрипте я проверяю $ENV{'HTTP_IF_NONE_MATCH'}
заголовок, а затем проверьте этаг
в нем, если он есть. Если я получаю доступ к приложению через cURL, оно работает:
timothybutler@timothys-MacBook-Pro ~ % curl -I https://server/resource/podcast/20211101.mp3
HTTP/1.1 200 ОК
Сервер: nginx/1.21.4
Дата: пятница, 12 ноября 2021 г., 18:06:37 по Гринвичу
Content-Type: аудио/мпег
Длина содержимого: 16665729
Соединение: Keep-alive
Surrogate-Control: без кеша
Cache-Control: private, max-age=864000
Etag: "1635825322"
Учитывая это этаг
обратно через cURL я получаю ожидаемый результат:
timothybutler@timothys-MacBook-Pro ~ % curl -H 'If-None-Match: "1635825322"' -I https://server/resource/podcast/20211101.mp3
HTTP/1.1 304 Не изменено
Сервер: nginx/1.21.4
Дата: пятница, 12 ноября 2021 г., 18:19:29 по Гринвичу
Соединение: Keep-alive
Cache-Control: частный, max-age=864000
Etag: "1635825322"
Однако процесс прерывается, если вместо этого я попробую его в Chrome. Отправка отчетов Chrome Если не совпадает: "1635825322"
как один из заголовков, когда я обновляю страницу, но мой сервер не устанавливает HTTP_IF_NONE_MATCH
переменная окружения для этого запроса, а не та, которая поступила через cURL. Если я дамп всего хэша %ENV, Если-совпадение-нет
заголовок и его этаг
просто не присутствует ни в какой форме, когда Chrome отправляет запрос.