http connection manager#

First of all, http connection manager(HCM) is a Network Filter from the Listener’s point of view.

For scalability, Envoy’s http connection manager uses the classic filter chain design pattern. This is similar to Listener Filter Chain:

Figure - http connection manager Design model

Figure: http connection manager Design model#

Open with Draw.io

The filter flow of http request:

source: life_of_a_request

The filter flow of http response:

source: life_of_a_request

http filter abstract object definition#

HttpFilter is called StreamFilter or more precisely Http::StreamFilterBase in the source code. An http connection manager has an Http::FilterManager and a FilterManager has list<StreamFilterBase*> filters_.

Figure - http filter abstract object

Figure: http filter abstract object#

Open with Draw.io

http filter C++ class relationships#