メインコンテンツまでスキップ

7. The HTTP Origin Header Field (HTTP Originヘッダーフィールド)

7. The HTTP Origin Header Field (HTTP Originヘッダーフィールド)

このセクションでは, HTTP Originヘッダーフィールド (header field) を定義します。

7.1 Syntax (構文)

Originヘッダーフィールドには次の構文があります:

origin              = "Origin:" OWS origin-list-or-null OWS
origin-list-or-null = %x6E %x75 %x6C %x6C / origin-list
origin-list = serialized-origin *( SP serialized-origin )
serialized-origin = scheme "://" host [ ":" port ]
; <scheme>, <host>, <port> from RFC 3986

7.2 Semantics (意味論)

HTTPリクエストに含まれる場合, Originヘッダーフィールドは, ユーザーエージェントにリクエストを発行させた生成元 (origin) を示します, これは, ユーザーエージェントにリクエストを発行させたAPIによって定義されます。

例えば, 生成元に代わってスクリプトを実行するユーザーエージェントを考えてみましょう。これらのスクリプトの1つがユーザーエージェントにHTTPリクエストを発行させた場合, ユーザーエージェントはOriginヘッダーフィールドを使用して (MAY), スクリプトがユーザーエージェントにリクエストを発行させたときに実行していたセキュリティコンテキスト (security context) をサーバーに通知できます。

場合によっては, 複数の生成元がユーザーエージェントにHTTPリクエストを発行させることに寄与します。これらの場合, ユーザーエージェントはOriginヘッダーフィールドにすべての生成元をリストすることができます (MAY)。例えば, HTTPリクエストが最初に1つの生成元によって発行され, 後で別の生成元によってリダイレクトされた場合, ユーザーエージェントは2つの生成元がユーザーエージェントにリクエストを発行させることに関与したことをサーバーに通知できます (MAY)。

7.3 User Agent Requirements (ユーザーエージェント要件)

ユーザーエージェントは, 任意のHTTPリクエストにOriginヘッダーフィールドを含めることができます (MAY)。

ユーザーエージェントは, 任意のHTTPリクエストに複数のOriginヘッダーフィールドを含めてはなりません (MUST NOT)。

ユーザーエージェントが「プライバシー機密 (privacy-sensitive)」コンテキストからHTTPリクエストを発行する場合は常に, ユーザーエージェントはOriginヘッダーフィールドに値 "null" を送信しなければなりません (MUST)。

注意: このドキュメントは, プライバシー機密コンテキストの概念を定義していません。HTTPリクエストを生成するアプリケーションは, コンテキストをプライバシー機密として指定して, ユーザーエージェントがOriginヘッダーフィールドを生成する方法に制限を課すことができます。

Originヘッダーフィールドを生成する際, ユーザーエージェントは次の要件を満たさなければなりません (MUST):

  • 文法内の各 serialized-origin 生成規則は, 生成元のASCIIシリアライズ (ascii-serialization) でなければなりません (MUST)。

  • 文法内で2つの連続する serialized-origin 生成規則が同一であってはなりません。特に, ユーザーエージェントが2つの連続するシリアライズされた生成元を生成する場合, ユーザーエージェントは2番目のものを生成してはなりません (MUST NOT)。