HTTP 过滤器

网络级别过滤器栈类似,Envoy 在连接管理器内支持 HTTP 过滤器栈。

我们可以在不了解底层物理协议(如 HTTP/1.1、HTTP/2 等)或多路复用技术相关知识的情况下,写过滤器去操作 HTTP 的信息。

有三种类型的 HTTP 过滤器:

  • 解码器:解码器过滤器当连接管理器在解码部分请求流(头部、正文和尾部)时被调用。
  • 编码器:编码器过滤器当连接管理器即将对响应流(头部、正文和尾部)的部分进行编码时被调用。
  • 解码器/编码器:解码器/编码器过滤器当连接管理器在解码请求流时以及当连接管理器将要编码响应流时被调用。

HTTP 过滤器的 API 允许过滤器在不知道底层协议的情况下运行。 就如网络过滤器一样,可停止 HTTP 过滤器并继续执行后续的过滤器。 由此可以实现更复杂的业务场景,例如运行状况检查处理、调用限速服务、缓冲、路由、为应用程序流量(例如 DynamoDB 等)生成统计数据。Envoy 已包含多个 HTTP 过滤器,相关文档可查阅这份体系结构概述以及配置参考