mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 06:47:41 +03:00
dd4c17e918
Summary: Introduce **h2** support into mononoke server. Remove alpn crate that repeats the standard "select_next_proto" method Server now offers the following protocols: hgcli, h2, http/1.1 in this order in protocol negotiation. We will select the first protocol supported by the server which is also supported by the client. This will add h2 support server side but won't change protocols currently used (because h2 is not offered client side right now, while http/1.1 is explicitly set). We then later will switch **only** Eden Api Traffic to H2 by enabling the following config client side via slow rollout: ``` [edenapi] http-version=2 ``` We might need to tune some settings on proxygen side before that. Wireproto traffic will continue to be obliged to set http/1.1 client side explicitly, which is totally fine because it needs web socket upgrade. ### At a high level, HTTP/2: * is binary, instead of textual * is fully multiplexed, instead of ordered and blocking can therefore use one connection for parallelism * uses header compression to reduce overhead * allows servers to “push” responses proactively into client caches Reviewed By: mzr Differential Revision: D44540283 fbshipit-source-id: 560d80d68d5d364adee122881d12cf61ba9f1695 |
||
---|---|---|
.. | ||
fixtures | ||
integration | ||
utils |