diff --git a/docs/manual/howto/http2.html.en b/docs/manual/howto/http2.html.en index 2437b128b9..d9f0a3cb42 100644 --- a/docs/manual/howto/http2.html.en +++ b/docs/manual/howto/http2.html.en @@ -41,6 +41,7 @@
+ PUSH might not always trigger the request/response/performance that one expects or + hopes for. There are various studies on this topic to be found on the web that explain + benefits and weaknesses and how different features of client and network influence + the outcome. For example: just because the server PUSHes a resource does not mean + a browser will actually use the data.
+The major thing that influences the response being PUSHed is the request that was
+ simulated. The request URL for a PUSH is given by the application, but where do the
+ request headers come from? For example, will the PUSH request a accept-language
+ header and if yes with what value?
Apache will look at the original request (the one that triggered the PUSH) and copy the
+ following headers over to PUSH requests: user-agent
, accept
,
+ accept-encoding
, accept-language
, cache-control
.
All other headers are ignored. Cookies will also not be copied over. PUSHing resources + that require a cookie to be present will not work. This can be a matter of debate. But + unless this is more clearly discussed with browser, let's err on the side of caution and + not expose cookie where they might oridinarily not be visible.
+An alternative to PUSHing resources is to send Link
headers to the
+ client before the response is even ready. This uses the HTTP feature called "Early Hints" and
+ is described in RFC 8297.
In order to use this, you need to explicitly enable it on the server via
+H2EarlyHints on+ +
(It is not enabled by default since some older browser tripped on such responses.)
+If this feature is on, you can the directive H2PushResource
to
+ trigger early hints and resource PUSHes:
<Location /xxx.html> + H2PushResource /xxx.css + H2PushResource /xxx.js +</Location>+ +
This will send out a "103 Early Hints"
response to a client as soon
+ as the server starts processing the request. This may be much early than
+ the time the first response headers have been determined, depending on your web
+ application.
If H2Push
is enabled, this will also start the PUSH right after the
+ 103 response. If H2Push
is disabled however, the 103 response will be send
+ nevertheless to the client.
Available Languages: en |
diff --git a/docs/manual/howto/http2.xml.es b/docs/manual/howto/http2.xml.es
index 6c4fce52c4..fa765c3474 100644
--- a/docs/manual/howto/http2.xml.es
+++ b/docs/manual/howto/http2.xml.es
@@ -1,7 +1,7 @@
-
+
diff --git a/docs/manual/howto/http2.xml.fr b/docs/manual/howto/http2.xml.fr
index 19dbb09f95..306829ffa2 100644
--- a/docs/manual/howto/http2.xml.fr
+++ b/docs/manual/howto/http2.xml.fr
@@ -1,7 +1,7 @@
-
+
diff --git a/docs/manual/howto/http2.xml.meta b/docs/manual/howto/http2.xml.meta
index 368861be37..9b93a6fba0 100644
--- a/docs/manual/howto/http2.xml.meta
+++ b/docs/manual/howto/http2.xml.meta
@@ -8,7 +8,7 @@
Caveat: there will be no attemp to consolidate multiple HTTP/1.1 +
Caveat: there will be no attempt to consolidate multiple HTTP/1.1 frontend requests (configured to be proxied to the same backend) into HTTP/2 streams belonging to the same HTTP/2 request. Each HTTP/1.1 frontend request will be proxied to the backend using @@ -78,6 +78,7 @@
This module provides no directives.
@@ -123,6 +124,19 @@ ProxyPassReverse "/app" "http://app.example.com"The module does not support the HTTP/2 feature PUSH. Backend servers
+ that would like to advertise preload resources should send the appropriate
+ Link
headers.
If available, they may do so using the "103 Early Hints"
+ intermediate responses as specified in
+ RFC 8297. This will give
+ the best performance. If the client is talking HTTP/2 as well, this may
+ then result in a PUSH from Apache to the client or just in forwarding
+ the 103 response.