Internet Explorerで使用できるURLの長さに制限があるのは有名な話です。
その他ブラウザーにも制限はあり、下記Webサイトを見ると、よくまとめられているので分かりやすいかと思います。
- Impose a URL length limit in Chrome
- https://docs.google.com/document/d/1G_VSSmud0zzxpVajOAtWPXbnsp1T3CZd5kU5nWotSrQ/edit?pli=1
- WWW FAQs: What is the maximum length of a URL?
- http://www.boutell.com/newfaq/misc/urllength.html
早い話がInternet Explorer以外はあまり長さを気にする必要が無い、ということですね(もちろん、サーバー側の制限は考慮する必要がありますが)。
それでは新しく登場したMicrosoft Edgeはどうなのか!?
さっそく調べてみることにしました。
Microsoft Edgeで使用可能なURLの文字数
調べるにあたって、実際に長いURLを用意しました。
まず2083文字のURLですが、下図の通り問題なく表示されました。
ダミーテキストジェネレータで作成した5000文字ほどの文字列をGETしてみましたが、これも問題なく表示されました。
ただし、上図の通りアドレス欄のURLは正しく表示されていません。
そこで、2135文字のリンクをアドレス欄に貼り付けようとしたところ、下図の通り2083文字までしか入力できませんでした。
Edgeのアドレス欄には何文字まで入力できるのか?
まずは簡単にテストページにアクセスできるよう、短縮URLを用意しました。
- 2000文字:http://goo.gl/1epJ4c
- 2083文字:http://goo.gl/WrJ9h8
- 2084文字:http://goo.gl/xXNR8Y
- 2135文字:http://goo.gl/mNOOcY
上記短縮URLを使って2135文字のページを開いたところ、表示は問題なかったのですが、やはりアドレス欄には正しいURLが表示されていません(href属性の値が表示される状態)。
しかし、2084文字のリンクは正しくURLが表示されました。
ここで気になるのが、何文字からEdgeのアドレス欄は正しく表示されなくなるのか?ということ。
下記のようなリンクを用意して調べることにしました。
その結果、アドレス欄のURLが正しく表示されなくなるのは2085文字からということが分かりました。
テスト結果
上記テストをまとめると、EdgeのURL制限については下記のことが分かりました。
- アドレス欄に入力できるのは2083文字まで。
- アドレス欄に正しくURLが表示されるのは2084文字まで。
- 2085文字以上であってもGET可能であるが、アドレス欄には正しいURLが表示されない。
うーん。なんだかよく分からない仕様です。
ただ、私が試した限りでは、上記のようにアドレス欄に正しいURLが表示されないだけでなく、インターネットショートカットも動かなくなる問題も発生しましたので、長すぎるURLは使わない方が無難だと思います。
GETでパラメーターを渡すにしても、文字量が多くなる場合は、素直にPOSTした方が良いでしょう。
― 以上、Microsoft EdgeのURL長に関する実験でした。
ちなみに、Microsoft Edge: Get Window URL and Title – Stack OverflowでGuy Barker氏が書かれているUIAのコード(Interop・UIAutomationClient.dll使用)は下図の通り正しくURLを取得しました。
この記事へのコメントはありません。