-
Notifications
You must be signed in to change notification settings - Fork 5.5k
docs: unhiding HTTP/3 and adding docs #15926
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
4f190b3
bb5e934
28a6ea6
f20546f
5257f2f
0bad720
8ccb35a
1702e4c
7c9c5fa
f4ccb1d
d388cb9
4ec4357
a95b39c
e4151ae
76f04d6
c2496a3
62d053a
e10ad5f
58aa631
d2ad3ab
aa1f4ef
4fa9c31
323f151
56e08a6
bdb245f
752afc7
e2ee7a9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -33,8 +33,9 @@ message UdpListenerConfig { | |
|
|
||
| // Configuration for QUIC protocol. If empty, QUIC will not be enabled on this listener. Set | ||
| // to the default object to enable QUIC without modifying any additional options. | ||
| // [#not-implemented-hide:] | ||
| // [#comment:Unhide when QUIC alpha is announced with other docs.] | ||
| // | ||
| // .. note:: | ||
| // QUIC support is currently alpha and should be used with caution. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. im wondering if this note should be a warning - and also thinking it might be better placed in docs/root/intro/arch_overview/http/http3.rst as its linked to from various places - feels a bit arbitrary to add it to one proto
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I lean towards the API because I think folks will actually read it here, where I'm less confident of folks reading the docs. Happy to make it a warning through.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. im wondering if this should make use of the agreed that there needs to be a warning here - but i would put the fuller explanation in the ref docs and point to that - as is done in most of the the api protos - mho |
||
| QuicProtocolOptions quic_options = 7; | ||
| } | ||
|
|
||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,7 +8,7 @@ gRPC HTTP/1.1 reverse bridge | |
| * This filter should be configured with the name *envoy.filters.http.grpc_http1_reverse_bridge*. | ||
|
|
||
| This is a filter that enables converting an incoming gRPC request into a HTTP/1.1 request to allow | ||
| a server that does not understand HTTP/2 or gRPC semantics to handle the request. | ||
| a server that does not understand HTTP/2 or HTTP/3 or gRPC semantics to handle the request. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Totally your call... I wonder if we should be consistent about saying either "HTTP/2 or HTTP/3" vs "HTTP/2 or above". Probably not worth doing?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel like in some situations it's awkward to phrase it the other way :-/ |
||
|
|
||
| The filter works by: | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -143,6 +143,11 @@ upstream.use_http2 | |
| Whether the cluster utilizes the *http2* if configured in `HttpProtocolOptions <envoy_v3_msg_config.upstreams.http.v3.HttpProtocolOptions>`. | ||
| Set to 0 to disable HTTP/2 even if the feature is configured. Defaults to enabled. | ||
|
|
||
| upstream.use_http3 | ||
| Whether the cluster utilizes the *http3* if configured in `HttpProtocolOptions <envoy_v3_msg_config.upstreams.http.v3.HttpProtocolOptions>`. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It looks like this text is identical to the HTTP/2 text (except 3 instead of 2), but I wonder if we should remove "the" after "utilizes"? "Whether the cluster utilizes http3 if configured..." WDYT? |
||
| Set to 0 to disable HTTP/3 even if the feature is configured. Defaults to enabled. | ||
|
|
||
|
|
||
| .. _config_cluster_manager_cluster_runtime_zone_routing: | ||
|
|
||
| Zone aware load balancing | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,5 +7,5 @@ load balancing policies such as :ref:`round robin <arch_overview_load_balancing_ | |
| it may thus appear that load balancing is not working properly when using multiple workers. The | ||
| :option:`--concurrency` option can be used to adjust the number of workers if desired. | ||
|
|
||
| The siloed execution model is also the reason why multiple HTTP/2 connections may be established to | ||
| The siloed execution model is also the reason why multiple HTTP/2 or HTTP/3 connections may be established to | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is not a question about this PR, but it does make me wonder.... Presumably EnvoyMobile will be a single silo? (Maybe that was in the presentation. I should go re-read those slides)
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, AFIK one worker thread for mobile but you can double check with the Lyft folks. |
||
| each upstream; :ref:`connection pools <arch_overview_conn_pool>` are not shared between workers. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,14 +19,14 @@ HTTP connection manager :ref:`configuration <config_http_conn_man>`. | |
| HTTP protocols | ||
| -------------- | ||
|
|
||
| Envoy’s HTTP connection manager has native support for HTTP/1.1, WebSockets, and HTTP/2. It does not support | ||
| SPDY. Envoy’s HTTP support was designed to first and foremost be an HTTP/2 multiplexing proxy. | ||
| Envoy’s HTTP connection manager has native support for HTTP/1.1, WebSockets, HTTP/2 and HTTP/3. It does not support | ||
| SPDY. Envoy’s HTTP support was designed to first and foremost be an HTTP/2+ multiplexing proxy. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it's fine to keep this as "HTTP/2" since when Envoy was designed HTTP/3 was not yet a thing. Your call though. |
||
| Internally, HTTP/2 terminology is used to describe system components. For example, an HTTP request | ||
| and response take place on a *stream*. A codec API is used to translate from different wire | ||
| protocols into a protocol agnostic form for streams, requests, responses, etc. In the case of | ||
| HTTP/1.1, the codec translates the serial/pipelining capabilities of the protocol into something | ||
| that looks like HTTP/2 to higher layers. This means that the majority of the code does not need to | ||
| understand whether a stream originated on an HTTP/1.1 or HTTP/2 connection. | ||
| understand whether a stream originated on an HTTP/1.1, HTTP/2, or HTTP/3 connection. | ||
|
|
||
| HTTP header sanitizing | ||
| ---------------------- | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.