GETとPOSTの違い

Posted on 2017/05/13


ANAのセッションタイムアウトエラーページ

昨今のウェブサイトでは動的なデザインが多いです。例えば、航空会社のチケット検索ページは代表的な例になります。チケットを検索するために、出発日や目的地などのデータをサーバーに送信する必要がります。ウェブの世界では、サーバーに送信するために2つの手段があります、ひとつはGET、もうひとつはPOSTと呼ばれています。

GETのほうはシンプルで、データをURLの最後にどんどん付け足して済みます。URLを他人に共有しても同じ結果を得られますので、通常はこの方法を使います。なので、GET方式で得たページは、ダイレクトURLでアクセスできるページとなります。それはGETのメリットでもありますが、芳しくない場合もあります。例えば、誰かがあなたのパソコンを使って、あるサイトのアドレスを打ち始めると、あなたの同じサイトを訪問した時使ったユーザー名とパスワードがアドレスヒントとして現れたらきっとまずいでしょ。また、あなたは気にしないかもしれませんが、自分が乗ろうとしている航空便の番号を他人に知らせたくない人も必ずいるんでしょ。ということで、プライバシーが大事な場合、GETは決して良い選択肢ではありません。それはいつもPOSTの出番になります。

POSTはユーザーが見えないかたちでデータを組んでサーバーに送信します。ページをクローズしたらそのデータも消えます。プライバシーの面で非常に優れていますが、URLを他人共有できないという欠点もあります。そのほか、ブックマークとして保存しても再利用ができません。従って検索結果を再確認しようとしたら、最初のページに戻って、入力項目を一通り入れてから再提出するしかないです。場合によって、三四個の入力ページを乗り越えてからようやく結果ページに辿り着くケースもあります。