跳到主要内容
版本:5.0.1

HttpHeadersFilters

DeepSeek V3 中英对照 HttpHeadersFilters

HttpHeadersFilters 在请求发送到下游之前应用于这些请求,例如在 NettyRoutingFilter 中。

转发头过滤器​

Forwarded 头部过滤器会创建一个 Forwarded 头部发送给下游服务,其定义遵循 RFC 7239。它会将当前请求的 Host 头部、协议方案和端口添加到任何已存在的 Forwarded 头部中。要激活此过滤器,请将 spring.cloud.gateway.server.webmvc.trusted-proxies 属性设置为一个 Java 正则表达式。该正则表达式定义了出现在 Forwarded 头部中时受信任的代理。

过滤器支持以下可选参数:

转发的 "by" 参数​

by 参数标识接收请求的代理接口。这在多跳代理环境中进行调试和追踪时非常有用。要启用 by 参数,请设置以下属性:

  • spring.cloud.gateway.server.webmvc.forwarded-by-enabled (默认为 false)

启用后,过滤器会将服务器的本地地址和端口添加到 Forwarded 标头中。例如:

Forwarded: for="192.0.2.60:47011";proto=https;host="example.com:443";by="198.51.100.17:8080"
备注

by 参数仅在端口号大于 0 时包含端口号。IPv6 地址会正确使用方括号进行格式化。

RemoveHopByHop Headers Filter​

RemoveHopByHop 头部过滤器会从转发的请求中移除特定头部。默认移除的头部列表源自 IETF 规范。

默认移除的请求头为:

  • Connection(连接)

  • Keep-Alive(保持连接)

  • Proxy-Authenticate(代理认证)

  • Proxy-Authorization(代理授权)

  • TE(传输编码)

  • Trailer(尾部)

  • Transfer-Encoding(传输编码)

  • Upgrade(升级)

XForwarded Headers 过滤器​

XForwarded 头部过滤器会创建各种 X-Forwarded-* 头部并发送给下游服务。它使用当前请求的 Host 头部、协议、端口和路径来创建这些头部。要激活此过滤器,请将 spring.cloud.gateway.server.webmvc.trusted-proxies 属性设置为一个 Java 正则表达式。该正则表达式定义了出现在 Forwarded 头部中时受信任的代理。

可以通过以下布尔属性控制单个标题的创建(默认为 true):

  • spring.cloud.gateway.server.webmvc.x-forwarded.for-enabled

  • spring.cloud.gateway.server.webmvc.x-forwarded.host-enabled

  • spring.cloud.gateway.server.webmvc.x-forwarded.port-enabled

  • spring.cloud.gateway.server.webmvc.x-forwarded.proto-enabled

  • spring.cloud.gateway.server.webmvc.x-forwarded.prefix-enabled

可以通过以下布尔属性控制是否追加多个头部(默认为 true):

  • spring.cloud.gateway.server.webmvc.x-forwarded.for-append

  • spring.cloud.gateway.server.webmvc.x-forwarded.host-append

  • spring.cloud.gateway.server.webmvc.x-forwarded.port-append

  • spring.cloud.gateway.server.webmvc.x-forwarded.proto-append

  • spring.cloud.gateway.server.webmvc.x-forwarded.prefix-append