Webアプリを開発していると、必ず目にするのが GET と POST という言葉です。
例えば
- フォーム送信
- API通信
- Ajax通信
などでよく登場します。
しかし、最初はこんな疑問を持つ人も多いのではないでしょうか。
- GETとPOSTって何が違うの?
- どっちを使えばいいの?
- なんとなく使っているけど、実はよくわかっていない…
私自身も最初は「とりあえずPOSTで送っておけばいいのかな?」という曖昧な理解でした。
そこでこの記事では、自分の理解を整理する意味も含めて、
- GETとPOSTとは何か
- それぞれの違い
- 使い分け
- 覚えやすいイメージ
を初心者にもわかるようにまとめました。
GETとPOSTとは?
GETとPOSTは、
**HTTPリクエストの送信方法(HTTPメソッド)**の一種です。
ブラウザがサーバーに対して
「この情報をください」
「このデータを送ります」
という通信をするときに使われます。
代表的なHTTPメソッドには以下があります。
| メソッド | 役割 |
|---|---|
| GET | データを取得する |
| POST | データを送信する |
| PUT | データを更新する |
| DELETE | データを削除する |
この中でも、特に使用頻度が高いのがGETとPOSTです。
GETとは?
GETは、
サーバーからデータを取得するためのメソッドです。
例えば次のような場面で使われます。
- Webページを表示する
- 検索結果を取得する
- APIからデータを取得する
例
https://example.com/users?id=10このように URLの後ろにパラメータが付きます。
?id=10これを クエリパラメータと呼びます。
つまりGETは
URLに情報を付けてデータを取得する
方法です。
POSTとは?
POSTは、
サーバーにデータを送信するためのメソッドです。
例えば
- 会員登録
- ログイン
- フォーム送信
- 新しいデータの登録
などで使われます。
POSTの場合、データは
HTTPリクエストのBody(本文)
に入れて送信されます。
つまり
GETのように URLには表示されません。
GETとPOSTの違い
主な違いを表にまとめるとこうなります。
| 項目 | GET | POST |
|---|---|---|
| 主な用途 | データ取得 | データ送信 |
| データの場所 | URL | リクエストボディ |
| URL表示 | 表示される | 表示されない |
| ブックマーク | 可能 | 不可 |
| キャッシュ | される | されないことが多い |
| データ変更 | 基本しない | 変更する |
簡単にまとめると
GET → データを見る
POST → データを送る
です。
イメージで覚えるGETとPOST
覚え方としておすすめなのが
言葉のイメージから連想する方法です。
GETのイメージ
GETは
「Get(ゲットする)」
つまり
情報をもらう
イメージです。
例
- 商品一覧を取得
- ユーザー情報を取得
- 検索結果を取得
つまり
GET = 取りに行く
です。
POSTのイメージ
POSTは
「Post(投稿する)」
SNSで考えるとわかりやすいです。
- X(旧Twitter)に投稿
- Instagramに投稿
- ブログ投稿
つまり
データを送る
イメージです。
なので
POST = 投稿する
と覚えるとわかりやすいです。
実際の使用例
例えばユーザー登録を考えます。
ユーザー一覧を見る
GET /usersユーザー情報を取得するだけなので
GETを使います。
ユーザーを登録する
POST /users新しいデータを登録するため
POSTを使います。
よくある疑問
POSTは安全?
POSTはURLに表示されないため
「GETより安全」
と言われることがあります。
ただし
暗号化されていない通信(HTTP)ではどちらも安全ではありません。
安全性は
HTTPS通信
によって確保されます。
まとめ
最後に、GETとPOSTの違いを整理します。
GET
- データを取得する
- URLにパラメータが付く
- ブックマークできる
POST
- データを送信する
- URLに表示されない
- データ登録などで使う
覚え方はとてもシンプルです。
GET = 取りに行く
POST = 投稿する
このイメージで覚えると、
HTTP通信の理解がかなり楽になります。
