Origin

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.

Origin リクエストヘッダーは、リクエストが発生したオリジン(スキーム、ホスト名、ポート番号)を示します。 例えば、ユーザーエージェントがページに含まれるリソース、または実行するスクリプトによってフェッチされるリソースをリクエストする必要がある場合、ページのオリジンがそのリクエストに含まれることがあります。

ヘッダー種別 リクエストヘッダー
禁止ヘッダー名 はい

構文

http
Origin: null
Origin: <scheme>://<hostname>
Origin: <scheme>://<hostname>:<port>

ディレクティブ

null

オリジンが「プライバシーに配慮した」ものであるか、HTML仕様で定義された不透明なオリジンである(具体的な事例は解説の節に掲載されています)。

<scheme>

使用されるプロトコル。 通常、 HTTP プロトコルまたはそのセキュアバージョンである HTTPS です。

<hostname>

サーバーのドメイン名 (仮想ホスティングの場合) または IP アドレス。

<port> 省略可

サーバーが待ち受けしている TCP ポート番号。 ポート番号が指定されていない場合、リクエストされたサービスの既定のポート番号(HTTP URL の場合は "80" など)が暗黙的に指定されます。

解説

Origin ヘッダーは Referer ヘッダーと似ていますが、パス全体が公開されるわけではなく、 null になることがある点が異なります。 これは、オリジン情報が機密または不要となる場合を除き、オリジンリクエストの「セキュリティコンテキスト」を提供するために使用されます。

大まかに言うと、ユーザーエージェントが Origin リクエストヘッダーを追加するのは以下のものです。

上記のルールにはいくつかの例外があります。例えば、オリジンを跨ぐ GET または HEAD リクエストが CORS モード外で行われた場合、 Origin ヘッダーは追加されません。

Origin ヘッダー値は様々な場合に null になることがあります(網羅的ではない)。

  • スキームが http, https, ftp, ws, wss, gopher のいずれでもないオリジン(blob, file, data を含む)。
  • 別オリジンの画像やメディアデータ(<img>, <video>, <audio> 要素の場合も含む)。
  • createDocument() を使用してプログラム的に作成された文書、 data: URL から生成された文書、または作成者の閲覧コンテキストを持たない文書。
  • オリジン間のリダイレクト。
  • iframeのサンドボックス属性が値 allow-same-origin を含んでいない場合。
  • ネットワークエラーとなったレスポンス。
  • Referrer-Policyno-referrer に設定され、cors 以外のリクエストモードが設定された場合(単純な形式の投稿など)。

メモ: null を返す可能性のあるケースについて、より詳しいリストが Stack Overflow の When do browsers send the Origin header? When do browsers set the origin to null? に掲載されています。

http
Origin: https://developer.mozilla.org
http
Origin: https://developer.mozilla.org:80

仕様書

Specification
The Web Origin Concept
# section-7
Fetch
# origin-header

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Origin

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
See implementation notes.
Has more compatibility info.

関連情報