- 締切済み
URLで何文字送れます?
URLのあとに変数をつけて文字列など送ることが出来ますが 何文字までURLにのせておくることが出来るのでしょうか? 普通に試した場合かなりな量送れたのですが、正確な送信可能文字数などあれば知っておきたいと思っています。 またOKWEBなどの入力フォームもやはりURLでエンコードして送っているのでしょうか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- taseki
- ベストアンサー率66% (155/233)
> 文字数に制限なく送ることは出来ませんか? POSTメソッドを使えば制限なく送れます。 ただ、これはブラウザ側が送れるという話ですが、どんな場合でも受け取る側で何らかの制限はすべきです。
- SV576
- ベストアンサー率28% (2/7)
NN6では3000文字以上でも大丈夫みたいです。
- taseki
- ベストアンサー率66% (155/233)
ちなみに、HTML4の仕様では65536みたいですね。 http://www.w3.org/TR/html4/sgml/sgmldecl.html MozillaやFirefox、OperaなどはIEよりも最大文字数は多いらしいですが、正確なところはわかりません。 蛇足ですが、他の方もおっしゃっているように、今回は「送ることができる」文字数のご質問でしたが、「受け取ることができる」文字数はまた別なので、御注意。 掲示板などに不正なアンカーを書き込んで、他の閲覧者に別サイトにデータ送信させるというのもありますし、サーバー側、スクリプト側でも現実的な文字数制限など、対策しておくべきでしょう。
お礼
ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?
- FoggyMountain
- ベストアンサー率21% (79/372)
>ブラウザなどによって違うと思いますが、とりあえずIEでは最大2,083文字とのことです。 こんな長さのURLをまじめに受け取っていたら、Webサーバがダウンしたり、ログファイルがすぐに パンクしてしまいます。 実際、長いURLをWEBサーバに大量に送りつける攻撃方法があります。 Apacheなど定番のWEBサーバでは、受け付けるURLの長さを制限している事が多いです。 (たとえば256文字以下とか)
補足
ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?
- taseki
- ベストアンサー率66% (155/233)
> 上記bbbの部分が何文字まで送信可能か知りたかったのです。 それは少し難しいですね…。 GETは、あくまでもパラメーターを「URLの一部」として送ります。そしてURL全体のサイズが決まっています。 したがって、パラメータの部分はURLの最大長から実際の「URI」の長さを引いた長さで、さらに「bbb以外の部分」の長さを引いたのが、bbbの部分の最大長です。
補足
ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?
- taseki
- ベストアンサー率66% (155/233)
ブラウザなどによって違うと思いますが、とりあえずIEでは最大2,083文字とのことです。 http://support.microsoft.com/kb/208427/JA/ POSTには制限はありません(仕様上は)。 > またOKWEBなどの入力フォームもやはりURLでエンコードして送っているのでしょうか? <form~>タグにenctypeを指定しなければ、ブラウザが送るデータはすべてURLエンコードされます。GETでもPOSTでも。 ちなみに、URLエンコードというのは、URLの末尾に?aaa=bbb&ccc=ddd~など付けて送る方法(GET)のことではないです。念のため。
補足
URLエンコードは文字列を記号や英数字に変換することですね。上手く質問が出来ていませんでした。 ?aaa=bbb おっしゃる通り上記bbbの部分が何文字まで送信可能か知りたかったのです。
補足
ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?