3.27标准标头与 Host
为了提升应用通过 HTTP 客户端发送网络请求的兼容性并避免被 WAF(Web 应用防火墙)拦截,框架提供了一键式配置方法,方便快速统一设置标准的请求头部:
启用标准请求标头#
为了提升应用通过 HTTP 客户端发送网络请求的兼容性并避免被 WAF(Web 应用防火墙)拦截,框架提供了一键式配置方法,方便快速统一设置标准的请求头部:
HttpRequestBuilder.Get("https://furion.net") .UseStandardRequestHeaders();HttpRequestBuilder.Get("https://furion.net") .UseStandardRequestHeaders(false); // 关闭标准请求标头此外,除了为单个请求启用标准标头配置,还可以全局注册以在 HttpClient 中启用:
// 为默认客户端启用services.AddHttpClient(string.Empty, client =>{ client.UseStandardRequestHeaders();});services.AddHttpRemote();启用标准请求标头后,请求将自动添加以下头部:
Accept:application/json、text/plain;q=0.9、*/*;q=0.8(明确的媒体类型优先级,避免被WAF拦截)Connection:启用持久连接(Keep-Alive),减少TCP连接建立和关闭的开销
设置自动 Host 标头#
Host 标头是 HTTP/1.1 协议中的一个必需标头。Host 标头用于指定请求的目标服务器的主机名和端口号,确保服务器能正确区分同一 IP 地址上的不同域名并进行相应处理。框架提供了简便的方法进行设置:
HttpRequestBuilder.Get("https://furion.net") .AutoSetHostHeader(); // 启用HttpRequestBuilder.Get("https://furion.net") .AutoSetHostHeader(false); // 关闭自动 Host 标头启用后,发送 HTTP 远程请求时会自动添加 Host: furion.net 标头。