HTTP1 codec configuration for Generic Proxy (proto)

This extension has the qualified name envoy.generic_proxy.codecs.http1

Note

This extension is only available in contrib images.

Note

This extension is work-in-progress. Functionality is incomplete and it is not intended for production use.

This extension is not hardened and should only be used in deployments where both the downstream and upstream are trusted.

Tip

This extension extends and can be used with the following extension category:

This extension must be configured with one of the following type URLs:

Warning

This API feature is currently work-in-progress. API features marked as work-in-progress are not considered stable, are not covered by the threat model, are not supported by the security team, and are subject to breaking changes. Do not use this feature without understanding each of the previous points.

extensions.filters.network.generic_proxy.codecs.http1.v3.Http1CodecConfig

[extensions.filters.network.generic_proxy.codecs.http1.v3.Http1CodecConfig proto]

Configuration for HTTP codec. This HTTP1 codec is used to parse and serialize HTTP1 messages for the generic proxy filter. Any decoding error will result in the generic proxy closing the connection.

Note

This codec only supports HTTP1.1 messages and does not support HTTP1.0 messages. And it limits part of the HTTP1.1 features, such as upgrade, connect, etc. This codec is mainly designed for the features evaluation of the generic proxy filter. Please be cautious when using it in production.

{
  "single_frame_mode": {...},
  "max_buffer_size": {...}
}
single_frame_mode

(BoolValue) If true, the codec will parse and serialize HTTP1 messages in a single frame per message.

A frame is a minimal unit of data that can be processed by the generic proxy. If false, the codec will parse and serialize HTTP1 messages in a streaming way. In this case, the codec will output multiple frames for a single HTTP1 message to the generic proxy. If true, the codec will buffer the entire HTTP1 message body before sending it to the generic proxy. This may have better performance in small message scenarios and is more friendly to handle the HTTP1 message body. This also may result in higher memory usage and latency if the message body is large.

Default is true.

max_buffer_size

(UInt32Value) The maximum size of the HTTP1 message body in bytes. If not set, 8*1024*1024 (8MB) is used. This only makes sense when single_frame_mode is true. If the HTTP1 message body size exceeds this value, this will result in a decoding error and the generic proxy will close the connection.