ブラウザ依存ですか?また、Web スタックが異なれば、要求から取得できるデータ量の制限も異なりますか?
4 に答える
RFC 2616(Hypertext Transfer Protocol — HTTP / 1.1)は、クエリ文字列の長さに制限はないと述べています(セクション3.2.1)。RFC 3986(Uniform Resource Identifier — URI)にも制限はないと記載されていますが、DNSの制限のためにホスト名が255文字に制限されていることを示しています(セクション2.3.3)。
仕様では最大長は指定されていませんが、実際の制限はWebブラウザとサーバーソフトウェアによって課せられます。残念ながら元のサイトでは利用できなくなった(日陰のように見えるローンサイトにつながる)が、Internet ArchiveOfBoutell.comでまだ見つけることができる調査に基づいています。
Microsoft Edge(ブラウザ)
制限は約81578文字のようです。MicrosoftEdgeのURLの長さの制限を参照してくださいChrome 64k文字を超えるとURLの表示を
停止しますが、10万文字を超える可能性があります。それ以上のテストは行われませんでした。Firefox(ブラウザ)
65,536文字を超えると、WindowsFirefox1.5.xのロケーションバーにURLが表示されなくなります。ただし、より長いURLは機能します。100,000文字を超えると、それ以上のテストは行われませんでした。Safari(ブラウザ)
少なくとも80,000文字が機能します。それ以上のテストは試みられませんでした。Opera(ブラウザ)
少なくとも190,000文字が動作します。190,000文字後にテストを停止しました。Opera 9 for Windowsは、190,000文字でも、完全に編集可能、コピー可能、貼り付け可能なURLをロケーションバーに表示し続けました。Microsoft Internet Explorer(ブラウザ)
Microsoftは、Internet ExplorerのURLの最大長は2,083文字であり、URLのパス部分は2,048文字以下であると述べています。これより長いURLを使用しようとすると、InternetExplorerで明確なエラーメッセージが表示されました。Apache(サーバー)
初期のWebブラウザーでの最大URL長を測定しようとすると、サーバーのURL長の制限が約4,000文字になり、その後、Apacheは「413EntityTooLarge」エラーを生成します。Red Hat EnterpriseLinux4にある現在の最新のApacheビルドが使用されました。Apacheの公式ドキュメントには、リクエストの個々のフィールドに対する8,192バイトの制限についてのみ記載されています。Microsoftインターネットインフォメーションサーバー(サーバー)
デフォルトの制限は16,384文字です(はい、MicrosoftのWebサーバーはMicrosoftのWebブラウザーよりも長いURLを受け入れます)。これは構成可能です。Perl HTTP ::デーモン(サーバー)
最大8,000バイトが機能します。PerlのHTTP::Daemonモジュールを使用してWebアプリケーションサーバーを構築する場合、すべてのHTTP要求ヘッダーの合計サイズに16,384バイトの制限が発生します。これには、POSTメソッドのフォームデータやファイルのアップロードなどは含まれませんが、URLは含まれます。実際には、URLが8,000文字よりも大幅に長い場合、これにより413エラーが発生しました。この制限は簡単に取り除くことができます。Daemon.pmで16x1024のすべての出現箇所を探し、それらをより大きな値に置き換えます。もちろん、これによりサービス拒否攻撃への露出が増加します。
異なるWebスタックは、異なる長さのhttpリクエストをサポートします。経験から、Safariの初期のスタックは4000文字しかサポートしておらず、USER-STATEのためにASP.netページを処理するのが困難であったことを知っています。これはPOSTの場合でもあるため、ブラウザをチェックしてスタック制限を確認する必要があります。新しいブラウザでも限界に達するかもしれないと思います。思い出せませんが、そのうちの1つ(IE6だと思います)には16ビットの制限があり、32,768かそこらでした。
2048文字
公式にはRFC 2616で指定された制限はありませんが、多くのセキュリティ プロトコルと推奨事項では、サーバー上のmaxQueryStrings を最大文字数制限1024に設定する必要があると述べています。クエリ文字列を含む URL 全体は、最大2048文字に設定する必要があります。引用符
100 文字を超えるURL は長すぎると見なされます。URL が長すぎると、使いやすさと検索エンジンの両方が損なわれる可能性があります。キーワードを含めることで得られる潜在的なメリットは、 URL テキスト全体の割合が小さいため、薄められてしまいます。