ホームページ  >  記事  >  バックエンド開発  >  HTTP プロトコルによる URI 長、POST データ長、COOKIE 長の制限

HTTP プロトコルによる URI 長、POST データ長、COOKIE 長の制限

WBOY
WBOYオリジナル
2016-06-20 13:00:591296ブラウズ

HTTP プロトコルでは、URI 長、POST データ長、COOKIE 長が制限されます

1. URL の長さの制限


HTTP1.1 プロトコルでは URL の長さに制限はありません。RFC プロトコルで説明されているように、HTTP プロトコルでは、許容される任意の長さの URI を処理できなければなりません。サーバーが長すぎる URI を処理できない場合は、414 ステータス コードを返す必要があります。
HTTP プロトコルではこれが規定されていますが、Web サーバーブラウザ の両方には、URI に関する独自の長さの制限があります。
サーバーの制限: 私がよく使用するサーバーの種類は、Nginx と Tomcat です。URL の長さの制限については、nginx の構成パラメーターであるlarge_client_header_buffers と、要求の構成を制御することによって制限されます。 TomcatのパラメータはmaxHttpHeaderSizeで、自分で設定できます。
ブラウザの制限: 各ブラウザには URL の長さにも制限があります。次に、いくつかの一般的なブラウザの URL の長さの制限を示します: (単位: 文字)

IE : 2803

Firefox:65536

クロム:8182

サファリ:80000

オペラ:190000


get リクエストの場合、URL の長さ制限内でリクエストされるパラメータの数に制限はありません。

2. 投稿データの長さの制限


Post データの長さの制限は、URL の長さの制限と同様です。HTTP プロトコルでは長さの制限は指定されておらず、サーバー側で http リクエスト ヘッダーの最大長を構成することで実装できます。

3. Cookie の長さの制限


Cookie の長さ制限は、いくつかの側面で要約できます。
(1) ブラウザーで許可されるドメインごとの Cookie の最大数。私自身はテストしていませんが、インターネット上にある情報はおそらく次のとおりです

IE: 当初は 20、後に 50 にアップグレードされました

Firefox: 50

オペラ:30

クロム: 180

Safari: 無制限


Cookie の数が制限を超えた場合のブラウザの動作: IE と Opera は LRU アルゴリズムを使用して、古いクッキーや使用頻度の低い Cookie を消去します。一方、Firefox の動作は、特定の Cookie の値をランダムに除外します。もちろん、どのような戦略であっても、Cookie の数がブラウザで許可されている範囲を超えないようにしてください。
(2) ブラウザが許可する各Cookieの最大長

Firefox および Safari: 4079 バイト

オペラ:4096 バイト

IE:4095 バイト


(3) サーバー内の HTTP リクエスト ヘッダーの長さの制限。 Cookie は各 http リクエストのヘッダーに添付されてサーバーに渡されるため、サーバーのリクエスト ヘッダーの長さにも影響されます。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。