TRACE
Metoda HTTP
Specificarea metodei HTTP TRACE
Metoda TRACE solicită un loop-back la distanță, la nivel de aplicație, al mesajului cererii. Destinatarul final al cererii TREBUIE să reflecte mesajul primit, excluzând unele câmpuri descrise mai jos, înapoi la client ca corp al mesajului unui răspuns 200 (OK) cu un Content-Type de "message/http" (secțiunea 8.3.1 din [RFC7230]). Destinatarul final este fie serverul de origine, fie primul server care primește o valoare Max-Forwards de zero (0) în cerere (secțiunea 5.1.2). Un client NU TREBUIE să genereze câmpuri de antet într-o cerere TRACE care conțin date sensibile care ar putea fi dezvăluite prin răspuns. De exemplu, ar fi o prostie ca un agent utilizator să trimită credențiale de utilizator stocate [RFC7235] sau cookie-uri [RFC6265] într-o cerere TRACE. Destinatarul final al cererii TREBUIE să excludă orice câmp din antetul cererii care ar putea conține date sensibile atunci când respectivul destinatar generează corpul răspunsului.
TRACE permite clientului să vadă ce se primește la celălalt capăt al lanțului de cereri și să utilizeze aceste date pentru testare sau informații de diagnosticare. Valoarea câmpului de antet Via (secțiunea 5.7.1 din [RFC7230]) este deosebit de interesantă, deoarece acționează ca o urmă a lanțului de cereri. Utilizarea câmpului de antet Max-Forwards permite clientului să limiteze lungimea lanțului de cereri, ceea ce este util pentru testarea unui lanț de proxy-uri care transmit mesaje într-o buclă infinită.
Un client NU TREBUIE să trimită un corp de mesaj într-o cerere TRACE.
Răspunsurile la metoda TRACE nu pot fi stocate în cache.
Descrierea metodei TRACE
Exemplu pentru metoda HTTP TRACE
TRACE /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Content-Type: message/http
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache
Response body (echoed request):
TRACE /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive