HTMLリクエストメソッド
- 前のページ HTTP メッセージ
- 次のページ キーボードショートカット
HTTPとは何ですか?
ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol、略称HTTP)は、クライアントとサーバー間の通信を可能にするために設計されました。
HTTPはクライアントとサーバー間のリクエスト-応答プロトコルです。
例:クライアント(ブラウザ)がサーバーにHTTPリクエストを送信し、サーバーがクライアントに応答を返します。応答には、リクエストの状態情報が含まれ、要求された内容も含まれることがあります。
HTTPメソッド
- GET
- POST
- PUT
- HEAD
- DELETE
- PATCH
- OPTIONS
最も一般的な2つの方法は、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: codew3c.com name1=value1&name2=value2
POSTは最も一般的なHTTPメソッドの1つです。
POSTリクエストに関する他のいくつかのコメント:
- POSTリクエストはキャッシュされません
- POSTリクエストはブラウザの履歴に保存されません
- POSTはブックマークとして保存できません
- POSTリクエストにはデータ長さの制限はありません
PUTメソッド
PUTはデータをサーバーに送信してリソースを作成/更新するために使用されます。
POSTとPUTの違いは、PUTリクエストがイデンポタント(idempotent)であることです。つまり、同じPUTリクエストを複数回呼び出しても常に同じ結果が得られます。逆に、POSTリクエストを複数回呼び出すと、同じリソースを複数回作成する副作用があります。
HEADメソッド
HEADとGETはほぼ同じですが、応答本文がありません。
言い換えれば、GET /usersがユーザーリストを返す場合、HEAD /usersは同じリクエストを送信しますが、ユーザーリストを返しません。
HEADリクエストは、GETリクエストを送信する前に(例えば、大規模なファイルのダウンロードや応答本文の前に)GETリクエストが返す内容を確認するのに非常に役立ちます。
DELETEメソッド
DELETEメソッドは指定されたリソースを削除します。
OPTIONSメソッド
OPTIONSメソッドは、ターゲットリソースの通信オプションを説明します。
GETとPOSTの比較
以下のテーブルでは、2つのHTTPメソッド:GETとPOSTを比較しています。
GET | POST | |
---|---|---|
戻るボタン/リフレッシュ | 無害 | データが再提出されます(ブラウザはユーザーにデータが再提出されることを通知するべきです)。 |
ブックマーク | ブックマークとして保存できます | ブックマークとして保存できません |
キャッシュ | キャッシュ可能 | キャッシュすることができません |
エンコードタイプ | application/x-www-form-urlencoded | application/x-www-form-urlencoded または multipart/form-data。バイナリデータには多重エンコーディングを使用します。 |
履歴 | パラメータはブラウザの履歴に保存されます。 | パラメータはブラウザの履歴に保存されません。 |
データ長さの制限 | はい。データを送信する際に、GET メソッドはデータを URL に追加します;URLの長さには制限があります(URLの最大長さは2048文字です)。 | 制限はありません。 |
データタイプの制限 | ASCII 文字のみが許可されています。 | 制限はありません。バイナリデータも許可されています。 |
セキュリティ | POST に比べて、GET のセキュリティは低いです、なぜなら送信されるデータが URL の一部になるからです。 パスワードや他の敏感情報を送信する際は絶対に GET を使用しないでください! |
POST は GET よりも安全です、なぜならパラメータがブラウザの履歴やウェブサーバーのログに保存されません。 |
可視性 | データは URL にすべての人が見ることができます。 | データは URL に表示されません。 |
- 前のページ HTTP メッセージ
- 次のページ キーボードショートカット