En-tête Content-Location
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'en-tête de représentation HTTP Content-Location indique un emplacement alternatif pour les données renvoyées.
Son utilisation principale est d'indiquer l'URL d'une ressource transmise à la suite d'une négociation de contenu.
L'en-tête Content-Location est différent de l'en-tête Location.
Content-Location indique l'URL directe pour accéder à la ressource lorsqu'une négociation de contenu a eu lieu, permettant au client de contourner la négociation de contenu lors des requêtes suivantes pour cette ressource.
Location, en revanche, indique soit la cible d'une redirection 3XX, soit l'URL d'une ressource nouvellement créée dans une réponse 201 Created.
| Type d'en-tête | En-tête de représentation |
|---|---|
| En-tête de requête interdit | Non |
Syntaxe
Content-Location: <url>
Directives
Exemples
>Requêter des données auprès d'un serveur dans différents formats
Supposons qu'une API de site puisse retourner des données au format JSON, XML ou au format CSV (angl.). Si l'URL d'un document particulier est https://exemple.com/documents/toto, le site pourrait retourner différentes URLs pour Content-Location selon l'en-tête Accept de la requête :
| En-tête de requête | En-tête de réponse |
|---|---|
Accept: application/json, text/json |
Content-Location: /documents/toto.json |
Accept: application/xml, text/xml |
Content-Location: /documents/toto.xml |
Accept: text/plain, text/* |
Content-Location: /documents/toto.txt |
These URLs are examples — the site could serve the different filetypes with any URL
patterns it wishes, such as a query string parameter: /documents/foo?format=json,
/documents/foo?format=xml, and so on.
Le client pourrait alors se souvenir que la version JSON est disponible à cette URL précise, et éviter la négociation de contenu lors de la prochaine requête pour ce document.
Le serveur pourrait également prendre en compte d'autres en-têtes de négociation de contenu, comme Accept-Language.
Indicating the URL of a transaction's result
Supposons que vous ayez un <form> pour envoyer de l'argent à un·e autre utilisateur·ice d'un site.
<form action="/send-payment" method="post">
<p>
<label>
À qui voulez-vous envoyer l'argent ?
<input type="text" name="recipient" />
</label>
</p>
<p>
<label>
Combien ?
<input type="number" name="amount" />
</label>
</p>
<button type="submit">Envoyer de l'argent</button>
</form>
Lorsque le formulaire est soumis, le site génère un reçu pour la transaction. Le
serveur pourrait utiliser Content-Location pour indiquer l'URL de ce reçu pour un accès futur.
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Location: /mon-reçus/38
<!doctype html>
(Beaucoup de HTML…)
<p>Vous avez envoyé 50,00 € à Sandra Smith.</p>
(Beaucoup plus de HTML…)
Spécifications
| Specification |
|---|
| HTTP Semantics> # field.content-location> |
Compatibilité des navigateurs
Voir aussi
- L'en-tête
Location