[Back-end]HTTPって何?


HTTPとは?
HTTP(HyperText Transfer Protocol)は、インターネット上でデータを交換できるテキストベースの通信プロトコルです.
HTTPは、サーバが2つのリクエスト間でデータを保持しないことを意味するステータスレスプロトコルです.
ずっとつながっているわけではありません.
予めルールを定めることで,すべてのプログラムがそのルールに従って開発され,互いに情報を交換することができる.
HTTPの概要
HTTPは、HTMLドキュメントなどのリソースのインポートを許可するプロトコルです.
プロトコルは、2台以上のコンピュータまたは中央コンピュータと複数のコンピュータとの間でデータ通信を実現するための通信規約である.

以上のように、1つのドキュメントは、テキスト、レイアウト、画像、ビデオ、スクリプトなどのロードされたサブドキュメントに再編成されます.
クライアントとサーバは、個別のメッセージ交換によって通信します.
通常、ブラウザ(クライアント)によって送信されるメッセージをリクエスト(リクエスト)と呼ぶ.
これに対して、サーバは、応答として送信されるメッセージを応答(response)と呼ぶ.
片付けてください.
  • リクエスト:クライアント->サーバ
  • 応答:server->client
  • 上記ではHTMLドキュメントを例に挙げたが、plain textでJSONデータやXMLのような形で情報を渡すこともできる.
    通常、お客様は、HTML形式で受信する情報、JSON形式で受信する情報を指定します.
    HTTPシステムのコンポーネント
    HTTPはクライアント-サーバプロトコルです.
    リクエストは、オブジェクト、ユーザーエージェントによって送信されます.
    各リクエストはサーバに送信され、サーバはこれらのリクエストを処理し、応答を提供します.
    この要求と応答の間には、様々な操作を実行するためのゲートウェイやキャッシュとして機能するエージェントなど、複数のオブジェクトがあります.

    実際、ブラウザとリクエストを処理するサーバの間には、より多くのコンピュータが存在します.
    ルータやモデムなどがありますが、Webの階層設計のため、これらはネットワークや伝送層内に隠されています.
  • エージェント
    エージェントには「代替」という意味があります.プロトコルの面では,エージェント応答などで用いられる概念である.
    セキュリティ上の問題で直接通信できない関係でエージェントを使って中継する感覚.
    この中継機能をプロキシサーバと呼ぶ.
    エージェントは、キャッシュ、フィルタリング、ロード・バランシング、認証、ログ・レコードなど、さまざまな機能を実行できます.
  • Request
    クライアント連絡サーバはリクエストと呼ばれ、リクエストを送信するとリクエストの情報がサーバに送信されます.
    Request Method
  • GET:申請書類に使用する
  • POST:資料生成用
  • PUT:資料修正用
  • DELETE:データ削除用
  • 要求HTTP例
    GET https://velog.io/@ragi HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows NT 10.0l Win64; x64) ... 
    Upgrade-Insecure-Requests: 1
    このように使います.
    Response
    サーバは、要求に対する応答をクライアントに送信することを応答と呼ぶ.
    Status Code
    ステータスコードにはいろいろあります.全部で3桁で、大きく5種類に分けられます.
  • 1 XX(条件付き応答):要求を受けて作業を継続する.
  • 2 XX(成功):クライアント要求の動作を受信し理解し、処理を成功させる.
  • 3 XX(リダイレクト完了):クライアントは要求を完了するために追加のアクションを取る必要がある.
  • 4 XX(要求エラー):クライアントにエラーがあることを示します.
  • 5 XX(サーバエラー):サーバが有効要求を明確に実行していないことを示す.
  • 応答HTTP例

    参考資料
    https://developer.mozilla.org/ko/docs/Web/HTTP
    https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
    https://velog.io/@surim014/HTTP%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
    https://milkye.tistory.com/202