TRACE request method
Die TRACE
HTTP-Methode führt einen Nachrichtenschleifentest entlang des Pfades zur Zielressource durch.
Der endgültige Empfänger der Anfrage sollte die Nachricht wie empfangen (ohne Felder, die sensible Daten enthalten könnten) zurück an den Client als Nachrichtenkörper einer 200 OK
-Antwort mit einem Content-Type
von message/http
spiegeln.
Der endgültige Empfänger ist entweder der Ursprungsserver oder der erste Server, der einen Max-Forwards
-Wert von 0
in der Anfrage erhält.
Der Client darf im Inhalt der Anfrage keine Daten senden oder Header generieren, die sensible Daten wie Benutzeranmeldedaten oder Cookies enthalten könnten.
Nicht alle Server implementieren die TRACE
-Methode, und einige Serverbesitzer haben aus Sicherheitsgründen historisch die Verwendung der TRACE
-Methode untersagt.
In solchen Fällen wird eine 405 Method Not Allowed
Client-Fehlerantwort gesendet.
Anfrage hat Körper | Nein |
---|---|
Erfolgreiche Antwort hat Körper | Ja |
Sicher | Ja |
Idempotent | Ja |
Cache-fähig | Nein |
Erlaubt in HTML-Formularen | Nein |
Syntax
TRACE <request-target>["?"<query>] HTTP/1.1
<request-target>
-
Identifiziert die Zielressource der Anfrage, wenn kombiniert mit den im
Host
-Header bereitgestellten Informationen. Dies ist ein absoluter Pfad (z. B./path/to/file.html
) in Anfragen an einen Ursprungsserver und eine absolute URL in Anfragen an Proxies (z. B.http://www.example.com/path/to/file.html
). <query>
Optional-
Ein optionaler Abfragekomponenten, der von einem Fragezeichen
?
eingeleitet wird. Wird häufig verwendet, um identifizierende Informationen in Form vonkey=value
Paaren zu transportieren.
Beispiele
Erfolgreiche TRACE-Anfrage
Eine TRACE
-Anfrage kann mit curl
durchgeführt werden:
curl -v -X TRACE example.com
Dies erzeugt die folgende HTTP-Anfrage:
TRACE / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
Eine 200 OK
-Antwort mit den Anfrage-Headern im Antwortkörper wird an den Client zurückgesendet:
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: */*
Spezifikationen
Specification |
---|
HTTP Semantics # TRACE |
Browser-Kompatibilität
Der Browser nutzt die TRACE
-Methode nicht für benutzerinitiierte Aktionen, daher gilt "Browser-Kompatibilität" nicht.
Entwickler können diese Anforderungsmethode mit fetch()
festlegen.