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:
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_
.