HTTP 过滤器
与网络级过滤器堆栈非常相似,Envoy支持连接管理器中的 HTTP 级过滤器堆栈。可以在不了解底层物理协议 (HTTP/1.1、HTTP/2 等) 或多路复用功能的情况下编写对 HTTP 级别消息进行操作的过滤器。有三种类型的 HTTP 级别过滤器:
- 解码器:当连接管理器正在对请求流的某些部分(Header、Body 和 Trailers)进行解码时,将调用解码器过滤器。
- 编码器:当连接管理器要对响应流的某些部分(Header、Body 和 Trailers)进行编码时, 将调用编码器过滤器。
- 解码/编码器:当连接管理器正在对请求流的某些部分进行解码时,以及当连接管理器要对响应流的某些部分进行编码时,都会调用解码/编码器。
HTTP 级别过滤器的 API 允许过滤器在不了解基础协议的情况下运行。与网络级过滤器一样,HTTP 过滤器可以拦截并传递给后续过滤器。通过配置组合可以实现更复杂的方案,如运行状况检查处理、调用速率限制服务、缓冲、路由、为应用程序通信(如 DynamoDB 等)生成统计信息。HTTP 级别过滤器还可以在单个请求流的上下文中共享它们之间的状态(静态和动态)。有关详细信息,请参阅过滤器之间的数据共享。Envoy 已经包括了几个 HTTP 级别过滤器,这些过滤器在此体系结构概述中以及在配置参考中都有说明。
网友评论