• 締切済み

URLで何文字送れます?

URLのあとに変数をつけて文字列など送ることが出来ますが 何文字までURLにのせておくることが出来るのでしょうか? 普通に試した場合かなりな量送れたのですが、正確な送信可能文字数などあれば知っておきたいと思っています。 またOKWEBなどの入力フォームもやはりURLでエンコードして送っているのでしょうか?

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.6

> 文字数に制限なく送ることは出来ませんか? POSTメソッドを使えば制限なく送れます。 ただ、これはブラウザ側が送れるという話ですが、どんな場合でも受け取る側で何らかの制限はすべきです。

  • SV576
  • ベストアンサー率28% (2/7)
回答No.5

NN6では3000文字以上でも大丈夫みたいです。

noname#20806
質問者

補足

ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?

  • taseki
  • ベストアンサー率66% (155/233)
回答No.4

ちなみに、HTML4の仕様では65536みたいですね。 http://www.w3.org/TR/html4/sgml/sgmldecl.html MozillaやFirefox、OperaなどはIEよりも最大文字数は多いらしいですが、正確なところはわかりません。 蛇足ですが、他の方もおっしゃっているように、今回は「送ることができる」文字数のご質問でしたが、「受け取ることができる」文字数はまた別なので、御注意。 掲示板などに不正なアンカーを書き込んで、他の閲覧者に別サイトにデータ送信させるというのもありますし、サーバー側、スクリプト側でも現実的な文字数制限など、対策しておくべきでしょう。

noname#20806
質問者

お礼

ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?

回答No.3

>ブラウザなどによって違うと思いますが、とりあえずIEでは最大2,083文字とのことです。 こんな長さのURLをまじめに受け取っていたら、Webサーバがダウンしたり、ログファイルがすぐに パンクしてしまいます。 実際、長いURLをWEBサーバに大量に送りつける攻撃方法があります。 Apacheなど定番のWEBサーバでは、受け付けるURLの長さを制限している事が多いです。 (たとえば256文字以下とか)

noname#20806
質問者

補足

ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

> 上記bbbの部分が何文字まで送信可能か知りたかったのです。 それは少し難しいですね…。 GETは、あくまでもパラメーターを「URLの一部」として送ります。そしてURL全体のサイズが決まっています。 したがって、パラメータの部分はURLの最大長から実際の「URI」の長さを引いた長さで、さらに「bbb以外の部分」の長さを引いたのが、bbbの部分の最大長です。

noname#20806
質問者

補足

ありがとうございます。 ではフォームでテキスト入力したデータを「URLの一部」として送る場合は文字数を考えた方が良いですね。 文字数に制限なく送ることは出来ませんか?

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

ブラウザなどによって違うと思いますが、とりあえず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)のことではないです。念のため。

noname#20806
質問者

補足

URLエンコードは文字列を記号や英数字に変換することですね。上手く質問が出来ていませんでした。 ?aaa=bbb おっしゃる通り上記bbbの部分が何文字まで送信可能か知りたかったのです。