[HTTP]5つの主要な方法(GET/POST/PUT/PATH/DELETE)


📖 ✏️

  • TILシリーズの記事は「毎日勉強している知識のかけらを記録する」です.共有ではなく個人学習を記録するために作成されたことをお知らせします.
  • 他のシリーズで共有目的で作成されたロケータリング機能は、いつでも個別に作成されます.主に、TILシリーズで作成されたコンテンツから特定のトピックを選択し、より深い学習とまとめを行います.
  • 五つの主要なHTTP方法


    HTTPは様々な方法を定義している.よく使われる5つの主なHTTP方法を見てみましょう.適切な目的を達成するために,各方法の特徴と主な使用状況をまとめた.
    参考として,この方法は約束である.メソッド自体は機能を提供することはできませんが、サーバ上でメソッド名に一致するコンテンツでコードを実装する必要があります.
  • GET:リソースクエリ
    (最近はRepresentationがよく使われています)
  • POST:要求データを処理し、主に登録
  • に使用する
  • PUT:リソースを置き換え、リソースがない場合は
  • を作成します.
  • PATCH:リソース部分の変更
  • DELETE:リソースの削除
  • 他の方法も存在する.
  • HEAD:GETと同じですが、メッセージ部分は返さず、ステータスラインとヘッダのみを返します
  • OPTIONS:宛先リソースの通信可能オプション(方法)を説明
  • CONNECT:ターゲットリソース識別のサーバにトンネルを設定
  • TRACE:ターゲットリソースのパスに沿ったメッセージ返信テスト
  • 1.GET方法

    GET /search?q=hello&hl=ko HTTP/1.1 
    Host: www.google.com 
    GETメソッドは、リソースを照会するために使用されます.データをサーバに送信する場合は、query(クエリーパラメータ、クエリー文字列)に送信します.サーバは、対応する表示データを応答データとしてターゲットリソースに送信する.



    質問:GETメソッドを要求するときにquery(クエリーパラメータ、クエリー文字列)を使用するのはなぜですか?
    GETメソッドもPOSTメソッドと同様に,データを含むことができるメッセージボディが存在する.しかし,GETメソッドをチェックしないサーバは少ない.
    GETは、リソースを要求するために作成されます.URLのURIは、リソースがある場所を表します.メッセージ本体にデータをロードする必要はほとんどありません.したがって,一般のサーバはGET要求のメッセージボディをチェックしない.実際には,メッセージ本体にデータがあっても処理できない可能性が高い.

    2.POST方法

    POST /members HTTP/1.1 
    Content-Type: application/json
    
    {
        "username": "hello",
        "age": 20 
    }
    POSTメソッドは、要求データを処理するために使用される.メッセージ・ボディを介して要求データをサーバに転送すると、サーバは指定された論理処理に従って要求データを処理します.POSTメソッドでは、特定の論理を自動的に実行することはできません.各リソースがPOST要求を発行するとき、データをどのように処理するかには論理を実現する必要がある.POSTメソッドは,ターゲットリソースに定義された論理に基づいて独自の機能を実行する.主に、転送されたデータを使用して新しいリソースまたは処理プロセスを登録します.



    POSTメソッドは、次のタスクを要求するために使用されます.
  • HTML形式のデータブロックは、リソースロジックに提供される.
  • Yes)HTML FORMで入力した情報を使用して会員登録、注文等
  • 掲示板、ニュースグループ、メールリスト、ブログ、または類似のニュースグループにメールを公開
  • はい)掲示板作成・コメント
  • サーバがまだ確定していない新しいリソースの作成
  • Yes)新規受注の作成
  • 既存のリソースにデータを追加
  • Yes)文書末尾にコンテンツを追加
  • 処理プロセスは、データの作成または変更だけではありません.
  • Yes)値の変更だけでなく、受注のプロセス・ステータスが変更された場合、たとえば支払の完了->配信の開始->配信の完了などです.POSTは新しいリソースを生成しない可能性があります.
  • その他
  • 不明であればPOSTを使用する.例)クエリーデータをJSONに転送する必要がありますが、GETメソッドは使いにくいです.POSTは実際には何でもできる.
  • 3.PUT方法

    PUT /members/100 HTTP/1.1 
    Content-Type: application/json
    {
    	"username": "hello",
    	"age": 20
    }
    PUT法はリソース全体に取って代わった.既存のリソースがない場合は、新しいリソースを作成します.すなわち,オーバーライドの実行と考えられる.POSTとの違いは,クライアントがリソースの位置を知りURIを示す必要があることである.
    リソースが既に存在する場合は、既存のデータを置き換えます.

    リソースがない場合は、新しいデータが生成されます.

    リソースに完全に取って代わっていることに注目してください.ローカルに変更することはできません.

    4.PATCH方法

    PATCH /members/100 HTTP/1.1 
    Content-Type: application/json
    {
    	"age": 50
    }
    PATCHメソッドの一部は、リソースを変更します.部分的な変更が必要な場合にPATCHが使用できない場合は、POSTを使用します.


    5.DELETEメソッド

    DELETE /members/100 HTTP/1.1 
    Host: localhost:8080
    DELETEメソッドは、リソースを削除します.