Content-Location ヘッダーは返されるデータの代替場所を示します。主な用途はコンテンツネゴシエーションの結果として送信されたリソースのURLを示すことです。

LocationContent-Location は異なります。Location はリダイレクトの URL を示し、Content-Location は今後のコンテンツネゴシエーションなしでリソースへのアクセスに使用する直接 URL を示します。Location はレスポンスに関連付けられたヘッダーで、Content-Location は返されたデータに関連付けられます。この区別はがないと抽象的に見えるかもしれません。

ヘッダータイプ Entity header
Forbidden header name いいえ

構文

Content-Location: <url>

ディレクティブ

<url>
相対 URL (リクエストURL) または絶対 URL。

異なるフォーマットのサーバーからのデータのリクエスト

たとえば、サイトの API が JSONXML、または CSV 形式でデータを返すとします。特定のドキュメントの URL が https://example.com/documents/foo にある場合、サイトはリクエストの Accept ヘッダーに応じて Content-Location 用に異なる URL を返すことができます:

リクエストヘッダー レスポンスヘッダー
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

これらの URL は例です。サイトではクエリ文字列パラメータ:/documents/foo?format=json/documents/foo?format=xml など、任意の URL パターンでさまざまなファイルタイプを提供できます。

その後クライアントはその特定の URL で JSON バージョンが利用可能であることを覚えて、次にドキュメントを要求するときにコンテンツのネゴシエーションをスキップします。

サーバは Accept-Language のような他のコンテンツネゴシエーションヘッダーを考慮することもできます。

新しい文書を指す (HTTP 201 Created)

サイトの API を通じて新しいブログ投稿を作成しているとします。

PUT /new/post
Host: example.com
Content-Type: text/markdown

# My first blog post!

I made this through `example.com`'s API. I hope it worked.

サイトは投稿が公開されたことを確認する一般的な成功メッセージを返します。サーバーは Content-Location を使用して新しい投稿がどこにあるかを指定します。

HTTP/1.1 201 Created
Content-Type: text/plain; charset=utf-8
Content-Location: /my-first-blog-post

✅ Success!

トランザクションの結果の URL を示す

サイトの別のユーザーに送金するための <form> があるとします。

<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>

フォームが送信されると、サイトは取引の領収書を生成します。サーバーは Content-Location を使用して、将来のアクセスのために領収書の URL を示すことができます。

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…)

仕様

仕様書 タイトル
RFC 7231, セクション 3.1.4.2: Content-Location Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

ブラウザの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 ありIE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: silverskyvicto
最終更新者: silverskyvicto,