TIL Day 28 HTTP & Network
AG
クライアント-サーバアーキテクチャ
![]( 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
protocol
これをプロトコルと呼びます.正常に通信するためには、プロトコル(規約)を守らなければならない.
HTTP(プロトコルタイプの1つ)
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
/coffee/americano?quantity=2&syrup=hazelnet
URL
大きく分けて
scheme
、hosts
、url-path
に分けられる.まず策定した案は通信方式(プロトコル)を決定した.一般的なWebブラウザではhttp(s)を使用します.hostsは、Webサーバの名前またはドメイン、IPを使用してアドレスを表します.url-pathは、Webサーバが指定したルートディレクトリから始まり、Webページ、画像、ビデオなどが置かれているパスとファイル名を表します.URI
queryはwebサーバに送信される追加の問題です.
以上、
http://www.google.com:80/search?q=JavaScript
IP
CLIウィンドウでnslookup naver.comを検索します.
サーバIPアドレスは127.0.0.53です.
覚えなければならないIPアドレス
localhost
、127.0.0.1
:現在使用中のローカルPCを指す.0.0.0.0
、255.255.255.255
:ローカルネットワーク上のすべてのデバイスと通信するアドレスをブロードキャストする.サーバがブロードキャストアドレスとしてアクセス可能IPアドレスを指定すると、すべてのデバイスがサーバにアクセスできます.PORT
これは、IPアドレスが指すPCのチャネルに接続できることを意味する.
覚えなきゃいけないPORT
22 : SSH
80 : HTTP
443 : HTTPS
ドメイン
223.130.200.107
www.naver.com
DNS
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
GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1
CONNECT
とともに使用することができる.CONNECT developer.mozilla.org:80 HTTP/1.1
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リクエストは、サーバが特定の操作を行うためにクライアントから送信されるメッセージです.
MDN:HTTP状態コード
Reference
この問題について(TIL Day 28 HTTP & Network), 我々は、より多くの情報をここで見つけました https://velog.io/@boo1996/TIL-Day-28-HTTP-Networkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol