Web

HTTPメソッド

中級

読み方:エイチティーティーピーメソッド|英語:Http Method

サーバーへのリクエストの種類で、GET(取得)、POST(送信)、PUT(更新)、DELETE(削除)などがあるよ。

やさしい説明

HTTPメソッドは、サーバーに「何をしてほしいか」を伝える命令の種類です。

お店に例えると、GET=「見せて」、POST=「注文する」、PUT=「変更して」、DELETE=「取り消して」です。同じURL(/users)でもメソッドが違えば動作が変わります。

REST APIを設計するときの基本です。fetchの第2引数で method を指定します。

具体例・使い方

// GET: データを取得
fetch("/api/users");

// POST: データを作成
fetch("/api/users", {
  method: "POST",
  body: JSON.stringify({ name: "太郎" })
});

// DELETE: データを削除
fetch("/api/users/1", { method: "DELETE" });

主なメソッド一覧

メソッド 役割 お店の例え
GET取得(読むだけ)メニューを見せて
POST新規作成注文する
PUTまるごと更新注文を全部入れ替える
PATCH一部だけ更新トッピングだけ変更
DELETE削除注文を取り消す

いつ使う?

  • データを読むだけ → GET
  • 新しいデータを登録する → POST(投稿・新規ユーザー作成など)
  • 既存データを書き換える → PUT / PATCH
  • データを消す → DELETE

同じURL /api/users でも、メソッドが違えば動作が変わるのがポイント。GETなら一覧取得、POSTなら新規作成。これがREST APIの基本的な考え方です。

間違いやすいポイント

❌ GETリクエストでデータを変更する

GETは「取得専用」です。GETで削除や更新をすると、ブラウザのプリフェッチや先読みで意図せず実行されることがあります。変更系は必ず POST/PUT/PATCH/DELETE を使いましょう。

❌ PUT と PATCH を混同する

PUT はデータを「まるごと置き換え」、PATCH は「一部だけ更新」。PUTで一部だけ送ると、送らなかった項目が消えてしまうことがあります。

よくある疑問

Q: GETとPOSTの違いは?

A: GETはデータ取得用(URLにパラメータが見える)、POSTはデータ送信用(ボディに含まれURLに見えない)。ログインフォームはPOSTを使います。

Q: PUTとPATCHの違いは?

A: PUTはリソース全体を置き換え、PATCHは一部だけ更新します。名前だけ変えたいならPATCHが適切です。

Q: fetchでPOSTリクエストを送るには?

A: fetch(url, { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(data) }) と書きます。

関連用語

  • HTTP — メソッドはHTTP通信の一部。リクエストの先頭で指定する
  • API — REST APIはメソッドで操作を表す。設計の基本

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A