request method:GETとPOST


HTTP 프로토콜은 대칭키를 활용하는 HTTPS와는 동작방식이 다릅니다. 
Requeset method는 HTTP 프로토콜을 사용하여 서버에 데이터(요청 정보)를 전달합니다.

画像ソース:https://dev.to/williamragstad/how-to-use-ajax-3b5e

1.GET方法


GETメソッドは、クライアントが表示するためにサーバから特定のデータを取得する方法を表示するために使用される.

[GETメソッドの使い方]


URLの末尾に?,リクエスト情報は(key=value)のハッシュマッピング形式の対?後ろに貼ってサーバーに転送します.リクエスト情報が複数ある場合は、&に分けます.
ex) www.url.com?name1=value1&name2=value2

[GETメソッドフィーチャー]

  • URLに要求情報を追加して伝送するが、要求情報が連続しているため長さが限られており、大容量のデータの伝送が困難である.
    -一度に要求される送信データ量(url+パーマ)は255文字に制限されます.
  • は情報を要求し,ユーザは容易に閲覧できるが,POST方式よりもセキュリティ上脆弱である.
  • HTTPパケットはクエリを介して転送され、Bodyは空の状態で転送される.
    -Bodyデータ型を示す「Content-Type」フィールドもHTTP Request Headerには入りません.
  • GETメソッドは、不要な反復要求を制限するためにキャッシュすることができる.静的コンテンツは、データ量が多く、変更が少ないため、同じリクエストを送信する必要はありません.したがって、ブラウザは、静的コンテンツを要求すると、同じ要求が発生したときにサーバに要求を送信するのではなく、キャッシュされたデータを使用して要求をキャッシュします.
  • GET方式はキャッシュを使用でき、POST方式より速い.
  • 2.POST方法


    POSTメソッドは、クライアントがサーバ値またはステータスを変更するためのメソッドです.(Insert, Update, Delete)

    [POSTメソッドの使用方法]


    HTTPパケットのBodyに傍受情報を隠してサーバに送信する.「要求リーダー」の「コンテンツ-タイプ」には、対応するデータ型が表示され、転送するデータ型を入力する必要があります.
    - Default : application/octet-stream
    -単純TEXT:text/plain
    -ファイル:multipart/form-data

    [POSTメソッドのプロパティ]

  • Bodyでは要求情報を非表示にしてサーバに送信するため、GETセキュリティよりも大容量データの転送に適している.
  • POSTリクエストはGETリクエストとは異なり、ブラウザ履歴にキャッシュされません.
  • クライアントは、データを符号化してサーバに送信し、受信したサーバ上でデータを復号する.
  • 3.GETとPOSTの違い

  • 目的:GETがサーバのリソースにデータを要求するとき.POSTは、サーバのリソースを作成または更新するために使用されます.
  • Bodyの有無:GETは、URLにおいて要求データをクエリーパラメータとして送信するので、HTTPメッセージにはBodyは存在しない.POSTは、データをBodyにロードするため、HTTPメッセージにBodyが存在する.
  • べき乗等性:GET要求はべき乗等であり、POSTはべき乗等ではない.
  • 何が待っているのか。


    べき乗などの事前定義は,演算を複数回適用しても結果が変わらないことを意味する.
    GETはクエリ方式であり,複数回の要求に応答しないが,POSTはリソースの状態を変更できるためべき乗ではないと考えられる.
    [参考文献]
    https://github.com/WeareSoft/tech-interview/blob/master/contents/network.md
    https://brilliantdevelop.tistory.com/33