在目标端观察代理转发的请求
为客户端发送 HTTP 请求后新增或修改的请求头选择正确的观察点。
客户端准备一个 HTTP 请求,正向代理可以在把它继续发送之前修改这条消息。转发后的版本变得可观察的地方就是目标端。
| 观察点 | 该处可获取的消息 |
|---|---|
| 客户端的请求对象 | 为第一跳准备的请求 |
| 源站的请求日志或回显处理器 | 转发后收到的请求 |
| 客户端的响应头集合 | 在返回路径上收到的响应 |
若要受控地核对,请使用你自己运营、会记录或返回所收请求头的端点。给请求加一个可识别的标记,这样源站记录就能与特定的客户端操作对应起来。
在基于 WebClient 的应用程序中,ResponseHeaders 描述的是返回的响应,而不是代理发往目标端的请求记录。服务器可以选择在响应正文里回显请求信息,但那属于应用程序的行为。
如果路径上有多个中间环节,目标端看到的是它们叠加后的转发效果。仅仅存在某个请求头,并不能把变化归因于某一跳。对于自定义 API 字段,转发规则与 Connection 字段规则 说明了何时预期会发生改动。
普通的 HTTPS CONNECT 隧道又增加了一道边界:内部的 HTTP 请求在客户端与网站之间是加密的。中继代理无法编辑这些加密的请求头。CONNECT 交换中的请求头属于那次独立的交换,而受管的 TLS 检查代理则扮演不同的角色。