HTTP method
一般的な考え方
- GET
- リソースの取得や検索に使用する。データの取得を目的とする場合に適している
- POST
- リソースの作成やデータの送信に使用する。新しいリソースを作成したり、データをサーバーに送信する場合に適している
- PUT
- リソースの更新や置き換えに使用します。既存のリソースを完全に置き換える場合に適しています。
- PATCH
- リソースの一部を更新する場合に使用します。リソースの一部を変更する場合に適しています。
- DELETE
- リソースの削除に使用します。リソースを削除する場合に適しています。
要件によっては、GETメソッドが適切な場合もあ ります。ただし、セキュリティ上の考慮やリクエストボディの必要性などに基づいて、POSTメソッドを選択することもあります。
GET
クエリパラメーター問題
見られたくないものを送るときはPOSTで送るかHTTPのリクエストヘッダーに入れるかだが、リクエスト先がRESTfulなAPIで、セマンティクス的にGETがふさわしい場合、HTTPのカスタムヘッダーなどを使用する
HEAD
HEADリクエストは、HTTPプロトコルで使用される一種のHTTPメソッドです。
HEADメソッドは、指定されたリソースに対してGETメソッドと同様の情報を要求しますが、レスポンスの本体(Body)を含まず、ヘッダー情報のみを返す。
HEADリクエストは、以下のような目的で使用される。
-
リソースの存在を確認する
HEADリクエストを使用して、指定されたURLのリソースが存在するかどうかを確認できます。サーバーはリソースの存在を示すステータスコードと共に、ヘッダー情報(Content-Type、Content-Lengthなど)を返す。 -
最終更新日時の確認
HEADリクエストを使用して、リソースの最終更新日時を確認できます。サーバーはレスポンスヘッダーのLast-Modified
フィールドに最終更新日時を含めて返す。 -
ヘッダー情報の取得
GETメソッドの場合、レスポンスの本体データを取得しますが、HEADメソッドでは本体データを取得せず、ヘッダー情報のみを取得します。
これにより、ネットワーク帯域を節約できる。 -
キャッシュの管理
HEADリクエストは、キャッシュの管理に使用されます。クライアントはキャッシュの有効性を確認するために、HEADリクエストを使用してリソースのヘッダー情報を取得します。
HEADリクエストは、GETリクエストと似ていますが、レスポンスの本体データを含まないという点が異なります。そのため、リソースのメタデータやステータスのみを必要とする場合に便利です。
OPTIONS
REST APIにアクセスする際、ブラウザがAPIサーバに対してHTTP(もしくはHTTPS)の OPTIONSメソッドでリクエストを投げることがある。 利用用途としてはサーバーがどのメソッドをサポートしているかを調査するメソッド。