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 |