はじめに
HTTPメソッドとは、Webブラウザやクライアントがサーバーに対してどのような操作を要求するかを指定するための方法です。
正しいメソッドを使用することで、API設計や通信の可読性が向上します。
本記事は個人的な備忘録としてまとめたものです。その点をご理解いただければ幸いです。
書こうと思ったきっかけ
ITスクールのハッカソンで、実際にAPIを構築する課題があり、HTTPメソッドの正しい使い分けが求められました。
その中で、GETやPOSTはスムーズに理解できたものの、PUTやPATCHなどの違いを説明するのが難しいと感じました。
また、普段の開発では何となく使っているメソッドが多かったため、基礎から整理し直す必要性を実感しました。
この記事を通じて、自分の理解を深めるとともに、同じ課題を持つ方への助けになれば幸いです。
HTTPメソッドの概要
HTTPメソッドは、クライアントとサーバー間で行われる通信の種類を指定するための仕組みです。
引用画像:https://www.japanitguide.com/html-reference/HTTP-%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89:-GET-%E3%81%A8-POST.html
HTTPメソッドにはさまざまな種類がありますが、主要なメソッドについて以下に簡単にまとめます。詳しい説明は後述します。
GET:
サーバーからデータを取得するために使用される。
POST:
サーバーにデータを送信するために使用され、新しいリソースの作成や既存リソースの更新に適する。
PUT:
指定したリソースを新しいデータで更新するために使用される。
DELETE:
指定したリソースを削除するために使用される。
PATCH:
リソースの一部を更新するために使用される。
これらのメソッドは、サーバーに対するリクエスト内容の性質を明確に定義し、クライアントとサーバー間でのデータのやり取りを効率的に行うための重要な役割を担っています。
主なHTTPメソッド
HTTPメソッドの基本的な整理として、最もよく使われる「GET」と「POST」について、過去の記事で詳しくまとめていますので、ぜひ参考にしてください。
GET
概要: サーバーからデータを取得するために使用。
特徴:
- リクエストパラメータはURLに付加される(例:
https://example.com/api/resource?id=123
)。 - データの取得専用であり、サーバー側の状態を変更しない。
- キャッシュされやすい。
例: Webページを表示、検索結果を取得。
AWS LambdaとAPI Gatewayを使用したGETリクエスト対応のサーバーレスアーキテクチャ構築については、以下の記事を参考にしてください。
POST
概要: サーバーにデータを送信し、新しいリソースを作成する際に使用。
特徴:
- リクエストボディにデータを含む。
- サーバー側でデータの変更や追加が発生する。
- URLにはパラメータが含まれない(ボディに含める)。
例: ユーザー登録、フォーム送信。
AWS LambdaとAPI Gatewayを使用したPOSTリクエスト対応のサーバーレスアーキテクチャ構築については、以下の記事をご参照ください。
PUT
概要: 指定したリソースを作成または更新する際に使用。
特徴:
- リソース全体を更新する(部分更新はできない)。
- 指定されたリソースが存在しない場合は新規作成されることもある。
例: ユーザー情報の更新。
PATCH
概要: リソースの一部を更新する際に使用。
特徴:
- PUTと異なり、部分的な更新に対応。
例: ユーザーのメールアドレスだけを更新。
PUTとPATCHの違いについては、以下の記事で簡単にまとめていますので参考にしてください。
DELETE
概要: 指定したリソースを削除する際に使用。
特徴:
- サーバー上からデータを削除するためのメソッド。
例: 投稿やユーザーアカウントの削除。
HEAD
概要: GETメソッドと同じ動作をするが、レスポンスボディを返さない。
特徴:
- リソースの存在確認やメタデータ取得に使用。
例: ファイルのサイズや更新日時を確認。
OPTIONS
概要: サーバーがサポートするHTTPメソッドや機能を確認する際に使用。
特徴:
- 主にクロスオリジンリクエスト(CORS)時に利用される。
例: ブラウザがサーバーの許可設定を確認。
TRACE
概要: リクエストがサーバーにどのように届くかを確認するために使用。
特徴:
- デバッグ目的で使用。
例: ネットワーク経路の確認。
CONNECT
概要: トンネル接続を確立するために使用。
特徴:
- 主にHTTPS通信で使われる。
例: プロキシサーバーを通じたSSL通信。
まとめ
最後までお読みいただき、ありがとうございました。ITスクールのハッカソンに参加し、実際に手を動かしたことで、より実践的なスキルを獲得することができました。
アプリケーションを設計する際は、これらのメソッドの特性を理解し、適切な使い分けを行うことが重要だと痛感しましt
これからも、このような基本的な内容を丁寧にまとめ、知識を定着させていきたいと思います。