4.1 HTTPメソッドの一覧
HTTP リクエストの最初の単語はメソッド名です。Java でのメソッドの呼び出しとの類似点もあります。HTTP リクエストのメソッドは、リソースに対して実行される基本操作を定義します。
どのようなリソースですか? 問題は、World Wide Webの黎明期、サーバーは単純にHTMLファイルをそれぞれ保存しており、リクエストはそのようなファイルに対するものであり、リソース/ファイルを使用して実行する必要があるアクションを記述していました。
HTTP 標準では次のメソッドが指定されています。
# | 方法 | 説明 |
---|---|---|
1 | 得る | 指定されたリソースの内容をクエリするために使用されます。 |
2 | 役職 | クライアントからサーバーにデータを転送するために使用されます。サーバー上のリソースの状態を変更します。 |
3 | 置く | クライアントからサーバーにデータを転送するために使用されます。サーバー上に新しいリソースを作成します。 |
4 | 消去 | サーバー上の指定されたリソースを削除します。 |
5 | 頭 | GET に似ていますが、応答本文はありません。応答ヘッダーを取得するために必要です |
6 | オプション | 指定されたリソースでサポートされているメソッドのリストをサーバーに要求します。 |
7 | 痕跡 | サービス方法。リクエストが通過するサーバーによって変更されているかどうかを確認できます。 |
8 | 接続 | サービス方法。安全な接続を確立するために使用されます。 |
4.2 GETメソッド
GET メソッドは最も一般的な HTTP メソッドです。これは、ブラウザが次のページのリクエストをサーバーに送信するときに呼び出すものです。
たとえば、ブラウザでリンク http://codegym.cc/path/resource?param1=value1¶m2=value2 をたどった場合、ブラウザは次の開始行で始まる HTTP リクエストを CodeGym サーバーに送信します。
GET /path/resource?param1=value1¶m2=value2 HTTP/1.1
その結果、サーバーは HTTP 応答をブラウザに送信し、その中にリクエストのステータスを書き込み、リクエストされたリソースも送信する必要があります。
GET メソッドを複数回呼び出してもサーバーの状態は変わらないと想定されており、サーバーは毎回同じ応答を返す必要があります。したがって、このプロトコルではオブジェクトのキャッシュを制御するのが困難です。
まず、GET リクエストを使用して受け取ったリソースは、ブラウザーが独自の裁量で側でキャッシュできます (微妙な違いがあります)。
次に、サーバーにリクエストを送信するときに、特別なヘッダーIf-Modified-Since
と を指定できますdate
。要求されたリソース/ドキュメントが指定された日付以降に変更されている場合、サーバーはそれを送信します。変更しない場合、リソース本体は渡されません。クライアント上にキャッシュされていると想定されます。
ページ キャッシュ (GET リクエスト) は常に使用されるため、この問題を調査することをお勧めします。
4.3 POST メソッドと PUT メソッド
POST メソッドは、サーバー上のリソースを更新するために使用されます。たとえば、画像をサーバーにアップロードすると、ブラウザは POST リクエストを送信します。
次の開始行で始まる HTTP リクエストを考えてみましょう。
POST /path/resource?param1=value1¶m2=value2 HTTP/1.1
headers…
<request body>
その結果、サーバーは HTTP 応答をブラウザーに送信する必要があり、その中にリクエストのステータスが書き込まれ、変更されたリソースも送信されます。POST メソッドを複数回呼び出すとサーバーの状態が変化し、サーバーは毎回異なる応答を返す場合があります。
GETとPOST は、 Web 上で最も一般的な 2 つのリクエストです。メソッドがどのように機能するかを覚えやすくするために、次の表を検討してください。
得る | 役職 | 置く | |
---|---|---|---|
リクエスト | URLのみ | URLとリクエストボディ | URLとリクエストボディ |
答え | レスポンスコードと本文 | レスポンスコードと本文 | レスポンスコード |
POST リクエストの詳細については、リンクを参照してください。
4.4 DELETEメソッド
最後に、DELETE メソッドについての情報です。ここではすべてがシンプルです。
たとえば、サーバー上の特定のリソースを削除したいとします。私たちは彼に次のようなリクエストを送信します。
DELETE /path/resource?param1=value1¶m2=value2 HTTP/1.1
このリクエストを受信すると、サーバーは指定されたリソースを削除します。もちろん、あなたがそれを削除する権利を持っている場合を除きます。
GO TO FULL VERSION