この記事の最終更新日: 2026年5月21日

WebアプリやAPIについて学び始めると、よく出てくるのが GET・POST・PUT・PATCH・DELETE という言葉です。
これらは HTTPメソッド と呼ばれます。
HTTPメソッドとは、簡単にいうと、
サーバーに対して「何をしたいのか」を伝えるための命令
です。
たとえば、ブログアプリで以下のような操作をするとします。
- 記事一覧を見る
- 新しい記事を投稿する
- 記事のタイトルを変更する
- 記事を削除する
これらの操作は、裏側ではHTTPメソッドを使ってサーバーにリクエストを送っています。
この記事では、初心者向けに GET・POST・PUT・PATCH・DELETEの違い をわかりやすく解説します。
- HTTPメソッドとは?
- GETとは?データを取得するHTTPメソッド
- GETで更新や削除をしてはいけない理由
- POSTとは?データの作成や処理の実行に使うHTTPメソッド
- PUTとは?データ全体を作成または置き換えるHTTPメソッド
- PATCHとは?データの一部を更新するHTTPメソッド
- PUTとPATCHの違い
- DELETEとは?データを削除するHTTPメソッド
- POSTとPUTの違い
- GET・POST・PUT・PATCH・DELETEの違いまとめ
- ブログ記事APIを例にした使い分け
- 安全性と冪等性も知っておこう
- 安全性とは?
- 冪等性とは?
- HTTPメソッドごとの安全性・冪等性
- なぜHTTPメソッドを正しく使う必要があるのか?
- REST APIではURLとHTTPメソッドを組み合わせる
- 初心者向けの覚え方
- よくある勘違い
- まとめ
HTTPメソッドとは?
HTTPメソッドとは、ブラウザやアプリがサーバーに対して送る「操作の種類」です。
たとえば、ブログ記事を操作するAPIを例にすると、以下のようになります。
| やりたいこと | HTTPメソッド |
|---|---|
| 記事を見る | GET |
| 記事を作成する | POST |
| 記事全体を更新する | PUT |
| 記事の一部だけ更新する | PATCH |
| 記事を削除する | DELETE |
HTTPメソッドを正しく使うことで、APIの意味がわかりやすくなります。
たとえば、同じ /articles/1 というURLでも、HTTPメソッドによって意味が変わります。
GET /articles/1
これは「IDが1の記事を取得する」という意味です。
DELETE /articles/1
これは「IDが1の記事を削除する」という意味です。
つまり、APIでは URLだけでなく、HTTPメソッドも重要 です。
GETとは?データを取得するHTTPメソッド
GET は、サーバーからデータを取得するときに使います。
たとえば、以下のような操作です。
- 記事一覧を表示する
- 特定の記事を表示する
- ユーザー情報を取得する
- 商品一覧を取得する
- 検索結果を表示する
ブログ記事一覧を取得する場合は、次のようになります。
GET /articles
これは「記事一覧を取得したい」という意味です。
特定の記事を取得する場合は、次のようになります。
GET /articles/1
これは「IDが1の記事を取得したい」という意味です。
GETは、基本的に データを見るだけの処理 に使います。
そのため、GETでデータを作成・更新・削除するのは適切ではありません。
GETで更新や削除をしてはいけない理由
初心者のうちは、URLにアクセスするだけで処理できるなら、GETで更新や削除をしてもよさそうに見えるかもしれません。
たとえば、以下のようなURLです。
GET /articles/1/delete
このURLにアクセスしただけで記事が削除される設計は危険です。
なぜなら、GETは本来「データを取得するためのメソッド」だからです。
ブラウザの先読み、検索エンジンのクローラー、外部ツールなどがURLにアクセスしただけで、意図せずデータが変更・削除される可能性があります。
そのため、GETは基本的に「見るだけ」に使い、データを変更する処理にはPOST・PUT・PATCH・DELETEなどを使うべきです。
POSTとは?データの作成や処理の実行に使うHTTPメソッド
POST は、新しいデータを作成するときによく使われます。
たとえば、以下のような操作です。
- 新しい記事を投稿する
- 新しいユーザーを登録する
- コメントを投稿する
- お問い合わせフォームを送信する
新しい記事を作成する場合は、次のようになります。
POST /articles
送信するデータの例です。
{
"title": "HTTPメソッドの解説",
"body": "GETやPOSTの違いを解説します。"
}
これは「新しい記事を作成してください」という意味です。
ただし、POSTは「作成専用」のメソッドではありません。
実務では、サーバー側で何らかの処理を実行したいときにも使われます。
たとえば、以下のようなAPIです。
POST /login
POST /payments
POST /articles/1/publish
それぞれ、以下のような意味になります。
| API | 意味 |
|---|---|
| POST /login | ログイン処理を実行する |
| POST /payments | 決済処理を実行する |
| POST /articles/1/publish | 記事を公開する |
つまり、POSTは、
新しいデータを作る、またはサーバー側で何らかの処理を実行する
と覚えるとわかりやすいです。
PUTとは?データ全体を作成または置き換えるHTTPメソッド
PUT は、指定したURLのリソースを 作成または丸ごと置き換える ときに使います。
初心者向けには、まずは、
PUTはデータ全体を更新するメソッド
と覚えるとわかりやすいです。
たとえば、IDが1の記事全体を更新する場合は、次のようになります。
PUT /articles/1
送信するデータの例です。
{
"title": "HTTPメソッド完全ガイド",
"body": "GET、POST、PUT、PATCH、DELETEについて解説します。",
"status": "published"
}
PUTは「このURLのリソースを、この内容で丸ごと置き換えてください」というイメージです。
たとえば、元の記事データが以下だったとします。
{
"title": "古いタイトル",
"body": "古い本文",
"status": "draft"
}
PUTで次のデータを送ります。
{
"title": "新しいタイトル",
"body": "新しい本文",
"status": "published"
}
すると、記事全体が新しい内容に置き換わるイメージです。
PUTは、実務では「既存データの全体更新」として使われることが多いです。
ただし、厳密には、指定したURLにリソースが存在しない場合に新規作成として扱う設計もあります。
そのため、PUTは単に「更新専用」と覚えるよりも、
指定したリソースを丸ごと作成または置き換える
と理解すると、より正確です。
PATCHとは?データの一部を更新するHTTPメソッド
PATCH は、既存データの一部だけを更新するときに使います。
たとえば、記事のタイトルだけを変更したい場合は、次のようになります。
PATCH /articles/1
送信するデータの例です。
{
"title": "新しいタイトル"
}
これは「IDが1の記事のタイトルだけ変更してください」という意味です。
PATCHは「変更したい項目だけを送る」というイメージです。
たとえば、ユーザー情報が以下のようにあったとします。
{
"name": "山田太郎",
"email": "yamada@example.com",
"age": 30
}
名前だけを変更したい場合、PATCHでは次のように送ります。
{
"name": "山田花子"
}
この場合、email や age は変更せず、name だけを更新するイメージです。
PUTが「全体を置き換える」のに対して、PATCHは「一部だけ変更する」と考えるとわかりやすいです。
PUTとPATCHの違い
初心者が特に混乱しやすいのが、PUTとPATCHの違い です。
どちらも更新に使うため、違いがわかりにくいです。
ざっくり比較すると、以下のようになります。
| メソッド | 役割 | イメージ |
|---|---|---|
| PUT | 全体更新 | データを丸ごと置き換える |
| PATCH | 部分更新 | 指定した項目だけ変更する |
たとえば、プロフィール情報が以下のようにあるとします。
{
"name": "山田太郎",
"email": "yamada@example.com",
"age": 30
}
名前だけを変更したい場合、PATCHでは次のように送ります。
{
"name": "山田花子"
}
一方、PUTではプロフィール全体を送るイメージです。
{
"name": "山田花子",
"email": "yamada@example.com",
"age": 30
}
初心者のうちは、以下のように覚えると十分です。
PUT = 全体を置き換える
PATCH = 一部だけ変更する
ただし、実際のAPIでは、PUTとPATCHの扱いはプロジェクトやフレームワークによって多少異なることもあります。
そのため、APIを使う側であれば、対象APIのドキュメントを確認することも大切です。
DELETEとは?データを削除するHTTPメソッド
DELETE は、データを削除するときに使います。
たとえば、IDが1の記事を削除したい場合は、次のようになります。
DELETE /articles/1
これは「IDが1の記事を削除してください」という意味です。
DELETEは、以下のような操作で使われます。
- 記事を削除する
- コメントを削除する
- ユーザーを削除する
- 商品を削除する
- 登録済みデータを削除する
ただし、DELETEを実行したからといって、必ずデータベースから完全に消えるとは限りません。
実務では、削除方法には大きく2つあります。
| 削除方法 | 説明 |
|---|---|
| 物理削除 | データベースから完全に削除する |
| 論理削除 | データ自体は残し、削除済みフラグを付ける |
たとえば、サービスによっては、ユーザーが削除した記事を復元できるようにするため、実際にはデータベースに残しておくことがあります。
このような削除は「論理削除」と呼ばれます。
POSTとPUTの違い
POSTとPUTも混乱しやすいHTTPメソッドです。
どちらもサーバーにデータを送信するためです。
基本的には、以下のように考えるとわかりやすいです。
| メソッド | 主な用途 |
|---|---|
| POST | 新しいデータを作成する、または処理を実行する |
| PUT | 指定したリソースを丸ごと作成または置き換える |
たとえば、新しい記事を作成する場合はPOSTを使います。
POST /articles
これは「記事一覧の中に、新しい記事を追加してください」というイメージです。
一方、IDが1の記事全体を更新する場合はPUTを使います。
PUT /articles/1
これは「IDが1の記事を、この内容で丸ごと置き換えてください」というイメージです。
POSTは「どこに作るかはサーバー側に任せる」ことが多く、PUTは「このURLのリソースを作成・置き換えする」という意味合いが強いです。
初心者向けには、まず以下のように覚えるとよいです。
POST = 新しく作る・処理を実行する
PUT = 指定したデータを丸ごと置き換える
GET・POST・PUT・PATCH・DELETEの違いまとめ
ここまでの内容をまとめると、以下のようになります。
| HTTPメソッド | 主な用途 | 例 |
|---|---|---|
| GET | データを取得する | 記事一覧を見る |
| POST | データを作成する、処理を実行する | 記事を投稿する、ログインする |
| PUT | リソース全体を作成または置き換える | 記事全体を更新する |
| PATCH | リソースの一部を更新する | タイトルだけ変更する |
| DELETE | リソースを削除する | 記事を削除する |
初心者のうちは、まず以下のように覚えるとわかりやすいです。
GET = 取得する
POST = 作成する・処理を実行する
PUT = 全体を置き換える
PATCH = 一部を変更する
DELETE = 削除する
ブログ記事APIを例にした使い分け
ブログ記事を操作するAPIを例にすると、HTTPメソッドの使い分けは以下のようになります。
| 操作 | HTTPメソッド | URL例 |
|---|---|---|
| 記事一覧を取得する | GET | /articles |
| 特定の記事を取得する | GET | /articles/1 |
| 新しい記事を作成する | POST | /articles |
| 記事全体を更新する | PUT | /articles/1 |
| 記事の一部を更新する | PATCH | /articles/1 |
| 記事を削除する | DELETE | /articles/1 |
このように、APIではURLとHTTPメソッドを組み合わせて処理を表現します。
同じURLでも、メソッドが変われば意味も変わります。
GET /articles/1
これは「記事を取得する」という意味です。
PATCH /articles/1
これは「記事の一部を更新する」という意味です。
DELETE /articles/1
これは「記事を削除する」という意味です。
URLだけを見るのではなく、HTTPメソッドもセットで見ることが重要です。
安全性と冪等性も知っておこう
HTTPメソッドを理解するときは、安全性 と 冪等性 も知っておくと便利です。
少し難しい言葉ですが、初心者向けに簡単に説明します。
安全性とは?
安全性とは、
リクエストを送っても、サーバー上のデータを変更しない性質
のことです。
たとえば、GETはデータを取得するだけなので、基本的にはサーバー上のデータを変更しません。
GET /articles/1
これは記事を見るだけです。
そのため、GETは安全なメソッドとされています。
一方、POST・PUT・PATCH・DELETEは、サーバー上のデータを作成・更新・削除するため、安全なメソッドではありません。
冪等性とは?
冪等性は「べきとうせい」と読みます。
冪等性とは、
同じリクエストを何回送っても、サーバー上の結果が同じになる性質
のことです。
たとえば、以下のDELETEリクエストを考えてみます。
DELETE /articles/1
1回目に実行すると、記事ID 1が削除されます。
同じリクエストをもう一度送っても、「記事ID 1が削除されている」という結果は変わりません。
そのため、DELETEは冪等なメソッドとされています。
ただし、レスポンスは変わることがあります。
たとえば、1回目は成功として 204 No Content が返り、2回目は「すでに存在しない」として 404 Not Found が返ることがあります。
しかし、サーバー上の最終的な状態は「記事ID 1が存在しない」という点で同じです。
そのため、DELETEは冪等と考えられます。
HTTPメソッドごとの安全性・冪等性
HTTPメソッドごとの安全性・冪等性をまとめると、以下のようになります。
| HTTPメソッド | 安全性 | 冪等性 | 説明 |
|---|---|---|---|
| GET | あり | あり | 何度取得してもデータは変わらない |
| POST | なし | 基本なし | 何度も送ると複数作成される可能性がある |
| PUT | なし | あり | 同じ内容で置き換えるなら結果は同じ |
| PATCH | なし | 基本なし | 更新内容によっては結果が変わる可能性がある |
| DELETE | なし | あり | 何度送っても削除済みという状態は同じ |
ここは少し難しいので、最初から完璧に覚える必要はありません。
初心者のうちは、まず以下のように理解しておけば大丈夫です。
GETは見るだけなので安全
POSTは何度も送ると複数作られることがある
PUTは同じ内容で置き換えるなら結果が同じ
PATCHは部分更新なので内容によって変わる
DELETEは何度送っても削除済みという結果は同じ
なぜHTTPメソッドを正しく使う必要があるのか?
HTTPメソッドを正しく使うと、APIがわかりやすくなります。
たとえば、以下のようなAPIがあったとします。
GET /deleteArticle?id=1
このAPIは、URLだけ見ると「データを取得するGET」のように見えます。
しかし、実際には記事を削除しています。
これでは、APIを使う人にとって意味がわかりにくく、誤操作の原因にもなります。
一方、次のように書かれていれば、意味が明確です。
DELETE /articles/1
これは「IDが1の記事を削除する」と直感的にわかります。
HTTPメソッドを正しく使うことで、
- APIの意味がわかりやすくなる
- 他の開発者が理解しやすくなる
- 誤操作を防ぎやすくなる
- REST APIらしい設計になる
- 保守しやすいAPIになる
というメリットがあります。
REST APIではURLとHTTPメソッドを組み合わせる
GET・POST・PUT・PATCH・DELETEは、REST APIの設計でよく使われます。
REST APIでは、URLで「対象のリソース」を表し、HTTPメソッドで「操作の種類」を表します。
たとえば、記事を表す /articles というリソースがある場合、以下のように設計できます。
GET /articles
POST /articles
GET /articles/1
PUT /articles/1
PATCH /articles/1
DELETE /articles/1
それぞれの意味は以下です。
| API | 意味 |
|---|---|
| GET /articles | 記事一覧を取得する |
| POST /articles | 新しい記事を作成する |
| GET /articles/1 | IDが1の記事を取得する |
| PUT /articles/1 | IDが1の記事全体を置き換える |
| PATCH /articles/1 | IDが1の記事の一部を更新する |
| DELETE /articles/1 | IDが1の記事を削除する |
このように設計すると、URLとHTTPメソッドを見るだけで、APIの役割がわかりやすくなります。
初心者向けの覚え方
最後に、GET・POST・PUT・PATCH・DELETEの覚え方を紹介します。
| メソッド | 覚え方 |
|---|---|
| GET | 取ってくる |
| POST | 新しく作る・処理を実行する |
| PUT | 丸ごと置き換える |
| PATCH | 一部だけ直す |
| DELETE | 消す |
日常生活にたとえると、以下のようなイメージです。
| メソッド | 日常生活のイメージ |
|---|---|
| GET | 本棚から本を取り出して読む |
| POST | 新しい本を本棚に追加する |
| PUT | 本を丸ごと新しい版に差し替える |
| PATCH | 本の一部の誤字だけ直す |
| DELETE | 本棚から本を取り除く |
このように考えると、HTTPメソッドの違いが理解しやすくなります。
よくある勘違い
最後に、初心者が間違えやすいポイントを整理します。
GETでデータを変更してもよい?
基本的にはNGです。
GETはデータを取得するためのメソッドです。
データの作成・更新・削除には、POST・PUT・PATCH・DELETEなどを使います。
POSTは作成専用?
作成でよく使われますが、作成専用ではありません。
ログイン、決済、メール送信、記事の公開など、サーバー側で処理を実行する場合にも使われます。
PUTは更新専用?
実務では更新として使われることが多いですが、厳密には「指定したリソースを作成または置き換える」メソッドです。
初心者のうちは「全体を置き換える」と覚えるとわかりやすいです。
PATCHは必ず冪等?
必ずしも冪等とは限りません。
たとえば「アクセス回数を1増やす」のようなPATCH処理の場合、同じリクエストを何度も送ると結果が変わる可能性があります。
一方で、「名前を山田花子に変更する」のようなPATCHであれば、何度送っても結果は同じになります。
つまり、PATCHが冪等かどうかは、APIの設計や更新内容によって変わります。
DELETEは2回目も同じレスポンスになる?
必ずしも同じレスポンスになるとは限りません。
1回目は削除成功、2回目は「すでに存在しない」として404になることがあります。
ただし、最終的な状態は「対象データが存在しない」という点で同じなので、DELETEは冪等なメソッドとされています。
まとめ
GET・POST・PUT・PATCH・DELETEは、Web開発やAPI開発でよく使われるHTTPメソッドです。
それぞれの役割は以下の通りです。
| HTTPメソッド | 役割 |
|---|---|
| GET | データを取得する |
| POST | データを作成する、処理を実行する |
| PUT | 指定したリソース全体を作成または置き換える |
| PATCH | 指定したリソースの一部を更新する |
| DELETE | 指定したリソースを削除する |
初心者のうちは、まず以下のように覚えておきましょう。
GET = 取得
POST = 作成・処理実行
PUT = 全体置き換え
PATCH = 部分更新
DELETE = 削除
APIでは、URLだけでなくHTTPメソッドによって処理の意味が変わります。
正しく使い分けることで、わかりやすく、安全で、保守しやすいAPIを設計できます。

大阪のエンジニアが書いているブログ。



コメント