Назад | Перейти на главную страницу

Как предотвратить сжатие изображений, обслуживаемых через HTTP

У меня есть уже оптимизированное изображение JPEG на моем сервере 32,07 кБ (и на моем локальном компьютере), 800 пикселей * 534 пикселей, если я запрашиваю его через браузер, оно сохраняет ту же ширину * высоту, но его размер становится меньше 17,97 КБ и становится пиксельный.

Я проверил конфигурацию Apache:

# LoadModule deflate_module modules/mod_deflate.so

Заголовки ответа:

HTTP/1.1 200 OK
Date: Sat, 30 Jan 2016 11:31:50 GMT
Server: Apache
Last-Modified: Sat, 26 Dec 2015 11:56:02 GMT
ETag: "804c-527cbc1833880"
Accept-Ranges: bytes
Content-Length: 32844
Content-Type: image/jpeg
Connection: keep-alive

Я работаю в среде LAMP, установленной на сервере VPS. Я отправил запрос в OVH, чтобы спросить их, сжимают ли они изображения на более высоком уровне, но все еще ждут ответа.

Есть ли другие места для изучения вместо Apache?

Еще одна вещь, я могу поспорить, это не связано с браузером, потому что я получил тот же результат в Firefox и Chrome.

Сжатый или несжатый

Content-Length: 32844 соответствует размеру вашего jpeg, и нет заголовка о том, что файл сжат. Я полагаю, вы также тестировали это на своей рабочей станции?

Как вы подтверждаете

Используйте curl или wget, чтобы загрузить изображение на свой компьютер и убедиться, что размер не изменился, при условии, что ваше соединение HTTPS и ничто другое не может перехватить обмен данными, например прокси или антивирус. Прокси-серверы, безусловно, могут изменять размер изображений.

Прокси-тестирование

Предполагая, что у вас есть модуль mod_headers в вашей установке apache, добавьте в конфигурацию apache следующее, чтобы прокси оставили файл в покое.

header set cache-control "private, max-age=0, no-cache, no-transform, no-store"
header set Pragma no-cache

Это должно быть <Directory> раздел, относящийся к тестируемому формату jpeg.

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