TRACE 请求方法
TRACE
HTTP 方法会沿着到达目标资源的路径执行消息环回测试。
请求的最终接收者应将接收到的消息(不包括任何可能包含敏感数据的字段)作为带有 Content-Type
为 message/http
的 200 OK
响应的消息正文反射回客户端。最终接收者可以是源服务器,也可以是请求中收到 Max-Forwards
值为 0
的第一个服务器。
客户端不得在请求中发送内容,或生成可能包含敏感数据(如用户凭据或 Cookie)的标头。并非所有服务器都实现了 TRACE
方法,并且一些服务器所有者出于安全考虑历来禁止使用 TRACE
方法。在这种情况下,将发送 405 Method Not Allowed
客户端错误响应。
语法
http
TRACE <request-target>["?"<query>] HTTP/1.1
<请求目标>
-
与
Host
标头中提供的信息结合使用时,标识请求的目标资源。这是对源服务器的请求中的绝对路径(例如,/path/to/file.html
),以及对代理的请求中的绝对 URL(例如,http://www.example.com/path/to/file.html
)。 <query>
可选-
一个可选的查询组件,前面带有一个问号
?
。通常用于以key=value
对的形式携带识别信息。
示例
成功的 TRACE 请求
可以使用 curl
执行 TRACE
请求
bash
curl -v -X TRACE example.com
这会生成以下 HTTP 请求
http
TRACE / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
带有响应正文中包含的请求头的 200 OK
响应会发送回客户端
http
HTTP/1.1 200 OK
Content-Length: 123
Date: Wed, 04 Sep 2024 11:50:24 GMT
Server: Apache/2.4.59 (Unix)
Content-Type: message/http
TRACE / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
规范
规范 |
---|
HTTP 语义 # TRACE |
浏览器兼容性
浏览器不将 TRACE
方法用于用户发起的动作,因此“浏览器兼容性”不适用。