[3] 状態行は、HTTPの版、SP、状態符号、 理由句、CRLF を順に連ねたものです >>2。
[4] 状態符号は応答メッセージの意味を決める3桁の整数です。
[5] 理由句は数値の状態符号に対応するテキストの説明を提供するものです >>2。
[7] HTTPの版は、送信者が対応するHTTPの版を示すものです。
[9] 構文上 SP の箇所は、空白1つ以上を区切りとみなして構文解析して構いません。 また、最初と CRLF 前の空白は無視して構いません。ここで空白は、 SP、HTAB、VT、FF、CR のことをいいます。 >>8
[33] 実際には IE も Firefox も Chrome も、 SP
のみを空白とみなすようです。 IE と Chrome
は複数の SP
も空白とみなします。
Firefox は SP
が複数あっても状態符号を正しく取得できますが、
理由句は (状態符号の前に SP
が複数あると)
おかしくなります。
[26] Chrome は、プロトコルの版と空白の後、0文字以上の数字列があれば、
それを状態符号とします。その後空白があれば無視し、残ったものを理由句とします。
(少なくても XHR の status
では) 231 以上なら、
231-1 がかわりに返されます。数字列がない場合、 200 OK
とみなされ、実際の残りの文字列は無視されます。
[28] (少なくても XHR では) Firefox は符号無し16ビット整数として扱い、 0 になるならかわりに 200 を返します。 IE は32ビット符号付き整数として扱います。 Firefox でも IE でも大きすぎると桁溢れします。
[29] Firefox でも IE でも、状態符号の後に空白がないと、 理由句がないものとして扱われます。
[30] Chrome でも IE でも Firefox でも、先導0はたくさんあっても正しく無視します。
[27] (少なくても Chrome の XHR は) プロトコルの版よりも前に空白やそれ以外の文字があると、すべて無視します。 プロトコルの版の後に空白、状態符号、理由句と解釈できるものがあれば、 そのように扱われます。 (プロトコルの版参照。)
[34] 理由句の末尾の空白は、 IE と Firefox ではそのまま保存されますが、 Chrome では除去されます。
[35] HTTPクライアントの中には、理由句が空文字列の時に正しく処理できず、 最初のヘッダーが理由句とみなされるなどおかしな動作をするものもあります。
[10] 改行については、メッセージの項を参照してください。
[13] 応答の最初の行が状態行として解釈できない場合、 HTTP/0.9 応答とみなされることとなります。
status
要素 (WebDAV)[21] DAV:
名前空間の status
要素は、 HTTP 状態行を表します >>19。
[20] RFC 2616 の状態行の定義を参照しており >>19、末尾に
CRLF
が含まれることとなっていますが、 RFC 4918 中の例示はすべて改行なしとなっており、
実際には改行は含めないのが意図と思われます。
[23] プロトコルの版は RFC 4918 の例示ではすべて HTTP/1.1 となっていますが、その決め方や解釈は明記されていません。
[18] status
要素は、 response
要素で使うことができ >>17、 href
要素で示される資源に関する状態を表します。
[16] status
要素は、 propstat
要素で使うことができ、 prop
要素に含まれる特性に関する状態を表します >>15。
[12] RFC 3507 - Internet Content Adaptation Protocol (ICAP) ( ( 版)) <http://tools.ietf.org/html/rfc3507#section-4.3.3>
[24] draft-singer-appsawg-mcast-url-00 - URLs and HTTP Response Forms for Multicast ( ( 版)) <https://tools.ietf.org/html/draft-singer-appsawg-mcast-url-00#section-6>