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

4. ステータス行 (Status Line)

レスポンスメッセージの最初の行はステータス行であり、プロトコルバージョン、スペース (SP)、ステータスコード、別のスペース、およびステータスコードを説明するテキストフレーズで終わる任意のテキストフレーズで構成されます。

status-line = HTTP-version SP status-code SP [ reason-phrase ]

ステータス行の文法規則では、各構成要素が単一の SP オクテットで区切られる必要がありますが、受信者は代わりに空白区切りの単語境界で解析し、行終端子を除いて、任意の形式の空白を SP セパレーターとして扱い、先行または後続の空白を無視してもかまいません (MAY)。そのような空白には、SP、HTAB、VT (%x0B)、FF (%x0C)、または裸の CR のうち 1 つ以上のオクテットが含まれます。ただし、寛容な解析は、メッセージの複数の受信者が存在し、それぞれが独自の堅牢性の解釈を持っている場合、レスポンス分割セキュリティ脆弱性を引き起こす可能性があります (第 11.1 節参照)。

status-code 要素は、クライアントの対応するリクエストを理解して満たそうとするサーバーの試みの結果を説明する 3 桁の整数コードです。受信者は、ステータスコードが受信者によって認識される場合はそのステータスコードに対して定義されたセマンティクスに照らして、または特定のコードが認識されない場合はそのステータスコードのクラスに従って、レスポンスメッセージの残りを解析および解釈します。

status-code    = 3DIGIT

HTTP のコアステータスコードは、ステータスコードのクラス、新しいステータスコードの定義に関する考慮事項、およびそのような定義を収集するための IANA レジストリとともに、[HTTP] の第 15 節で定義されています。

reason-phrase 要素は、数値ステータスコードに関連付けられたテキスト説明を提供する唯一の目的で存在します。これは主に、テキストクライアントと対話的により頻繁に使用されていた初期のインターネットアプリケーションプロトコルへの配慮からです。

reason-phrase  = 1*( HTAB / SP / VCHAR / obs-text )

クライアントは、reason-phrase の内容を無視すべきです (SHOULD)。これは信頼できる情報チャネルではないためです (特定のロケール用に翻訳されたり、中継装置によって上書きされたり、HTTP の他のバージョンを介してメッセージが転送されるときに破棄される可能性があります)。サーバーは、reason-phrase が存在しない場合でも、status-code と reason-phrase を区切るスペースを送信しなければなりません (MUST) (つまり、ステータス行はスペースで終わります)。