Méthode de requête TRACE
La méthode HTTP TRACE effectue un test de boucle de message le long du chemin vers la ressource cible.
Le destinataire final de la requête doit renvoyer le message tel qu'il a été reçu (en excluant tout champ susceptible de contenir des données sensibles) au client, comme corps de la réponse 200 OK avec un Content-Type de message/http.
Le destinataire final est soit le serveur d'origine, soit le premier serveur à recevoir une valeur Max-Forwards de 0 dans la requête.
Le client ne doit pas envoyer de contenu dans la requête, ni générer d'en-têtes susceptibles de contenir des données sensibles comme des identifiants utilisateur·ice ou des cookies.
Tous les serveurs n'implémentent pas la méthode TRACE, et certain·e·s propriétaires de serveurs ont historiquement interdit l'utilisation de la méthode TRACE en raison de préoccupations de sécurité.
Dans de tels cas, une réponse d'erreur client 405 Method Not Allowed client error response sera envoyée.
| La requête a un corps | Non |
|---|---|
| La réponse de succès a un corps | Oui |
| Sûre | Oui |
| Idempotente | Oui |
| Mis en cache | Non |
| Autorisée dans les formulaires HTML | Non |
Syntaxe
TRACE <request-target>["?"<query>] HTTP/1.1
<request-target>-
Identifie la ressource cible de la requête lorsqu'elle est combinée avec l'information fournie dans l'en-tête
Host. Il s'agit d'un chemin absolu (par exemple/chemin/vers/fichier.html) dans les requêtes vers un serveur d'origine, et d'une URL absolue dans les requêtes vers les serveurs mandataires (proxies) (par exemplehttp://www.exemple.fr/chemin/vers/fichier.html). <query>Facultatif-
Un fragment de requête optionnel précédé d'un point d'interrogation
?. Souvent utilisé pour transmettre des informations sous la forme de pairesclé=valeur.
Exemples
>Requête TRACE réussie
Une requête TRACE peut être effectuée avec curl :
curl -v -X TRACE exemple.fr
Cela produit la requête HTTP suivante :
TRACE / HTTP/1.1
Host: exemple.fr
User-Agent: curl/8.7.1
Accept: */*
Une réponse 200 OK contenant les en-têtes de la requête dans le corps de la réponse est renvoyée au client :
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: exemple.fr
User-Agent: curl/8.7.1
Accept: */*
Spécifications
| Specification |
|---|
| HTTP Semantics> # TRACE> |
Compatibilité des navigateurs
Le navigateur n'utilise pas la méthode TRACE pour les actions initiées par l'utilisateur·ice, donc la « compatibilité navigateur » ne s'applique pas.