[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

「GETメソッド」と「POSTメソッド」の違い

スポンサーリンク

それぞれの用語の意味


用語意味
GETメソッドホームページサーバさんに値を渡す方法のひとつで「値をURLにくっつけてサーバに送る」やり方
POSTメソッドホームページのサーバさんに値を渡す方法のひとつで「値を見えないところにくっつけてサーバに送る」やり方

似ているところ


どちらも、ホームページのサーバさん(Webサーバ)に値を渡すやり方です。


違うところ


GETメソッドは渡す値をURLの後ろにくっつけます。例えば

http://wa3.i-3-i.info?param1=value1&param2=value2

のような形です。
POSTメソッドは渡す値を人間様の目には見えないところにくっつけます。そのためURLは

http://wa3.i-3-i.info

のような形でになります。あまり長ったらしくはなりません。

例えばあなたがお手紙を送るとしましょう。前提として、送り先の住所がURLです。
封筒の宛先が書いてあるところに、ついでに内容も書いて送るのがGETメソッドです。内容を書いた紙を封筒の中に入れて送るのがPOSTメソッドになります。
宛先部分に内容が書いてあるGETメソッドは、郵便配達の人にも書いてある内容が読めてしまいます。POSTメソッドでは郵便配達の人は書いてある内容を(ズルをして封筒を開けてしまわない限りは)読めません。


個人的な使い分け


用語の使い分けではなく実際の使い分けですが、値をWebサーバさんに渡す必要がある場合は、できる限りPOSTメソッドを使うようにしています。POSTメソッドが使えない場合や、使うと不都合が生じるときのみGETメソッドで渡しています。
理由は「GETメソッドはPOSTメソッドと比べて渡せる情報量が少ない」「GETメソッドは渡した値が履歴に残る」の2点です。特に二番目の方が大きな理由ですが、順番に見ていきましょう。

GETメソッドはURLにくっつけて値を送ります。URLの長さの限界が、送れる値の量の限界です。POSTメソッドにも限界はありますが、今のところ、POSTメソッドの方がGETメソッドよりも多くの情報を送れるようです。これが「GETメソッドはPOSTメソッドと比べて渡せる情報量が少ない」です。
封筒の宛先部分に細々と文字を書くよりも、便箋に書いて封筒の中に入れて送った方が、たくさんの情報を伝えられるのと似たようなイメージですね。

また、GETメソッドはURLにくっつけて値を送ります。URLを見れば、渡した値が分かってしまいます。履歴としてそのまま残ってしまいますので、複数人で同じパソコンを使っている場合は、同じパソコンを使っている他の人に、渡した値が分かってしまいます。プロキシという仕組みではURLを記憶しておくので、場合によっては全然関係無い別の人にも渡した値を知られてしまいます。最悪の場合は、検索エンジンさんに載ってしまって、全世界の人に知られてしまうかもしれません。
特にパスワードを渡す場合は、絶対にGETメソッドを使わないでください
大事な情報は封筒の宛先部分に書くんじゃなくて、中に書けってことですね。

これがPOSTメソッドを優先的に使っている理由です。


スポンサーリンク