TRACE リクエストメソッド
TRACE は HTTP のメソッドで、対象とするリソースへのパスに沿ってメッセージのループバック検査を実行します。
リクエストの最終的な受信者は、受信したメッセージ(機密データを含む可能性のあるフィールドを除く)を、200 OK レスポンスのメッセージ本文として、Content-Type が message/http の状態でクライアントに反映すべきです。
最終的な受信先は、オリジンサーバーか、リクエスト内で Max-Forwards の値が 0 となる最初のサーバーのどちらかです。
クライアントはリクエストにコンテンツを送信しなければなりませんが、ユーザー資格情報やクッキーなどの機密データを含む可能性のあるヘッダーを生成してはなりません。
すべてのサーバーが TRACE メソッドを実装しているわけではなく、セキュリティ上の懸念から、一部のサーバー所有者は過去には TRACE メソッドの使用を禁止してきました。
このような場合 405 Method Not Allowed クライアントエラーレスポンスが送信されます。
構文
TRACE <request-target>["?"<query>] HTTP/1.1
<request-target>-
Hostヘッダーで提供される情報と組み合わせたときの、リクエストのターゲットリソースを識別します。 これは元のサーバーへのリクエストにおいては絶対パス(/path/to/file.htmlなど)であり、プロキシーへのリクエストにおいては絶対 URL(http://www.example.com/path/to/file.htmlなど)です。 <query>省略可-
疑問符
?で始まるオプションのクエリー成分。 多くの場合、key=valueの組の形で識別情報を保持するために使用されます。
例
>TRACE リクエストに成功
TRACE リクエストは curl を使用して実行できます。
curl -v -X TRACE example.com
これは次のような HTTP リクエストを生成します。
TRACE / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
リクエストヘッダーがレスポンス本文に含まれている 200 OK レスポンスがクライアントに返送されます。
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: */*
仕様書
| Specification |
|---|
| HTTP Semantics> # TRACE> |
ブラウザーの互換性
ブラウザーはユーザー主導のアクションに TRACE メソッドを使用しないため、「ブラウザー互換性」は適用されません。