GET リクエストの長さに制限はありますか?
6 に答える
RFCにはありませんが、実際には制限があります。
HTTP プロトコルでは、URI の長さに事前の制限はありません。サーバーは、サービスを提供するリソースの URI を処理できなければならず (MUST)、無制限の長さの URI を処理できる必要があります (SHOULD)。サーバーが処理できる長さよりも URI が長い場合、サーバーは 414 (Request-URI Too Long) ステータスを返す必要があります (セクション 10.4.15 を参照)。
注: 一部の古いクライアントまたはプロキシの実装ではこれらの長さが適切にサポートされていない可能性があるため、サーバーは 255 バイトを超える URI の長さに依存することに注意する必要があります。
この記事はそれをかなりうまくまとめています
概要: RFC には制限が指定されていないため、実装に依存します。最大 2000 文字 (IE の制限) を使用しても安全です。この長さに近い場合は、その長さの URI が本当に必要であることを確認する必要があります。別の設計でそれを回避できる可能性があります。
URI は、データの送信に使用される場合でも読み取り可能である必要があります。
仕様では、HTTP Get 要求の長さを制限していませんが、さまざまなブラウザーが独自の制限を実装しています。たとえば、Internet Explorer には 2083 文字で実装された制限があります。
W3C はこれを神話として明確に否定しました
setFixedLengthStreamingMode(int) に contentLength パラメーターを指定すると、HTTP 要求本文の固定長を設定できます。