02.HTTP


1.HTTP Yes


HTTP(Hypertext Transfer Protocol)は、HTMLドキュメントなどのサーバとクライアント間で情報を交換できるプロトコルです.HTTPはWeb上で使用する.
💡プロトコルは,コンピュータ間のデータ交換方式を定義するルール体系の集合である.簡単に言えば、互いに定義されたルールです.

2.HTTP特性

  • HTTPメッセージはサーバとクライアントにより解析される.
  • HTTPは接続状態を保持しない非接続プロトコルである.
    →これは、クライアントが以前に要求した内容を覚えていないことを意味します.
  • 非接続プロトコルであり、要求/応答方式で動作する.
  • ステータスレスプロトコルでもあり、データ要求ごとに独立して管理される.すなわち、前のデータ要求と次のデータ要求は互いに関連していない.
  • 複数の要求を処理し、サーバ負荷を軽減する性能上のメリットがある.
  • ただし、非接続性であり、状態がないため、通信ごとに垂直接続が確立されるため、クライアントは認証を継続する必要があるという欠点がある.
    この欠点を補うためにCookieとSessionを使います.
  • HTTP/1.0で紹介したHTTPヘッダはHTTPの拡張や実験を容易にする.
  • HTTPプロトコルは通常TCP/IP通信を使用し、基本ポートは80である.
  • 💡HTTPのデフォルトポート番号が80であるのは、1991年のHTTP 0.9バージョンで初めて記録され、デフォルトポートに指定されたHTTPを記録する前から使用されていなかった空のポートスローガンのためである.

    3.要求と応答


    HTTPプロトコルを使用してデータを交換するには、以下のように要求を送信して応答を受信する必要があります.

    💡リクエストと応答は、クライアントとサーバの間で行われます.
    クライアントは要求を送信する側であり、Web上ではブラウザであり、サーバは要求を受信し、要求に応答する側であり、通常はデータを送信するリモートコンピュータである.

    01.要求


    要求する場合、URLを使用してサーバに特定のデータを要求することができます.
    リクエストを実行する場合は、HTTPリクエストメソッドを使用します.
    HTTP要求方法はHTTP Verbsとも呼ばれ、以下の主な方法を有する.
  • GET:リクエストリソース
  • POST:新規リソース作成
  • PUT:リソースへのすべての変更/変更
  • DELETE:リソースの削除
  • PATCH:リソースの変更・変更(更新と同様)
  • OPTIONS:サーバサポートの方法を検証する.使用CORS
  • HTTPリクエストメソッドでは領域を区切ることもできます.

    ① Request Line


    まず、上記のURL、要求方法、HTTPバージョン情報を含み、要求メッセージの最初の行にマークされます.

    ② Request Header


    2行目はタイトル領域です.ヘッダには、クライアントPC、ブラウザ情報、Cookieなど、さまざまなクライアント環境に関する情報が含まれています.
    ユーザーエージェント、アップグレード-セキュリティリクエスト、言語の受け入れなど.

    ③ CRLF


    行を改行コマンドで区切ります.

    ④本文


    クライアントがデータを入力する領域を格納します.
    GET https://velog.io/@jgone2 HTTP/1.1		          // 시작줄
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... // 헤더
    Upgrade-Insecure-Requests: 1

    02.応答


    応答はHTTPプロトコルのバージョン、ステータスコード、ステータスメッセージ、応答ヘッダ、本文からなる.

    01.HTTP Status code(ステータスコード)

    상태 코드サーバがクライアントに応答状態を通知する手段であり、大きく5つに分類される.
  • 1 xx:要求情報の処理中
  • 2 xx:正常処理要求(Success)
  • 3 xx:より多くのリクエストを実行してリクエストを完了する必要がある
  • 4 xx:要求されたリソースがサーバにない(クライアントエラー)
  • 5 xx:サーバ処理要求失敗(サーバエラー)
  • 📚Reference


    CAPTAIN PANGYO
    TCP SCHOOL
    John Grib
    surim's develog
    開発レコード
    Morning Star★
    Mozilla