
GETとPOSTの違いとは?URLに出てくるだけではない?特徴やセキュリティもプログラマーが分かりやすくわかりやすく解説
GET、POSTだけではない!HTTPの4メソッド
HTTPのコマンドのようなものとしてGETとPOSTを紹介しました。しかし、他にもあと2つあります。それがPUTとDELETEです。これらのものをユーザは自分で使うことはできません。ブラウザやアプリの中でこれらを使ってサーバーとやり取りをすることで、ユーザが様々なことができるように作ってあるのです。
例えばSNSで画像を付けて送信したり、ファイルをアップロードすることがありますよね。そのときに使うのが「PUT」です。英語で「置く」という意味。何かを送るという点ではPOSTと似ています。通常はWebサイトの入力フォームやSNSの投稿欄のような情報を送るのがPOSTです。一方、イメージなどのファイルを送るのがPUT。そのPUTしたものを消してほしい場合に使うのがDELETEです。
特徴や使い分けは?GETとPOSTのメリット、デメリット

image by iStockphoto
サーバとブラウザやアプリがやりとりする場合に使うのがHTTPで、サーバ→ブラウザがGET、ブラウザ→サーバがPOSTと説明しました。しかし、実際にはそういう用途を想定しているというだけで、どちらも同じように使うことができます。それでどう使い分けたら良いのか混乱してしまうわけです。
本来の用途通りに使えば混乱しないのですが、ここではそれぞれの特徴とどう使い分けるかを説明します。ただ、利用者がどちらかを選択するものではなく、Webアプリなどをつくるときに必要な話です。そんなものなんだという程度で構いません。
全てはお見通し?URLでわかるGETのポイント
ざっくりとした説明で、URLに?や=が出てくるのがGETと説明しましたよね。GETを使った場合、サーバに送る情報は全てURLに並んで表示されます。送る情報が複数ある場合は「http://nanika.com/aaa?aaa=1&bbb=2&ccc=3」の様に「&」を使って並べることが可能です。Web検索で何か検索してみると、長いURLに&がいくつか出て来ますよね。キーワードの他にも様々な情報を追加して送っているわけです。
ではGETを使うメリットはなんでしょう。それは情報がURLにすべて含まれていること。例えば、Web検索した結果のページをブックマークすれば、呼び出すたびに同じ内容でその時点の最新情報を調べることができます。Web検索をブックマークから呼び出して、キーワードで検索するという手間を省けるわけです。
ナイショにしたい?セキュリティがPOSTのポイント
GETで同じことができるならPOSTは要らないですよね。それなのにPOSTが存在するのはGETだけでは足りないからです。URLに最大の長さはここまでという決まりは実は存在しません。しかし、実際にはブラウザによってURLの長さに制限があります。ブラウザによってバラバラなため目安として2000文字までには収めるべきというのが暗黙のルールです。それ以上の情報を送りたい場合、GETでは不足してしまいます。
またURLに情報があるということは履歴で見えてしまいますよね。共用のパソコンなどでサーバーに送った情報を別の人に見られてしまったら困ります。そのためセキュリティなどが気になる情報はPOSTを使うのが一般的です。
正しく使い分けよう!GETは指示、POSTは情報
同じ様に使えるGETとPOSTですが、どのように使い分けたらよいでしょう。これは送りたいものが情報なのか指示なのかで考えるとわかりやすいです。
例えば、Webで検索するときに対象の期間や日本語だけかどうか、画像や動画に限るのかということを指定できますよね。これらはほしい情報を特定するための「指示」です。このような指示はGETを使います。対して氏名や住所、電話番号などは「情報」です。これはPOSTを使います。両方が混在する場合はPOSTです。
\次のページで「GETはもらう、POSTは送る、方向を考えれば分かりやすい」を解説!/