URLの最大長制限、URL検証に関する関連情報検証
Alipay インターフェイスの開発とデバッグ中に、Alipay インターフェイスの URL が非常に長く、以前に想像していた 255 文字よりもはるかに大きいことに突然気づきました。早速検索して検証してみたところ、私の理解は以下の通りです
URL は 255 バイトを超えてはいけないという記述は存在し、RFC2616 で言及されています:
コードをコピーします コードは次のとおりです:
HTTP プロトコルは、URI の長さに事前の制限を設けません。サーバーは、提供するリソースの URI を処理できなければなりません (MUST)。サーバーが、制限のない GET ベースのフォームを提供する場合は、無制限の長さの URI を処理できる必要があります (SHOULD)。 URI がサーバーで処理できるよりも長い場合、サーバーは 414 (Request-URI Too Long) ステータスを返す必要があります (セクション 10.4.15 を参照)。
注: 一部の古いクライアントまたはプロキシ実装ではこれらの長さを適切にサポートしていない可能性があるため、サーバーは
255 バイトを超える URI の長さに依存することに注意する必要があります。
255bytes のステートメントも互換性上の理由からであることは、前の点からわかります。実際、最新のブラウザには次のような制限があります:
コードをコピーします コードは次のとおりです:
Microsoft Internet Explorer (ブラウザ)
Microsoft は、Internet Explorer の URL の最大長は 2,083 文字であり、URL のパス部分は 2,048 文字以下であると述べています。私のテストでは、これより長い URL を使用しようとすると、Internet Explorer で明確なエラー メッセージが生成されました。
Firefox (ブラウザ)
65,536 文字を超えると、Windows Firefox 1.5.x では URL が表示されなくなります。ただし、100,000 文字を超えるとテストを中止しました。
Safari (ブラウザ)
少なくとも 80,000 文字は機能します。80,000 文字を超えた時点でテストを中止しました。
オペラ (ブラウザ)
少なくとも 190,000 文字は機能します。Windows 版 Opera 9 では、190,000 文字でも完全に編集可能、コピーおよび貼り付け可能な URL が表示され続けたので、テストを中止しました。
Apache (サーバー)
Web ブラウザーで URL の最大長を測定しようとした初期の試みでは、サーバー URL の長さの制限である約 4,000 文字に達し、その後、Apache で「413 Entity Too Large」エラーが発生しました。Red で見つかった最新の Apache ビルドを使用しました。 Hat Enterprise Linux 4。Apache の公式ドキュメントでは、リクエストの個々のフィールドの 8,192 バイト制限についてのみ言及しています。
マイクロソフト インターネット インフォメーション サーバー
デフォルトの制限は 16,384 文字です (はい、Microsoft の Web サーバーは Microsoft の Web ブラウザよりも長い URL を受け入れます。これは構成可能です)。
Perl HTTP::デーモン (サーバー)
Perl の HTTP::Daemon モジュールを使用して Web アプリケーション サーバーを構築している場合は、すべての HTTP リクエスト ヘッダーの合計サイズに 16,384 バイトの制限が適用されます。これには、POST メソッドのフォーム データ、ファイルのアップロードなどは含まれません。ですが、実際には、URL が 8,000 文字を大幅に超えると 413 エラーが発生します。この制限は、Daemon.pm で出現するすべての 16×1024 を簡単に削除できます。もちろん、値を大きくすると、サービス拒否攻撃にさらされる可能性が高まります。
一部の記事では、 の href 属性として使用する場合、URL は 1024 バイトを超えることができないと述べられていますが、これは詳細には検証されていません
要約すると、URL は長すぎることには適していません。これは最後の手段ではありません。POST を使用することを検討してください (約 2M に関連するはずです)。サーバーと設定)。さらに、このような長い URL は、アクセスしたり保存したりするときに非常に不親切です (一部の記事では、一部のブラウザでは超長いアドレスを保存するときに問題が発生することも述べられています)。もちろん、データベース フィールド設定は以前も 255 バイトとして扱われていましたが、今後はそれを拡張することを検討することをお勧めします。
http://www.bkjia.com/PHPjc/932078.html
www.bkjia.com
本当http://www.bkjia.com/PHPjc/932078.html技術記事 URL の最大長制限に関する関連情報の検証 Alipay インターフェースを開発およびデバッグしているときに、Alipay インターフェースの URL が非常に長く、以前考えていた 255 文字よりもはるかに大きいことに気づきました...