1. ホーム
  2. http

[解決済み] ブラウザによって異なるURLの最大長とは?

2022-03-13 05:55:48

質問

ブラウザによって異なるURLの最大長とは?ブラウザによって違うのですか?

URLの最大長は、HTTPの仕様に含まれているのですか?

どのように解決するのですか?

短い回答 - 事実上の2000文字制限

URLを2000文字以内に収めれば、クライアントとサーバーのソフトウェアの組み合わせに関わらず、事実上動作するようになります。

特定のブラウザをターゲットにしている場合、具体的な制限については以下を参照してください。

長い回答 - まず、規格について...

RFC 2616 (Hypertext Transfer Protocol HTTP/1.1) 3.2.1項には次のように書かれています。

HTTPプロトコルは の長さには先験的な制限があります。 URIを作成します。サーバーは、以下のことを処理できなければならない(MUST)。 は、提供するあらゆるリソースのURIを示します。 のURIを扱えるようにすべきです。 を提供する場合、その長さは無制限です。 を生成しうるGETベースのフォーム そのようなURIは サーバーは 414 (Request-URI Too Long)ステータスです。 URIがサーバーの許容量を超えている を処理することができる(10.4.15 節参照)。

そのRFCは、次のように時代遅れになっています。 RFC7230 これは、HTTP/1.1仕様のリフレッシュです。これはHTTP/1.1仕様を更新したもので、同様の文言が含まれていますが、さらに次のような提案も行っています。

<ブロッククオート

リクエスト行の長さに関する様々なアドホックな制限は、実際に見受けられます。 を実践しています。すべてのHTTP送信者と受信者は、次のことを行うことが推奨されます(RECOMMENDED)。 は、最低でも8000オクテットのリクエストライン長をサポートしています。

...そして現実は

それが、この 規格 と言っています。については 現実 の記事がありました。 ブテルドットコム (link goes to Internet Archive backup)で、個々のブラウザやサーバーの実装がどのようにサポートされるかを論じています。その要旨は

<ブロッククオート

極端に長いURLは、通常 の間違いです。 2,000文字以上の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 の SERP ツールは1855文字以上のURLには対応しない。

CDNには限界がある

また、CDNはURIの長さに制限を課しており、URIの長さに応じて 414 Too long request に達したときなどです。

(この情報をコメントで提供してくれたtimrs2998に感謝します)

追加ブラウザまとめ

Apache 2.4サーバーに非常に大きな リミットリクエストライン リミットリクエストフィールドサイズ .

Browser     Address bar   document.location
                          or anchor tag
------------------------------------------
Chrome          32779           >64k
Android          8192           >64k
Firefox          >64k           >64k
Safari           >64k           >64k
IE11             2047           5120
Edge 16          2047          10240

参照 この回答 Matas Vaitkeviciusさんからのコメントです。

この情報は最新のものですか?

これはよくある質問ですが、元の研究が14年前のものなので、最新の情報を提供するように努めます。 2021年1月 というアドバイスはまだ有効です。IE11が長いURLを受け入れる可能性があるとしても、古いIEがどこにでもインストールされていることと、検索エンジンの制限から、2000文字以下にすることが一般的な方針として最適であると言えるでしょう。