MoChiwakiブログ

女性エンジニアがゆる~く書く備忘録ブログ 〜だいたいいつもつまづいている〜

GET/POST/SQLたちは制限されている!

GETでURL長すぎると落ちるから気をつけろ

HTTPプロトコルではURIの長さの制限はないらしいが、
ブラウザによって長さが違うらしい

以下ただネットで集めただけの内容

ブラウザ URL最大数
IE8 2083文字
IE9 5120byte
Safari なし(約1Mbyte)
Firefox なし(約1Mbyte)
chrome ?

URLは2000字以内が安全!!


ちなみにPOSTも上限がありました。
これはサーバーによって違うようですが、

TomcatではPOSTの1つのパラメータに10000個以上あると無視するらしいです。

情報: More than the maximum number of request parameters (GET plus POST) for a single request ([10,000]) were detected. Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector. Note: further occurrences of this error will be logged at DEBUG level. [火 8 04 18:56:25 JST 2015]

server.xmlプロトコルとか指定してるところに

maxPostSize="10485760"
maxParameterCount="20000"

とかで指定すれば上限増えるらしいです。
(↑でもあたし出来んかった!なんでや!)


もし行けたとしても
その後の試練が
あります。

soreha  

  SQL!!

URLが長くなるというのは
"GETでたくさん検索したい"
というのがまず考えられますよね。

検索するということはSQLも通過しますよね?

SQLにも文字制限があるという噂が…!

私が今回聞いたのはIN句。
なんとも1000個という制限があるとか。

いろいろ調べてみると、
OracleSQLではIN句に1000個という制限があります。

私がやってるのはMySQLだったんでよかったー
(ちなみにMySQLは100万個はできちゃうとか?!)
改修する予定がなくなりました( ゚∀゚ )ほっ

あ、他のSQLはみてないやw