
GETとPOSTの違いとは?URLに出てくるだけではない?特徴やセキュリティもプログラマーが分かりやすくわかりやすく解説
GET:情報を得る
Webを見る時にはURLを使いますよね。URLを指定することでそれが指している情報を持ってきます。これがGETです。普段何気なくWebサイトを見たりしている時に知らず知らずに使っています。GETは英語で「得る」という意味。この情報をください、という意味になります。
こちらの記事もおすすめ

URLとURIの違いとは?アドレス?識別子?定義から意味までプログラマーがわかりやすく解説
POST:情報を送る
SNSに投稿する時には文章を入力しますよね。他にもユーザ登録で名前や住所を登録することや、Webで検索するためにキーワードを入力します。このようにブラウザやアプリから文章や情報を送る時に使うのがPOSTです。
POSTにはいろいろな意味がありますが、この場合は掲示板などへの投稿の意味。GETやPOSTの使い分けはWebアプリやサービスを利用しているユーザー側でするものではありません。これらを作る側が用途に応じて使い分けます。
Web通信の基本はHTTPというお約束

image by iStockphoto
Webと切っても切れないのがHTTP。Hyper Text Transport Protocolの略です。ハイパーテキストとはざっくり言えばWebのこと。テキストは文字や文章ですが、それにイメージやビデオなどを含めたものをハイパーテキストと呼びます。トランスポートは輸送の意味。プロトコルは決まりです。つまりはブラウザなどでハイパーテキストを送受信するためのお約束がHTTPになります。
例えば交通ルールは日本国内共通ですよね。これが市町村や都道府県で違っていたら大混乱です。同じようにブラウザやアプリがやりとりするためにルールが決まっています。WebアプリやWebサービスが動いているコンピュータがサーバーです。ブラウザとサーバーの間でやりとりすることでWebが使えますが、そのためのルールがHTTPになります。
サーバ→ブラウザ!GETは「取得」
ブラウザでWebを見る場合、ブックマークから呼び出したりURLを入力します。そうすると、そのURLのWebサイトにアクセスできますよね。このようにサーバからブラウザへハイパーテキストを持ってくるために使うHTTPのコマンドのようなものが「GET」です。
URLは普通「http://nantoka.com/aaa/」のようになっています。しかし、ブラウザでアドレス欄を見たときに「http://nantoka.com/aaa?page=3」のように?や=が出てくるURLを見たことありませんか。このようにほしい情報をもっと細かくとってくるためのルールもあります。例えば複数ページあるときの3ページ目がほしい場合や、10件の検索結果のうちの2件目がほしい場合がありますよね。そのようなときに使います。
ブラウザ→サーバ!POSTは「投稿」
Webは単にハイパーテキストを表示するだけではなく、さまざまな情報を送信できます。例えばSNSに投稿したり、ショッピングサイトで住所や名前を送ったりしますよね。このようにGETとは反対にブラウザやアプリからサーバーへ情報を送ることがあります。これが「POST」です。POSTというHTTPの命令のようなものを使って情報を送信します。
GETで?や=を使ったURLを使ってとってくる情報を指定すると説明しましたよね。しかし、POSTのときにはURLは特に違いはありません。それではどうやって送っているのでしょう。心配はありません。表には出てこないだけで、裏ではちゃんと情報を送信しているのです。GETとPOST、取ってくることと投稿することができるので、Webが便利に使えます。
\次のページで「GET、POSTだけではない!HTTPの4メソッド」を解説!/