Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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

http
Content-Location: <url>

Directives

<url>

Une URL qui peut être absolue ou relative à l'URL de la requête.

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.

html
<form action="/send-payment" method="post">
  <p>
    <label>
      À qui voulez-vous envoyer l'argent&nbsp;?
      <input type="text" name="recipient" />
    </label>
  </p>

  <p>
    <label>
      Combien&nbsp;?
      <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
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