TRACE ist die HTTP-Methode, bei der der Server die empfangene Anfrage unverändert als Antwort zurückschickt. Gedacht ist sie für die Fehlersuche: Der Client sieht, was auf dem Weg durch Proxys an seiner Anfrage verändert wurde.
- TRACE
Die HTTP-Methode, die eine Anfrage als Echo zurückspiegelt, um ihren Weg durch Zwischenstationen nachzuvollziehen.
Beispiel: „Per TRACE sollte sich zeigen, welcher Proxy den Header entfernt, doch der Server hatte die Methode abgeschaltet.“Verwandt: Debugging, die Fehlersuche, für die TRACE ursprünglich gedacht war.
Warum TRACE meist abgeschaltet ist
Weil das Echo auch Cookies und Anmeldedaten zurückschickt. 2003 wurde mit Cross-Site Tracing ein Angriff bekannt, der darüber Cookies auslesen konnte, die vor JavaScript geschützt sein sollten. Moderne Browser lassen TRACE aus Skripten nicht mehr zu, die Lücke ist damit weitgehend geschlossen.
Trotzdem gilt eine eingeschaltete TRACE-Methode bei Sicherheitsprüfungen als Befund. Bei Apache schaltet die Einstellung TraceEnable off sie ab, Nginx unterstützt sie gar nicht.
TRACE im Vergleich mit den anderen Methoden
Die Übersicht zeigt alle neun HTTP-Methoden. Sicher heißt, dass eine Methode nichts verändert; idempotent heißt, dass mehrfaches Senden dasselbe Ergebnis hat wie einfaches.
Methode | Wofür | Sicher | Idempotent |
|---|---|---|---|
Ressource abrufen, ohne etwas zu ändern | ja | ja | |
wie GET, aber nur die Kopfzeilen | ja | ja | |
Daten senden, meist etwas Neues anlegen | nein | nein | |
Ressource vollständig ersetzen | nein | ja | |
Ressource teilweise ändern | nein | nein | |
Ressource löschen | nein | ja | |
erlaubte Methoden erfragen | ja | ja | |
Tunnel über einen Proxy aufbauen | nein | nein | |
TRACE | Anfrage zur Fehlersuche zurückspiegeln | ja | ja |
TRACE heute
Im Alltag spielt TRACE kaum noch eine Rolle. Was die Methode leisten sollte, zeigen heute die Entwicklerwerkzeuge der Browser und Protokolle auf den Servern, ohne Daten zurück ins Netz zu spiegeln.