getとpost


HTTPメソッドはクライアントがサーバに要求する2つの一般的なメソッドである.これがgetとpostの方法です.じゃあ2つ交換します

1. GET


名前の通りgetは情報を取得してクエリーする方法です.
?id=123&age=100
「id」と「age」をキーにクエリーが表示されます.
? タグはURLの末尾を示し、idというキーに対してmangという値、pwというキーに対してkyuという値を示すことがわかります.複数の鍵や値を送信する場合、使用&接続のGETメソッドは最低のセキュリティを持たないため、実際のサイトでIDやPWなどの重要な情報を使用するとプライバシーが漏れることがあります.個人情報が含まれていない場合、GETメソッドを使用してデータ*を露出することは、通常、キャッシュに使用され、速度を速めたり、お気に入りを容易にしたりするために使用されます.あるアイテムaにお気に入りを追加すると、そのアイテム名aの情報をurlに追加することでお気に入りを作成できます.
詳細については、MangKyu's Diaryを参照してください.

1-1. GETの特徴


  • getリクエストはキャッシュできます.(getを使用してサーバにリソースを要求すると、Webキャッシュは要求をブロックしてサーバからリソースを再ダウンロードするのではなく、リソースのコピーを返します.HTTPヘッダーでは、chche-control-headerを使用してキャッシュの選択を指定できます.)

  • アドレスに値があります.

  • getリクエストはブラウザ履歴に保持されます.

  • getリクエストは、ブックマークであってもよいし、朝礼であってもよい.
  • 	/recommend/bookmark 와 같이 조회할 수 있다.

  • getリクエストは長さの制限で、ブラウザごとに異なる制限があります.(msインターネットexplorer制限2048文字、chrome制限37748文字、firefox制限100万文字、safari制限40万文字、オペラ制限30万文字)

  • getリクエストはパラメータを露出するので、安全のために重要な情報を含めるべきではありません.
  • 1-2. GETを正しく作成


    作成は機密情報を含まない.
    /category?categoryId=3&page=3 

    2. POST


    post方式はアドレスウィンドウにありません.
    POSTは、クライアントからサーバにデータを送信してリソースを作成または更新する方法である.たとえば、掲示板に投稿などを作成します.
    POSTは、送信するデータをHTTPメッセージ本文に入れてサーバに送信する.(bodyのタイプはContent-Type-headerに依存)
    GETをURLパラメータに送信するname 1=value 1&name 2=value 2がbodyに含まれます.
    POSTにデータを転送する場合、長さに制限されないため、大容量データを送信する際にこれらのデータを使用するか、GETのように外部に表示するのではなく、安全保護が必要な場所でこれらのデータを使用する.
    (ただし、データを暗号化しないと、bodyのデータも最終的に表示されます.)
    POSTによるデータ転送は、通常、HTMLフォームを介してサーバに送信される.

    2-1. POST特性


  • キャッシュしません.

  • ブラウザ履歴には保持されません.

  • ブックマークがありません.

  • データ長に制限はありません.

  • アドレスに値は表示されません.
  • 3.GETとPOSTの違い


    目的:getがサーバ上のリソースからデータを要求する場合、postはサーバ上のリソースの作成または更新に使用します.
    body有無:getは要求したデータをurlパラメータにロードするので、HTTPメッセージにはbodyはありません.ただしpostはbodyにデータを送信し、HTTPメッセージにbodyが存在する.
    不変性:getはクエリーリソースにすぎないので、複数回のリクエストの応答は同じです.postはリソースの作成または更新に使用されるため、応答が異なります.(サーバが変更される場合があります)
    ロングファイルまたは画像:postはデータ長に制限されないため、ロングコンテンツまたは画像ファイルの場合、post、単純テキストコンテンツはgetに移動します.
    参考資料
    https://korbillgates.tistory.com/182
    https://noahlogs.tistory.com/35
    https://www.w3schools.com/tags/ref_httpmethods.asp
    https://blog.outsider.ne.kr/312
    https://mangkyu.tistory.com/17
    https://developer.mozilla.org/ko/docs/Web/HTTP/Caching