Я использую HTTP-сервер Apache с включенным h2. H2PushResource не работает должным образом. Я хочу протестировать Server Push.
Я добавил следующие дополнительные строки конфигурации в файл httpd.conf.
Protocols h2 http/1.1
H2PushResource on
<If "%{DOCUMENT_URI} == '/testhttp2.html'">
H2PushResource add hello3.jpg
</If>
Я не вижу PUSH для этого ресурса в поле «Инициатор» инструментов разработки Chrome.
Заголовок добавления ссылки для предварительной загрузки работает нормально. Инициатором предварительной загрузки является «Другое» (как и ожидалось).
Кроме того, может ли кто-нибудь объяснить мне HTTP2_SESSION_RECV_PUSH_PROMISE и HTTP2_SESSION_SEND_RST_STREAM? Я вижу это для проталкиваемого ресурса в chrome://net-internals/
t=62561 [st= 4] HTTP2_SESSION_RECV_PUSH_PROMISE
--> :scheme: https
:authority: newapache.com:442
:path: style1.css
:method: GET
cache-control: no-cache
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
host: newapache.com:442
--> id = 1
--> promised_stream_id = 4
t=62561 [st= 4] HTTP2_SESSION_SEND_RST_STREAM
--> description = "Invalid pushed request headers."
--> error_code = "7 (REFUSED_STREAM)"
--> stream_id = 4
t=62562 [st= 5] HTTP2_SESSION_RECV_RST_STREAM
--> error_code = "7 (REFUSED_STREAM)"
--> stream_id = 4