HTTP GET リクエストの長さ制限

今俺が扱っているシステムでは仕方なくGETリクエストを出している箇所がある。
最初はシンプルな物しかなかったので長さなんか気にしてなかったけど、だんだんゴージャスになっていってパラメータが増えてきたので、何バイトまで送ることが出来るか確認しておく。

HTTP プロトコルでは、URI の長さにどんな制限も設けていない。 サーバは、自身が持つどんなリソースの URI も扱えなければならないし、もしそのような URI を生成する GET ベースのフォームを用意するなら、無制限の長さの URI を扱えるべきである。
もし、その URI がサーバが処理できるものよりも長ければ、サーバは 414 (Request-URI Too Long) ステータスを返すべきである (section 10.4.15 参照)。

注: いくつかの古いクライアントやプロクシ実装は 255 バイトを超える長さを持つ URI を適切にサポートしていないかもしれないので、サーバはそのような URI に頼る場合は注意を払うべきである。

RFCでは長さの制限をしていないんだな。じゃあ実装はどうなってるんだ?ってことで実験。
window.open("http://www.example.com", "example", "left=0,top=0,width=1014,height=692,scrollbars=yes, status=yes, resizable=yes");
の「"http://www.example.com"」を「"http://www.example.com?hoge=12345678901234567890..."」と増やしていってみた。
そのGETリクエストの送信/受信をプロキシサーバーで確認して、送信できているか確認する。

まず、IEは5.5・6.0共に2047バイトまで送信できることが確認できた(どちらもOSはWindows2000)。それを超えた場合は、IEが送信する文字列の後ろが端折られる
次に、Firefox 1.0(OSはWindows2000)はどうかな?と思って試してみるが…む、むぅ…制限無いんじゃないか?110,000バイトまで送信できることを確認して、実験終了。すごいなFirefox