Page 190 - HTTP权威指南
P. 190
16
当 TRACE 请求到达目的服务器时, 整条请求报文都会被封装在一条 HTTP 响应
的主体中回送给发送端(参见图 6-23)。当 TRACE 响应到达时,客户端可以检查
服务器收到的确切报文,以及它所经过的代理列表(在 Via 首部)。TRACE 响应的
Content-Type 为 message/http,状态为 200 OK。
TRACE请求
TRACE /index.html HTTP/1.1
Host: www.joes-hardware.com
Accept: text/html
客户端 代理1 代理2 代理3 服务器
(proxy.irenes-isp.net) (p1127.att.net) (cache.joes-hardware.com) (www.joes-hardware.com)
HTTP/1.1 200 OK
Content-Type: message/http
Content-Length: 269
Via: 1.1 cache.joes-hardware.com, 1.1 p1127.att.net, 1.1 proxy.irenes-isp.net
收到的请求
TRACE /index.html HTTP/1.1
Host: www.joes-hardware.com
Accept: text/html
Via: 1.1 proxy.irenes-isp.net, 1.1 p1127.att.net, 1.1 cache.joes-hardware.com
X-Magic-CDN-Thingy: 134-AF-0003
Cookie: access-isp="Irene's ISP, California"
Client-ip: 209.134.49.32
TRACE响应
图 6-23 TRACE 响应回送了收到的请求报文
Max-Forwards
通常,不管中间插入了多少代理,TRACE 报文都会沿着整条路径传到目的服务器
上。可以使用 Max-Forwards(最大转发次数)首部来限制 TRACE 和 OPTIONS 155
请求所经过的代理跳数,在测试代理链是否是在无限循环中转发报文,或者查看链
中特定代理服务器的效果时,它是很有用的。Max-Forwards 也可以限制 OPTIONS
报文的转发(参见 6.8 节)。
Max-Forwards 请求首部字段包含了一个整数,用来说明这条请求报文还可以被转
发的次数(参见图 6-24)。如果 Max-Forwards 的值为零(Max-Forwards:0),那
么即使接收者不是原始服务器,它也必须将 TRACE 报文回送给客户端,而不应该
继续转发。
注 16: 最后的接收者可以是原始服务器,也可以是第一个收到了 Max-Forwards 值为零的请求的代理或
网关。
代 理 | 163