HTTPメソッド

HTTPリクエストメソッドの完全ガイド(比較表と例付き)。

比較

メソッドボディあり冪等安全キャッシュ可
GET
POST
PUT
PATCH
DELETE
HEAD
OPTIONS
TRACE
CONNECT
GET

GETメソッドは、指定されたリソースの表現をリクエストします。GETリクエストはデータの取得のみを行い、リソースに対してその他の影響を与えるべきではありません。GETリクエストは状態を変更しないため、安全かつ冪等であるとみなされます。

安全
冪等
キャッシュ可
RFC 9110, Section 9.3.1

一般的なユースケース

  • ユーザープロフィールやアカウント詳細の取得
  • 商品や投稿などのリソースコレクションの一覧表示
  • 識別子による単一リソースの取得
  • 設定データや構成データの読み込み
  • クエリパラメータを使用した検索結果の照会
リクエスト
GET /api/users/123 HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
レスポンス
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=60

{
  "id": 123,
  "name": "Alice Johnson",
  "email": "alice@example.com",
  "role": "admin",
  "createdAt": "2025-08-14T10:30:00Z"
}
POST

POSTメソッドは、指定されたリソースにエンティティを送信し、サーバー上で状態の変更や副作用を引き起こすことが多いです。新しいリソースの作成やオペレーションのトリガーに一般的に使用されます。POSTは安全でも冪等でもないため、同一のリクエストを繰り返すと重複したリソースが作成される可能性があります。

ボディあり
RFC 9110, Section 9.3.3

一般的なユースケース

  • 新しいユーザーアカウントやリソースの作成
  • フォームの送信やファイルのアップロード
  • メール送信などのサーバーサイドプロセスのトリガー
  • コメントやメッセージの投稿
  • 決済やトランザクションの開始
リクエスト
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "name": "Bob Smith",
  "email": "bob@example.com",
  "role": "member"
}
レスポンス
HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/users/456

{
  "id": 456,
  "name": "Bob Smith",
  "email": "bob@example.com",
  "role": "member",
  "createdAt": "2026-03-02T14:22:00Z"
}
PUT

PUTメソッドは、ターゲットリソースの現在の表現をすべてリクエストペイロードで置き換えます。リソースが存在しない場合、PUTはリソースを作成することがあります。PUTは冪等であり、同じリクエストを複数回行っても一度行った場合と同じ結果になります。

冪等
ボディあり
RFC 9110, Section 9.3.4

一般的なユースケース

  • 更新されたデータでユーザープロフィールを置き換える
  • 特定のURIにファイルをアップロードする
  • 設定オブジェクトの完全な表現を更新する
  • 既知のURLでリソースを設定または上書きする
リクエスト
PUT /api/users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "name": "Alice Johnson-Smith",
  "email": "alice.js@example.com",
  "role": "admin"
}
レスポンス
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "name": "Alice Johnson-Smith",
  "email": "alice.js@example.com",
  "role": "admin",
  "updatedAt": "2026-03-02T15:10:00Z"
}
PATCH

PATCHメソッドは、リソースに部分的な変更を適用します。リソース全体を置き換えるPUTとは異なり、PATCHはリクエストボディで提供されたフィールドのみを更新します。PATCHは安全でも必ずしも冪等でもありませんが、冪等に実装することは可能です。

ボディあり
RFC 5789

一般的なユースケース

  • メールアドレスや表示名など単一フィールドの更新
  • アクティブ状態やアーカイブ状態などのブーリアンフラグの切り替え
  • 複雑なリソースの段階的な変更
  • JSON PatchまたはJSON Merge Patchドキュメントの適用
リクエスト
PATCH /api/users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "email": "alice.new@example.com"
}
レスポンス
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "name": "Alice Johnson",
  "email": "alice.new@example.com",
  "role": "admin",
  "updatedAt": "2026-03-02T15:45:00Z"
}
DELETE

DELETEメソッドは、指定されたリソースをサーバーから削除します。DELETEが成功した後、同じURIへの後続のGETリクエストは404 Not Foundを返すべきです。DELETEは冪等であり、既に削除されたリソースを削除しても、最初の削除を超えるエラーを生成すべきではありません。

冪等
RFC 9110, Section 9.3.5

一般的なユースケース

  • ユーザーアカウントやプロフィールの削除
  • ショッピングカートからのアイテムの削除
  • ファイルやアップロードされたドキュメントの削除
  • APIキーやアクセストークンの無効化
  • メーリングリストからの登録解除
リクエスト
DELETE /api/users/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
レスポンス
HTTP/1.1 204 No Content
X-Request-Id: req_abc123
HEAD

HEADメソッドは、サーバーがレスポンスにメッセージボディを返してはならない点を除き、GETと同一です。リソースの存在確認、ヘッダーの検査、レスポンス全体をダウンロードせずにリンクをテストするのに便利です。HEADは安全かつ冪等です。

安全
冪等
キャッシュ可
RFC 9110, Section 9.3.2
HEAD /api/users/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
OPTIONS

OPTIONSメソッドは、ターゲットリソースで利用可能な通信オプションを記述します。ブラウザが実際のリクエストを送信する前に許可されたHTTPメソッドとヘッダーを確認するCORSプリフライトリクエストで一般的に使用されます。OPTIONSは安全かつ冪等です。

安全
冪等
RFC 9110, Section 9.3.7
OPTIONS /api/users HTTP/1.1
Host: api.example.com
Origin: https://app.example.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Content-Type, Authorization
TRACE

TRACEメソッドは、ターゲットリソースへのパスに沿ってメッセージのループバックテストを実行し、受信したリクエストをエコーバックします。主に中間プロキシがリクエストをどのように変更するかを確認するための診断目的で使用されます。TRACEは本番APIではほとんど使用されず、セキュリティ上の理由から無効にされていることが多いです。

安全
冪等
RFC 9110, Section 9.3.8
TRACE /api/users HTTP/1.1
Host: api.example.com
Max-Forwards: 3
CONNECT

CONNECTメソッドは、ターゲットリソースで識別されるサーバーへのトンネルを確立します。主にHTTPプロキシとともに使用され、プロキシを介したエンドツーエンドのTLS/SSL接続を開始し、HTTPSトラフィックがHTTPプロキシを通過できるようにします。CONNECTは安全でもキャッシュ可能でもありません。

RFC 9110, Section 9.3.6
CONNECT api.example.com:443 HTTP/1.1
Host: api.example.com:443
Proxy-Authorization: Basic dXNlcjpwYXNz

関連ガイド

RequestDockで試す

実際のHTTPリクエストを送信してレスポンスを確認 — ブラウザ上で直接。