Content-Location header
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
-Repräsentations-Header gibt einen alternativen Speicherort für die zurückgegebenen Daten an. Seine Hauptanwendung besteht darin, die URL einer Ressource anzugeben, die infolge der Inhaltsverhandlung übertragen wurde.
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. Dies ermöglicht es dem Client, zukünftige Inhaltsverhandlungen für diese Ressource zu umgehen. Location
hingegen gibt entweder das Ziel einer 3XX
-Umleitung oder die URL einer neu erstellten Ressource in einer 201 Created
-Antwort an.
Header-Typ | Repräsentations-Header |
---|---|
Verbotener Anforderungs-Header | Nein |
Syntax
Content-Location: <url>
Direktiven
Beispiele
Anfordern von Daten von einem Server in verschiedenen Formaten
Angenommen, die API einer Site kann Daten in den Formaten JSON, XML oder CSV zurückgeben. Wenn die URL für ein bestimmtes Dokument https://example.com/documents/foo
ist, könnte die Site je nach Accept
-Header der Anforderung unterschiedliche URLs für Content-Location
zurückgeben:
Anforderungs-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 verschiedenen Dateitypen mit jedem gewünschten URL-Muster bedienen, wie z.B. einem Abfragezeichenfolgen-Parameter: /documents/foo?format=json
, /documents/foo?format=xml
und so weiter.
Dann könnte sich der Client merken, dass die JSON-Version unter dieser speziellen URL verfügbar ist, und die Inhaltsverhandlungen beim nächsten Anfordern dieses Dokuments überspringen.
Der Server könnte auch andere Header der Inhaltsverhandlung berücksichtigen, wie z.B. Accept-Language
.
Angabe der URL des Ergebnisses einer Transaktion
Angenommen, Sie haben ein
<form>
zum Senden
von Geld an einen anderen Benutzer einer Site.
<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 übermittelt wird, generiert die Site eine Quittung für die Transaktion. Der Server könnte Content-Location
verwenden, um die URL der Quittung für zukünftigen Zugriff anzugeben.
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 |