TRACE 请求方法

TRACE HTTP 方法会沿着到达目标资源的路径执行消息环回测试。

请求的最终接收者应将接收到的消息(不包括任何可能包含敏感数据的字段)作为带有 Content-Typemessage/http200 OK 响应的消息正文反射回客户端。最终接收者可以是源服务器,也可以是请求中收到 Max-Forwards 值为 0 的第一个服务器。

客户端不得在请求中发送内容,或生成可能包含敏感数据(如用户凭据或 Cookie)的标头。并非所有服务器都实现了 TRACE 方法,并且一些服务器所有者出于安全考虑历来禁止使用 TRACE 方法。在这种情况下,将发送 405 Method Not Allowed 客户端错误响应

请求有正文
成功响应有正文
安全
幂等
可缓存
允许在 HTML 表单中使用

语法

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 方法用于用户发起的动作,因此“浏览器兼容性”不适用。

另见