625

ブラウザ依存ですか?また、Web スタックが異なれば、要求から取得できるデータ量の制限も異なりますか?

4

4 に答える 4

1080

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のすべての出現箇所を探し、それらをより大きな値に置き換えます。もちろん、これによりサービス拒否攻撃への露出が増加します。

于 2009-05-01T19:53:30.400 に答える
1

異なるWebスタックは、異なる長さのhttpリクエストをサポートします。経験から、Safariの初期のスタックは4000文字しかサポートしておらず、USER-STATEのためにASP.netページを処理するのが困難であったことを知っています。これはPOSTの場合でもあるため、ブラウザをチェックしてスタック制限を確認する必要があります。新しいブラウザでも限界に達するかもしれないと思います。思い出せませんが、そのうちの1つ(IE6だと思います)には16ビットの制限があり、32,768かそこらでした。

于 2009-05-01T19:52:11.243 に答える
1

2048文字

公式にはRFC 2616で指定された制限はありませんが、多くのセキュリティ プロトコルと推奨事項では、サーバー上のmaxQueryStrings を最大文字数制限1024に設定する必要があると述べています。クエリ文字列を含む URL 全体は、最大2048文字に設定する必要があります。引用符

100 文字を超えるURL は長すぎると見なされます。URL が長すぎると、使いやすさと検索エンジンの両方が損なわれる可能性があります。キーワードを含めることで得られる潜在的なメリットは、 URL テキスト全体の割合が小さいため、薄められてしまいます。

于 2021-05-05T14:16:47.833 に答える