http: new style WebSockets, where headers and data are processed by the filter chain. (#3776)

This is the complete HTTP/1.1 implementation of #3301, new style websockets.

It should preserve existing behavior for "old style" websockets except for handling transfer-encoding requests (we all agree shouldn't happen) and responses (actually could happen and have been requested) better.

Risk Level: High (should be self contained but still lots of core code changes)
Testing: Thorough integration tests. unit tests for http1 codec
Docs Changes: added websocket FAQ
Release Notes: added

Fixes #3301 (modulo timeouts not working, which will be addressed by #3654 or #1778)

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>

Mirrored from https://github.com/envoyproxy/envoy @ 95c3e1343de707edee58defbec03ba87c9e969de
pull/620/head
data-plane-api(CircleCI) 6 years ago
parent b163ae9580
commit 5da5e8bad8
  1. 6
      envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto

@ -266,7 +266,6 @@ message HttpConnectionManager {
// control.
bool represent_ipv4_remote_address_as_ipv4_mapped_ipv6 = 20;
// [#not-implemented-hide:]
// The configuration for HTTP upgrades.
// For each upgrade type desired, an UpgradeConfig must be added.
//
@ -275,6 +274,10 @@ message HttpConnectionManager {
// The current implementation of upgrade headers does not handle
// multi-valued upgrade headers. Support for multi-valued headers may be
// added in the future if needed.
//
// .. warning::
// The current implementation of upgrade headers does not work with HTTP/2
// upstreams.
message UpgradeConfig {
// The case-insensitive name of this upgrade, e.g. "websocket".
// For each upgrade type present in upgrade_configs, requests with
@ -286,7 +289,6 @@ message HttpConnectionManager {
// HTTP connections will be used for this upgrade type.
repeated HttpFilter filters = 2;
};
// [#not-implemented-hide:]
repeated UpgradeConfig upgrade_configs = 23;
}

Loading…
Cancel
Save