0

Наш веб-сервер регулярно загружает изображения с других веб-серверов. Чтобы наш сервер не загружал одно и то же изображение каждый день, даже если он не изменился, я планирую хранить заголовок Last-Modified при загрузке изображения и затем помещать эту дату в заголовок If-Modified-Since последующих запросов для тот же файл.Использование заголовка If-Modified-Since для динамически генерируемых удаленных файлов

У меня есть этот рабочий режим, за исключением случаев, когда удаленный файл генерируется «на лету» по запросу (например, если он генерирует версию определенного размера для Интернета при запросе из отдельного исходного файла). В этом случае заголовок Last-Modified - это дата, на которую удаленный сервер отвечает на запрос, поэтому сохраненный заголовок Last-Modified из предыдущей загрузки всегда будет раньше того, что для последующих запросов, чтобы изображение всегда загружалось, никогда не получите код статуса 304 Not Modified.

Итак, есть ли способ уменьшить частоту загрузки, когда удаленный сервер обслуживает изображения, которые генерируются на лету?

Мне кажется, что это невозможно, но я думал, что все равно спрошу.

ответ

1

Если вы можете создать какую-либо форму хэша для изображений, используйте ETags. Ваш сервер должен будет проверить заголовок запроса If-None-Match против хэша, и если они совпадут, вы можете вернуть ответ 304.

Клиенты по-прежнему будут отправлять Last-Modified, но если ваш метод хэширования не вызывает много конфликтов, вы должны уметь игнорировать его и просто соответствовать ETags.