Браузерное кэширование изображений и видео через строки запроса php

Я делаю веб-сайт, который требует, чтобы пользователи входили в систему, чтобы получить доступ ко всему, поэтому все видео и изображения обслуживаются через запросы к файлу php, например:

example.com/media/?clip=668&q=h сервер проверяет, разрешено ли пользователю, и если да, отвечает файлом mp4, "q=h" означает "я хочу видео в половинном разрешении"

а также example.com/media/?clip=668&q=t отвечает jpeg-файлом, "q=t" означает "я хочу миниатюру"

на моем сайте все работает достаточно хорошо, у меня есть типы пантомимы и все готово. однако Chrome никогда не кэширует ни один из этих ресурсов, поэтому моя пропускная способность стремительно растет. на вкладке "Сеть" Chrome Inspector мои файлы css и js поступают "(из кэша памяти)" или "(из кэша браузера)", но все мои тяжелые ресурсы, изображения и видео, не кэшируются.

Как я могу получить браузер для кэширования этих?

1 ответ

Спасибо @tim!

Проблема была в заголовках, которые я обслуживал вместе со своими СМИ. Я посмотрел на ответ в Chrome, и он сказал:

Cache-Control: must-revalidate, no-cache, no-store

Я не устанавливал их, это должно быть по умолчанию apache, так как я работаю через скрипт? В любом случае, чтобы исправить, я просто добавил:

Cache-Control: public

к моему файлу PHP, и это, кажется, работает!

Другие вопросы по тегам