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

Включить сжатие для HTTP2 server-push на сервере apache

Если я включу H2 для своего сервера apache и укажу предварительно загруженный заголовок ссылки в HTML-документе, сервер выполнит H2 server-push потому что это анализирует заголовок ссылки -- Все идет нормально.

Проблема в том, что этот загруженный ресурс доставляется без сжатия.
Я предполагаю, что это потому, что push-сервер не создает HTTP-запрос и, следовательно, accept-encoding заголовок запроса не указан. Дело в том, что я не получаю никаких улучшений производительности, если клиенту нужно загружать несжатый контент. Можно ли обслуживать сжатый контент? Может быть, на основе accept-encoding заголовок запроса из HTML-документа?

Моя конфигурация apache:

<VirtualHost *:443>
    Protocols h2 http/1.1
    [...]
    <Location /index.html>
        Header add Link "</css/all.min.css>;rel=preload;as=style"
    </Location>
    [...]
</VirtualHost>

Заголовки HTML:

Заголовки запроса из HTML-документа

accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding:gzip, deflate, sdch, br
accept-language:de,en-US;q=0.8,en;q=0.6
cache-control:no-cache

Заголовки ответа из HTML-документа

accept-ranges:bytes
cache-control:no-transform,public,max-age=300,s-maxage=900
content-encoding:gzip
content-length:2183
content-type:text/html
etag:"2472-5385af4b7bbda-gzip"
last-modified:Sun, 24 Jul 2016 05:29:47 GMT
link:</css/all.min.css>;rel=preload;as=style
server:Apache/2.4.18 (Debian)
status:200
vary:Accept-Encoding

Заголовки ответов от /css/all.min.css

accept-ranges:bytes
cache-control:no-transform,public,max-age=300,s-maxage=900
content-length:14237
content-type:text/css
etag:"379d-5385af4b9139b"
last-modified:Sun, 24 Jul 2016 05:29:47 GMT
server:Apache/2.4.18 (Debian)
status:200
vary:Accept-Encoding

Похоже, это просто ошибка в mod_http2, но это было исправлено в версии 1.2.6: https://github.com/icing/mod_h2/issues/86

Я думаю, вам следует использовать mod_deflate:

http://httpd.apache.org/docs/current/mod/mod_deflate.html#enable