Как в Apache совместить сжатие с помощью mod_deflate и 206 Partial content?

Скрипт php читает файл и выдает его с помощью echo.
Перед echo с помощью header отправляются следующие заголовки.
Date: $date_gmt
Expires: $expires_gmt
Last-Modified: $date_gmt

Далее, если запрошена часть файла, то отправляется
206 Partial content
Content-Range: bytes $startpos-$endpos/$fsize
Content-Length: $partsize
Accept-Ranges: bytes
Content-Type: image/svg+xml
Cache-Control: max-age=86400, must-revalidate
иначе
200 OK
Content-Length: $fsize
Accept-Ranges: bytes
Content-Type: image/svg+xml
Cache-Control: max-age=86400, must-revalidate


Из-за mod_deflate сервер добавляет заголовки
Vary: Accept-Encoding
Content-Encoding: gzip
Transfer-Encoding: chunked

При этом пропадает заголовок Content-Length.

Будет ли это работать корректно? Как проверить ответ при запросе части файла?

Как вообще работает протокол сжатия? Части исходного файла сжимаются, после чего клиент их распаковывает и дописывает до файла, либо же клиент запрашивает части целого архива, а потом уже распаковывает целый архив?

Может стоит выключить сжатие для image/svg+xml и как-то сжимать файл с помощью php перед отправкой?
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы