宇宙一簡単なGETメソッドとPOSTメソッドの違い

2015年3月12日

th_GD150GETメソッドとPOSTメソッドの大きな違いをわかりやすく解説。あっという間に読めて何だかわかった気になるのでオススメの記事ですよ。そもそもGETメソッドとPOSTメソッドって何?というあなたにも。WEBサーバーへリクエストを送るという意味ではどっちでもいいんじゃない?というような方にも読んでいただきたい内容となっています。

GETメソッドとPOSTメソッドの大きな違い

前回PythonでWEBサーバーを立てましたよねその時のアドレス「http://127.0.0.1」というのはループバックアドレスといって自分自身を表しているアドレスになっています。後ろについていた「:8000」というのはポートですから、http://127.0.0.1:8000というリクエストを送ってると考えてみてください。

GETメソッドと言うのは普段Googleで検索するときにも必ず出てきています。

スクリーンショット 2015-03-11 13.58.23

例えば上記のようにPythonと検索してみましょう。アドレスバーには以下のように出るはずです。

アドレスバーGET


https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=Python

この #q=Python これがGETメソッドとPOSTメソッドの大きな違いです。クエリを発行してそしてそれがURLに表示される。それがGETメソッドとなります。そのため大きなクエリを渡すには限界がありますよね。そこでPOSTメソッドが登場するわけです。GETメソッドはパスを指定したリクエストを発行するために使うと覚えておくとよいでしょう。

WEBサーバー上で動いているプログラムの場合はパスの後ろにクエリが追加される形になりますね。複数組み合わせのペアがある場合は & を使います。Wordpressを使っているとアドレスバーをじっくり見てみるのも面白いと思いますよ。

一方POSTメソッドというのはWEBサーバーに対してデータを送信するときに使います。GETメソッドと違い、URLにクエリを渡さなくて良いのでより大きなサイズのデータをやりとりできるというわけです。クエリがURLに残らないのがPOSTメソッドの特長とも言えるでしょう。外部にデータを見せずにWEBサーバーにデータを送ることが出来る手段なのでパスワードやアドレスなど外部に見せたくないものはPOSTメソッドを使う、というわけですね。

簡潔に説明をしましたが、次回からは実際にPythonでサーバーにデータを送ったりして遊んでみましょう。

主な著書

Django

Flask

Bottle