HTTPリクエストメソッド


HTTPとは何ですか?

ハイパーテキスト転送プロトコル(HTTP)は、クライアントとサーバー間の通信を可能にするように設計されています。

HTTPは、クライアントとサーバー間の要求/応答プロトコルとして機能します。

例:クライアント(ブラウザー)がサーバーにHTTP要求を送信します。次に、サーバーはクライアントに応答を返します。応答には、要求に関するステータス情報が含まれ、要求されたコンテンツが含まれる場合もあります。


HTTPメソッド

  • 得る
  • 役職
  • 置く
  • 消去
  • パッチ
  • オプション

最も一般的な2つのHTTPメソッドは、GETとPOSTです。


GETメソッド

GETは、指定されたリソースからデータを要求するために使用されます。

GETは、最も一般的なHTTPメソッドの1つです。

クエリ文字列(名前/値のペア)は、GETリクエストのURLで送信されることに注意してください。

/test/demo_form.php?name1=value1&name2=value2

GETリクエストに関するその他の注意事項:

  • GETリクエストはキャッシュできます
  • GETリクエストはブラウザの履歴に残ります
  • GETリクエストはブックマークできます
  • 機密データを処理する場合は、GETリクエストを使用しないでください
  • GETリクエストには長さの制限があります
  • GETリクエストは、データをリクエストするためにのみ使用されます(変更はされません)

POSTメソッド

POSTは、リソースを作成/更新するためにサーバーにデータを送信するために使用されます。

POSTを使用してサーバーに送信されたデータは、HTTPリクエストのリクエスト本文に保存されます。

POST /test/demo_form.php HTTP/1.1
Host: w3schools.com

name1=value1&name2=value2

POSTは、最も一般的なHTTPメソッドの1つです。

POSTリクエストに関するその他の注意事項:

  • POSTリクエストがキャッシュされることはありません
  • POSTリクエストはブラウザの履歴に残りません
  • POSTリクエストはブックマークできません
  • POSTリクエストにはデータ長の制限はありません


PUTメソッド

PUTは、リソースを作成/更新するためにサーバーにデータを送信するために使用されます。

POSTとPUTの違いは、PUTリクエストがべき等であるということです。つまり、同じPUTリクエストを複数回呼び出すと、常に同じ結果が生成されます。対照的に、POSTリクエストを繰り返し呼び出すと、同じリソースを複数回作成するという副作用があります。


HEADメソッド

HEADはGETとほぼ同じですが、応答本文がありません。

つまり、GET / usersがユーザーのリストを返す場合、HEAD / usersは同じリクエストを行いますが、ユーザーのリストは返しません。

HEADリクエストは、大きなファイルや応答本文をダウンロードする前など、実際にGETリクエストを行う前にGETリクエストが何を返すかを確認するのに役立ちます。


DELETEメソッド

DELETEメソッドは、指定されたリソースを削除します。


OPTIONSメソッド

OPTIONSメソッドは、ターゲットリソースの通信オプションを記述します。


GETとPOSTを比較する

次の表では、GETとPOSTの2つのHTTPメソッドを比較しています。

  GET POST
BACK button/Reload Harmless Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted)
Bookmarked Can be bookmarked Cannot be bookmarked
Cached Can be cached Not cached
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
History Parameters remain in browser history Parameters are not saved in browser history
Restrictions on data length Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) No restrictions
Restrictions on data type Only ASCII characters allowed No restrictions. Binary data is also allowed
Security GET is less secure compared to POST because data sent is part of the URL

Never use GET when sending passwords or other sensitive information!
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs
Visibility Data is visible to everyone in the URL Data is not displayed in the URL