Webプログラムを学び始めると GET と POST という言葉が出てきます。
簡単にいうと GET と POST は Webサーバ へ 値を渡す方法 で Webサーバへ値を渡す方法 が違います。
今回はGETメソッドとPOSTメソッドについて理解しつつ、GETとPOSTの違いや使い分けも理解できるようにわかりやすく解説します。
GETとPOSTについて
GETメソッドとPOSTメソッドについて解説します。GETメソッドとPOSTメソッドはWebサーバへ値を渡す際に使われます。
GETメソッドとは
GETメソッドは、URLの後ろに渡す値をつけてWebサーバへ値を渡します。
たとえば「https://uteee.com?param1=aaa¶m2=bbb」のような感じでURLの後ろへ渡す値をつけます。
GETメソッドを手紙で例えると「はがき」
GETメソッドを手紙で例えると「はがき」に近いイメージです。はがきは相手に伝える内容が誰でも見える丸見えな状態です。
POSTメソッドとは
POSTメソッドは、渡す値を見えないようにしてWebサーバへ値を渡します。
つまりGETメソッドのようにURLの後ろへ渡す値をつけないで目に見えないように渡します。
POSTメソッドはURL上では見えないですが、通信内容を盗聴すると見えてしまいます。
POSTメソッドを手紙で例えると「封筒」
POSTメソッドを手紙で例えると「封筒」が近いイメージです。封筒は相手に伝える内容は封筒の中に入れるので誰でも見えない隠された状態です。
GETメソッドとPOSTメソッドの違い
GETメソッドとPOSTメソッドで大きく違うのは、ブラウザからWebサーバに値を渡す方法が違います。
-
GETメソッド
- URLの後ろに値をくっつけてWebサーバへ値を渡す
-
POSTメソッド
- 値を簡単に見えないようにWebサーバへ渡す
GETメソッドとPOSTメソッドの似ているとこ
GETメソッドもPOSTメソッドもHTTPリクエストメソッドということです。
HTTPリクエスト
Webページを見る際にWebブラウザとWebサーバへ決められたルール(プロトコル)でリクエスト
GETメソッドとPOSTメソッドの使い分け
GETメソッドとPOSTメソッドの使い分けについて解説します。
GETメソッドは「一覧の絞込」や「ページ番号」で使う
GETメソッドは主に一覧の絞込などで使います。
GETメソッドを使う理由
一覧の絞込では「商品名」や「価格」などをWebサーバへ渡します。この値を覗き見されても問題ないのでGETメソッドを使います。
GETメソッドではURLに検索条件などの値がセットされているので、Webページで検索した状態をブラウザにブックマークで登録することができます。
GETメソッドで個人情報をWebサーバへ渡した場合
GETメソッドで個人情報を渡した場合のURLは「https://uteee.com?name=山田太郎\&password=hogehoge123」となります。
この場合に
- Webブラウザの履歴に上記URLが残ってしまう
- URLは第三者が覗き見することができる
ということが発生します。
なので個人情報はGETメソッドを使用しないようにしましょう。
POSTメソッドは「会員登録」や「クレジット決済」で使う
POSTメソッドは主に会員登録やクレジット決済などで使います。
POSTメソッドを使う理由
GETメソッドだとURLの後ろに値がくっつくので個人情報が覗き見されてしまうのでPOSTメソッドを使います。
GETメソッド注意
- GETメソッドはPOSTメソッドよりWebサーバへ渡せる情報量が少ない
- URLの長さに限界があるため
- ちなみにPOSTで渡せる限界もあります
- GETメソッドは渡した値がWebブラウザの履歴に残る
- GETメソッドで渡す値は覗き見される
まとめ
今回はGETメソッドとPOSTメソッドについて解説しました。
Webプログラミングをする上でこういった仕組みを理解しておくことは大事です。たとえば不具合やトラブルの原因を調べるときなどに役に立ちます。
ですが、プログラミングがまだ手に馴染んでいない人は、GETやPOSTについてざっくり理解でOKです。(まずはプログラミングに慣れ親しむことが大事)
関連用語
| 用語 | 説明 |
|---|---|
| Webブラウザ | Webページを見るソフトウェア (Google Chrome、Edge、Safari) |
| Webサーバ | WebページのHTMLなどがあるサーバ(コンピュータ) |
| URL | Webページの住所(アドレス)、ファイルの場所 |
| HTTP | Hypertext Transfer Protocol Webページを見る際にWebブラウザとWebサーバが通信する際のプロトコル(ルール) |
| HTTPリクエスト | Webページを見る際にWebブラウザとWebサーバへ決められたルール(プロトコル)でリクエスト |
| HTTPメソッド | Webブラウザが行いたい処理をWebサーバに伝える要求 (GETとPOST以外にもPUT、DELETEなど色々ある) |

