TIL Day 28 HTTP & Network


AG

  • クライアント-サーバの概念について説明します.
  • ブラウザの動作原理がわかります.
  • HTTPメッセージの構成を説明することができる.
  • Chrome Network Tabが理解できます.
  • 自己学習
  • 自己指導のLessons.
  • クライアント-サーバアーキテクチャ




    ![]( https://images.velog.io/images/boo1996/post/1bf5c63a-575c-403c-9bb7-d992a9be7c9e/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7,%202021-10-23%2018-02-02.png
    クライアントは通常、プラットフォームによって区分され、ウェブサイトやスマートフォン、タブレットアプリケーション、デスクトップアプリケーションに分けられます.
    サーバにはWeb、ファイル、メールサーバなどがあります.
    データベースもデータプロバイダであり,サーバといえる.

    HTTPを使用するクライアント-サーバ通信とAPI

  • クライアントとサーバとの間の通信は、リクエスト(request)と応答(response)から構成される.リクエストがあってこそ応答がある.
  • protocol

  • クライアントとサーバとの間の通信には、固定された約束があります.
    これをプロトコルと呼びます.正常に通信するためには、プロトコル(規約)を守らなければならない.
  • HTTP(プロトコルタイプの1つ)

  • Webアプリケーションアーキテクチャでは、クライアントとサーバがプロトコルによって対話します.HTTPによって交換されるメッセージはHTTP 메시지と呼ばれる.
  • req : GET/americano HTTP/1.1 Host : starbucks.com
    res : HTTP/1.1 200 OK {'data' : 'americano'}
    ex)コーヒーを注文できる様々な方法(カウンター、アプリ、セルフサービス)->プロトコル

    プライマリ・プロトコル

  • HTTP , HTTPS , FTP , SMTP , SSH , RDP , Websocket , TCP , UDP
  • API

  • アプリケーションプログラミングインタフェースの弱者として、サーバは、リソースをよりよく利用するためにクライアントにインタフェースを提供する必要があります.
  • は、クライアントがサーバに正確な情報を要求するために、以下のAPIドキュメントを作成する必要がある.
  • は、通常、インターネット上のデータを要求する際にHTTPプロトコルを使用し、アドレス(URL、URI)でアクセスすることができる.
  • ex)
    /coffee/americano?quantity=2&syrup=hazelnet

    URL

  • Uniformn Resource Locatorの略で、ネットワーク上のWebページ、画像、ビデオなどのファイルが置かれている情報を表します.
    大きく分けてschemehostsurl-pathに分けられる.まず策定した案は通信方式(プロトコル)を決定した.一般的なWebブラウザではhttp(s)を使用します.hostsは、Webサーバの名前またはドメイン、IPを使用してアドレスを表します.url-pathは、Webサーバが指定したルートディレクトリから始まり、Webページ、画像、ビデオなどが置かれているパスとファイル名を表します.
  • URI

  • Uniform Resource Identifierの略で、通常のURLの基本要素scheme、hosts、url-path、query、bookmarkを含む.
    queryはwebサーバに送信される追加の問題です.
    以上、
  • http://www.google.com:80/search?q=JavaScript

    IP

  • ルータをインストールし、パスワードを設定するには、ルータ管理ページにログインする必要があります.このとき使用される4つの数字はIPアドレスと4つに分割されるため、IPv 4と呼ばれる.
    CLIウィンドウでnslookup naver.comを検索します.
    サーバIPアドレスは127.0.0.53です.
  • 覚えなければならないIPアドレス

    localhost127.0.0.1:現在使用中のローカルPCを指す.0.0.0.0255.255.255.255:ローカルネットワーク上のすべてのデバイスと通信するアドレスをブロードキャストする.サーバがブロードキャストアドレスとしてアクセス可能IPアドレスを指定すると、すべてのデバイスがサーバにアクセスできます.

    PORT


    これは、IPアドレスが指すPCのチャネルに接続できることを意味する.
    覚えなきゃいけないPORT22 : SSH 80 : HTTP 443 : HTTPS

    ドメイン

  • Webブラウザを介してあるサイトにアクセスすると、クライアントはIPアドレスを使用する正確な位置を一目で知ることは難しい.このため、ドメインは一目瞭然ではないIPアドレスをより明確に表示することができる.
  • NAVER IPアドレス:223.130.200.107
  • NAVERドメイン名:www.naver.com
  • DNS

  • ドメイン名システムの略で、IPアドレスをドメイン名に変更したり、逆の操作を実行したりするために開発されたDBシステムです.
    www.naver.comを検索すると、DNSは、IPアドレス125.209.222.12が一致していることを確認した後、クライアントに転送する.
  • HTTP


    HTMLなどの文書を転送するためのプロトコル(規約).
    HTTPは、WebブラウザとWebサーバとのコミュニケーションのために設計されています.従来のクライアントサーバモードでは、クライアントはHTTPメッセージフォームに応答する.

    HTTP Message


    クライアントとサーバの間でデータを交換する方法.
    1.リクエスト(request)
    2.応答(応答)
    request : POST/HTTP/1.1
    response : HTTP/1.1 403 Forbidden

    1.start line:start lineはリクエストまたは応答のステータスを表します.常に最初の行に配置されます.応答はstatus lineと呼ばれます.
    2.HTTPヘッダ:要求または説明メッセージに含まれる本文のヘッダのセットを指定します.
    空白行:見出しと本文を区切る空白行があります.
    4.body:要求に関連するデータまたは応答に関連するデータまたはドキュメントを含む.リクエストとレスポンスのタイプに応じて選択的に使用します.

    リクエスト


    クライアントがサーバに送信するメッセージ.
    1.実行する動作(GET/PUT/POST)または方式(HEADまたはOPTIONS)を記述するHTTPメソッドを示す.例えば、GETメソッドはリソースを受信する必要があり、POSTメソッドはデータをサーバに送信する.
    HTTPメソッドタイプ
    1.元の形式:?とクエリ文字列の絶対パス.POST、GET、HEAD、OPTIONSなどの方法とともに使用します.
    POST/HTTP 1.1
    GET/background.png HTTP/1.0
    HEAD/test.html?query=alibaba HTTP/1.1
    OPTIONS/anypage.html HTTP/1.0
  • absoluteフォーマット:完全なURLフォーマットで、エージェントに接続されているほとんどはGETメソッドとともに使用されます.
  • GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1
  • 権限フォーマット:ドメイン名とポート番号からなるURLの権限コンポーネント.HTTPトンネルを構築する場合、CONNECTとともに使用することができる.
  • CONNECT developer.mozilla.org:80 HTTP/1.1
  • asterisk形式:OPTIONSとアスタリスク*は、サーバ全体を表します.
  • OPTIONS * HTTP/1.1

    Headers


    リクエストヘッダ:fetchでインポートされたリソースまたはクライアント自体の詳細を含むヘッダを表します.User-Agent、Accept-Type、Accept-Languageなどのタイトルは、リクエストをより具体化します.
    Representation headers:bodyのリソースの情報を含むEntity headersと呼ばれています.

    Body


    要求された本文はHTTP messages構造の末尾にある.すべてのリクエストにbodyは必要ありません.GET/HEAD/DEEETE/OPTIONSなどのサーバにリソースを要求する場合は、本明細書は必要ありません.POSTまたはPUTのようないくつかの要求は、データを更新するために使用される.

    応答


    state line


    回答の最初の行を表します.次の情報が含まれています.
    1.現在のプロトコルのバージョン
    2.ステータスコード-要求の結果を示す(200302404等)
    3.ステータステキスト-ステータスコードの説明

    Headers


    body


    どちらもリクエストと同じです.

    stateless


    その名の通り、状態を保たないという意味です.
    クライアントとサーバがHTTPを介して通信する過程で、HTTPはクライアントまたはサーバの状態をチェックしない.つまり,HTTPはプロトコル(規約)にすぎず,状態を保存しない.これは第3節で勉強します.
    したがって,無状態がHTTPの大きな特徴であることを覚えておけば十分である.

    MDN:HTTP要求方法

    GET:データ受信時のみ使用HEAD:GET法と同じであるが、応答本文を含まない.POST:データを送信するために使用される.これは、サーバのステータスの変化や副作用を引き起こすことが多い.PUT:宛先リソースのすべての現在の表示を要求負荷に変更します.DELETE:特定のリソースを削除します.OPTIONS:宛先リソースを設定するための通信.TRACE:メッセージループは、宛先リソースのパスに沿って実行され、テストに戻る.PATCH:リソースの変更にのみ使用される部分.

    MDN:HTTPメッセージ


    HTTPメッセージはサーバとクライアントの間でデータを交換する方式である.メッセージタイプは、リクエスト(request)とレスポンス(response)に分けられます.
    リクエスト(request):HTTPリクエストは、サーバが特定の操作を行うためにクライアントから送信されるメッセージです.
  • HTTPメソッドは、GET/POT/POST/HEAD/OPTIONSを使用します.
  • の第2の要求ターゲットは、主にURL、プロトコル、ポート、およびドメインの絶対パスである可能性がある.
  • ヘザー

    MDN:HTTP状態コード