1

HTTP は Start-Line (Request-Line または Status-Line) の長さを制限しますか?

その場合、Request-Line が最大長よりも長い HTTP リクエストを受信したときに、どのステータス コード HTTP サーバーが応答する必要がありますか?

4

1 に答える 1

2

THE HTTP 1.1 RFC(2616)からの引用、

Request-Line はメソッド トークンで始まり、その後に Request-URI とプロトコル バージョンが続き、CRLF で終わります。要素は SP 文字で区切られます。最後の CRLF シーケンスを除いて、CR または LF は許可されません。

   Request-Line   = Method SP Request-URI SP HTTP-Version CRLF

これは、長さの制限を指定しません。

Request-URI 自体が長くなる可能性があり、rfc もそれについて次のように述べています。

HTTP プロトコルでは、URI の長さに事前の制限はありません。サーバーは、サービスを提供するリソースの URI を処理できなければならず (MUST)、無制限の長さの URI を処理できる必要があります (SHOULD)。サーバーが処理できる長さよりも URI が長い場合、サーバーは 414 (Request-URI Too Long) ステータスを返す必要があります (セクション 10.4.15 を参照)。

そのため、Request-URI には「長すぎる」ステータスが存在しますが、これは「このサーバーが処理するには長すぎる」ことを意味し、「仕様で許可されているよりも長い」という意味ではありません。

于 2013-03-23T13:09:34.477 に答える