En-tête Content-Location
Baseline
Large disponibilité
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 retourné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://example.com/documents/toto, le site peut 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 |
Ces URL sont données à titre d'exemple — le site peut servir les différents types de fichiers avec n'importe quel modèle d'URL
de son choix, tel qu'un paramètres de chaîne de caractères de requête : /documents/toto?format=json, /documents/toto?format=xml, et ainsi de suite.
Le client peut 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 peut également prendre en compte d'autres en-têtes de négociation de contenu, comme Accept-Language.
Indiquer l'URL du résultat d'une transaction
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 envoyé, le site génère un reçu pour la transaction. Le serveur peut 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çu/38
<!doctype html>
(Beaucoup de HTML…)
<p>Vous avez envoyé 50,00 € à Sandra Smith.</p>
(Beaucoup plus de HTML…)
Spécifications
| Spécification |
|---|
| HTTP Semantics> # field.content-location> |
Compatibilité des navigateurs
Voir aussi
- L'en-tête
Location