Content-Location

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Der HTTP Content-Location Representation-Header gibt einen alternativen Speicherort für die zurückgegebenen Daten an. Seine Hauptverwendung besteht darin, die URL einer Ressource anzugeben, die als Ergebnis der Inhaltsverhandlung übertragen wird.

Der Content-Location-Header unterscheidet sich vom Location-Header. Content-Location gibt die direkte URL an, um auf die Ressource zuzugreifen, wenn eine Inhaltsverhandlung stattgefunden hat, sodass der Client zukünftige Inhaltsverhandlungen für diese Ressource umgehen kann. Location hingegen gibt entweder das Ziel einer 3XX-Umleitung oder die URL einer neu erstellten Ressource in einer 201 Created-Antwort an.

Header-Typ Representation-Header
Verbotener Anfrage-Header Nein

Syntax

http
Content-Location: <url>

Direktiven

<url>

Eine URL, die absolut oder relativ zur Anfrage-URL sein kann.

Beispiele

Anfordern von Daten von einem Server in verschiedenen Formaten

Angenommen, eine API einer Website kann Daten in den Formaten JSON, XML oder CSV zurückgeben. Wenn sich die URL für ein bestimmtes Dokument unter https://example.com/documents/foo befindet, könnte die Site unterschiedliche URLs für Content-Location zurückgeben, abhängig vom Accept-Header der Anfrage:

Anfrage-Header Antwort-Header
Accept: application/json, text/json Content-Location: /documents/foo.json
Accept: application/xml, text/xml Content-Location: /documents/foo.xml
Accept: text/plain, text/* Content-Location: /documents/foo.txt

Diese URLs sind Beispiele — die Site könnte die unterschiedlichen Dateitypen mit beliebigen URL-Mustern bereitstellen, z. B. einem Query-String-Parameter: /documents/foo?format=json, /documents/foo?format=xml und so weiter.

Dann könnte der Client sich merken, dass die JSON-Version unter dieser bestimmten URL verfügbar ist, und die Inhaltsverhandlung beim nächsten Anfordern dieses Dokuments überspringen.

Der Server könnte auch andere Inhaltsverhandlung-Header berücksichtigen, wie Accept-Language.

Angabe der URL des Ergebnisses einer Transaktion

Angenommen, Sie haben ein <form>, das Geld an einen anderen Benutzer einer Website sendet.

html
<form action="/send-payment" method="post">
  <p>
    <label>
      Who do you want to send the money to?
      <input type="text" name="recipient" />
    </label>
  </p>

  <p>
    <label>
      How much?
      <input type="number" name="amount" />
    </label>
  </p>

  <button type="submit">Send Money</button>
</form>

Wenn das Formular gesendet wird, generiert die Website eine Quittung für die Transaktion. Der Server könnte Content-Location verwenden, um die URL dieser Quittung für zukünftigen Zugriff anzugeben.

http
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Location: /my-receipts/38

<!doctype html>
(Lots of HTML…)

<p>You sent $38.00 to ExampleUser.</p>

(Lots more HTML…)

Spezifikationen

Specification
HTTP Semantics
# field.content-location

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch