http connection manager#
首先,http connection manager(HCM) 在 Listener 的角度看,是一个 Network Filter。
为了扩展性,Envoy 的 http connection manager 采用了经典的 filter chain 设计模式。这个和 Listener Filter Chain 有一点类似:
请求 filter 流如下:
响应 filter 流如下:
http filter 抽象对象定义#
HttpFilter 在源码中叫 StreamFilter
或更精确叫 Http::StreamFilterBase
。一个 http connection manager
拥有一个 Http::FilterManager
, FilterManager
拥有 list<StreamFilterBase*> filters_
。