TRACE

Μέθοδος HTTP

Προδιαγραφή της μεθόδου HTTP TRACE

Η μέθοδος TRACE ζητά μια απομακρυσμένη, σε επίπεδο εφαρμογής, επανάληψη του μηνύματος αίτησης. Ο τελικός παραλήπτης της αίτησης ΠΡΕΠΕΙ να αντανακλά το μήνυμα που έλαβε, εξαιρουμένων ορισμένων πεδίων που περιγράφονται παρακάτω, πίσω στον πελάτη ως το σώμα μηνύματος μιας απάντησης 200 (OK) με Content-Type "message/http" (ενότητα 8.3.1 του [RFC7230]). Ο τελικός παραλήπτης είναι είτε ο διακομιστής προέλευσης είτε ο πρώτος διακομιστής που λαμβάνει τιμή Max-Forwards μηδέν (0) στην αίτηση (ενότητα 5.1.2). Ένας πελάτης ΔΕΝ ΠΡΕΠΕΙ να δημιουργεί πεδία επικεφαλίδας σε μια αίτηση TRACE που περιέχουν ευαίσθητα δεδομένα τα οποία ενδέχεται να αποκαλυφθούν από την απάντηση. Για παράδειγμα, θα ήταν ανόητο για έναν πράκτορα χρήστη να στείλει αποθηκευμένα διαπιστευτήρια χρήστη [RFC7235] ή cookies [RFC6265] σε ένα αίτημα TRACE. Ο τελικός παραλήπτης του αιτήματος ΘΑ ΠΡΕΠΕΙ να αποκλείει όλα τα πεδία επικεφαλίδας του αιτήματος που είναι πιθανό να περιέχουν ευαίσθητα δεδομένα όταν αυτός ο παραλήπτης παράγει το σώμα της απάντησης.

Το TRACE επιτρέπει στον πελάτη να δει τι λαμβάνεται στο άλλο άκρο της αλυσίδας αιτήσεων και να χρησιμοποιήσει τα δεδομένα αυτά για δοκιμές ή διαγνωστικές πληροφορίες. Η τιμή του πεδίου επικεφαλίδας Via (ενότητα 5.7.1 του [RFC7230]) παρουσιάζει ιδιαίτερο ενδιαφέρον, καθώς λειτουργεί ως ίχνος της αλυσίδας αιτήσεων. Η χρήση του πεδίου επικεφαλίδας Max-Forwards επιτρέπει στον πελάτη να περιορίσει το μήκος της αλυσίδας αιτήσεων, πράγμα χρήσιμο για τη δοκιμή μιας αλυσίδας μεσολάβησης που προωθεί μηνύματα σε έναν άπειρο βρόχο.

Ο πελάτης ΔΕΝ ΠΡΕΠΕΙ να στέλνει σώμα μηνύματος σε μια αίτηση TRACE.

Οι απαντήσεις στη μέθοδο TRACE δεν μπορούν να αποθηκευτούν στην κρυφή μνήμη.

Η μέθοδος HTTP TRACE έχει καθοριστεί στην ενότητα 4.3.8 του εγγράφου RFC 7231 από την Internet Engineering Task Force (IETF) και το World Wide Web Consortium (W3C).

Περιγραφή της μεθόδου TRACE

έργο σε εξέλιξη

Παράδειγμα για τη μέθοδο HTTP TRACE

Request header:
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
Response header:
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