- 各ブラウザの URL の最大長はどれくらいですか?
- 最大 URL 長は HTTP 仕様の一部ですか?
ベストアンサー1
短い回答 - 事実上の制限は 2000 文字
URL を 2000 文字未満に抑えると、クライアントとサーバーのソフトウェアのほぼすべての組み合わせ、およびすべての検索エンジンで機能します。
特定のユースケースでは、より長い URL を検討できます。検索エンジン以外では、2023 年現在、8000 文字で幅広い互換性が提供されます。詳細については、以下をお読みください...
より長い答え - まず、標準...
1999年に公開されたオリジナルのHTTP/1.1仕様は、RFC 2616、セクション3.2.1で次のように述べています。
HTTP プロトコルは、URI の長さに事前の制限を設けていません。サーバーは、提供するリソースの URI を処理できなければなりません。また、そのような URI を生成できる GET ベースのフォームを提供する場合は、無制限の長さの URI を処理できる必要があります。URI がサーバーが処理できる長さよりも長い場合、サーバーは 414 (Request-URI Too Long) ステータスを返す必要があります (セクション 10.4.15 を参照)。
2014年に、実際の使用状況に合わせて仕様が更新され、廃止されました。RFC7230 の翻訳; それは次のことを示唆します:
実際には、リクエスト ラインの長さに関してさまざまなアドホック制限が存在します。すべての HTTP 送信者と受信者は、少なくとも 8000 オクテットのリクエスト ラインの長さをサポートすることが推奨されます。
2022 年には、HTTP バージョン (HTTP/1.1、HTTP/2、HTTP/3) とは独立して HTTP セマンティクスを定義する新しいアップデートが公開されました。RFC 9110、セクション 4.1はこう言う。
すべての送信者と受信者は、プロトコル要素の長さが少なくとも 8000 オクテットの URI をサポートすることが推奨されます。ただし、一部の構造とワイヤ上の表現 (たとえば、HTTP/1.1 のリクエスト ライン) は、場合によっては必然的に大きくなることに注意してください。
...そして現実
基準ではそう言っています。現実には、boutell.com より(リンクはインターネット アーカイブのバックアップに移動します) では、個々のブラウザーとサーバーの実装が何をサポートするかについて説明しました。概要は次のとおりです。
極端に長い URL は通常、間違いです。2,000文字を超える URL は、ほとんどの一般的な Web ブラウザでは機能しません。サイトを大多数のインターネット ユーザーに公開する場合は、このような URL を使用しないでください。
(注: これは2006 年に書かれた記事からの引用ですが、2015 年には IE の使用が減少しているため、長い URL は大多数のユーザーにとって機能するようになりました。ただし、IE にはまだ制限があります...)
Internet Explorer の制限...
IE8の最大URL長は2083文字です、そしてそれはIE9にも同様の制限がある。
IE10 をテストしたところ、アドレス バーは 2083 文字までしか受け付けません。これより長い URL をクリックすることはできますが、アドレス バーにはこのリンクの 2083 文字しか表示されません。
ありますIE Internals ブログの素晴らしい記事これは、このことの背景の一部になります。
IE11 がより長い URL をサポートするという報告はまちまちです (以下のコメントを参照)。一部の人が問題を報告していることを考慮すると、一般的なアドバイスは依然として有効です。
検索エンジンは 2048 文字未満の URL を好みます...
注意してくださいサイトマップ プロトコルは、サイトが利用可能なページを検索エンジンに通知できるようにするものですが、URL の文字数は 2048 文字に制限されています。サイトマップを使用する場合は、制限が決まっています。(Calin-Andrei Burloiu の回答下に)
2010年には、検索エンジンがクロールしてインデックスするURLの最大長制限は2047文字で、サイトマッププロトコルの仕様と一致しているようです。しかし、Google検索結果このツールは 1855 文字を超える URL には対応できませんでした。
CDNには限界がある
CDN は URI の長さにも制限を設けており、414 Too long request
これらの制限に達すると を返します。例:
(コメント欄で情報を提供してくれたtimrs2998に感謝します)
追加のブラウザまとめ
私は、非常に大きな構成のApache 2.4サーバーで次のテストを行いました。制限要求ラインそして制限リクエストフィールドサイズ。
Browser Address bar document.location
or anchor tag
------------------------------------------
Chrome 32779 >64k
Android 8192 >64k
Firefox >300k >300k
Safari >64k >64k
IE11 2047 5120
Edge 16 2047 10240
参照この答え以下はMatas Vaitkeviciusより。
この情報は最新ですか?
これはよくある質問ですが、元の調査は約 14 年前のものですので、最新の情報に更新するように努めます。2023年 9 月現在、このアドバイスは依然として有効です。最新のブラウザはより長い URL をサポートしますが、検索エンジンはサポートしていないため、見出しの数字は「2000 文字未満」のままです。