「図解Http」第1章Webおよびネットワークの基本を理解する

前書き

「グラフィックhttp」は、コンピュータネットワークを使い始めるのに非常に適した本です。本の写真は鮮やかで鮮やかで、Httpプロトコルとネットワークの構成を理解するのに役立ちます。本の中でより重要な部分は、httpプロトコル、httpメッセージの構成、httpだと思いますステータスコードとHttpsについても、本で詳しく説明しています。コンピュータネットワークをすぐに使い始めたい場合は、この優れた入門書を読むことができます。読書を嫌う人も、私の概要を読むことができます。一緒に学び、上達できることを願っています。「Tcp / IP」については後で詳しく説明します。


第1章Webおよびネットワークの基本

1.1 HTTPプロトコルを使用してWebにアクセスする

知りたい人はいますか?ブラウザにアドレスを入力してEnterキーを押し、アクセスしたいページに移動します。

ここに画像の説明を挿入

当然のことながら、薄っぺらなWebページは生成されず、Webブラウザのアドレスバーに指定されたURLに従って、WebブラウザがWebサーバー側からファイルリソース(リソース)などの情報を取得し、Webページを表示します。

リクエストを送信してサーバーリソースを取得するこのようなWebブラウザーは、クライアントと呼ばれます。

ここに画像の説明を挿入

Webは、HTTP(HyperText Transfer Protocol、HyperText Transfer Protocol)と呼ばれるプロトコルを仕様として使用して、クライアントからサーバーへの一連の操作を完了します。プロトコルは、ルールの合意を参照します。WebはHTTP上に構築されていると言えますプロトコルで通信します。

Httpは1989年3月に誕生しました。CERN(欧州核研究機構)のティムバーナーズリー(Tim Berners Lee)博士は、2か所の研究者が知識を共有できるようにするコンセプトを提案しました。基本的な考え方は次のとおりです。複数のドキュメントの相互接続によって形成されたHyperText(HyperText)は、参照可能なWWW(World Wide Web)に接続されます。

ここに画像の説明を挿入

次の3つのWWW構築技術が提案されています。つまり、ページのテキストマークアップ言語としてSGML(Standard Generalized Markup Language)を使用するHTML(HyperText Markup Language)。 HTTP;ドキュメントが配置されているURL(Uniform Resource Locator)を指定します。これについては後で詳しく説明します。


1.2 TCP / IPネットワーク基盤

1.2.1 TCP / IPプロトコルファミリ

コンピュータとネットワークデバイスが相互に通信するには、両方の当事者が同じ方法に基づいている必要があります。例えば、通信相手をどのように検出するか、どちらが先に通信を開始するか、どの言語を通信に使用するか、どのように通信を終了するかなどをあらかじめ決めておく必要があります。異なるハードウェアとオペレーティングシステム間の通信には、これらすべてにルールが必要です。この種のルールをプロトコルと呼びます。

ここに画像の説明を挿入

このようにインターネットに関連するプロトコルを集めることをまとめてTCP / IPと呼びます。TCP / IPは、TCPとIPの2つのプロトコルを指すとも言われています。TCP / IPは、IPプロトコルの通信プロセスで使用されるプロトコルファミリの総称であるとも言われています。

1.2.2 TCP / IPの階層化管理

TCP / IPプロトコルファミリの重要なポイントは、レイヤリングです。TCP / IPプロトコルファミリは、レベルに応じて、アプリケーション層、トランスポート層、ネットワーク層、データリンク層の4つの層に分かれています。階層型TCP / IPは有益です。たとえば、インターネットが1つのプロトコルのみで調整されている場合、特定の場所で設計を変更する必要があるときは、すべての部品を全体として交換する必要があります。レイヤー化後、変更したレイヤーを置き換えるだけです。各レイヤー間のインターフェースを計画した後、各レイヤーの内部設計を自由に変更できます。

TCP / IPプロトコルファミリの各層の役割は次のとおりです。

  • アプリケーション層:アプリケーションサービスをユーザーに提供するときの通信アクティビティを決定します。TCP / IPプロトコルスイートには、さまざまな一般的なアプリケーションサービスがあらかじめ格納されています。たとえば、FTP(ファイル転送プロトコル、ファイル転送プロトコル)およびDNS(ドメインネームシステム、ドメインネームシステム)サービスは、その2つです。HTTPプロトコルもこの層にあります。

  • トランスポート層:トランスポート層は、上位のアプリケーション層へのネットワーク接続にある2台のコンピューター間のデータ伝送を提供します。トランスポート層には、TCP(伝送制御プロトコル、伝送制御プロトコル)とUDP(ユーザーデータプロトコル、ユーザーデータグラムプロトコル)という異なるプロパティを持つ2つのプロトコルがあります。

  • ネットワーク層:ネットワーク上を流れるデータパケットを処理するために使用されます。データパケットは、ネットワークを介して送信されるデータの最小単位です。この層は、相手のコンピュータに到達し、データパケットを相手に送信するためのパス(いわゆる送信ルート)を指定します。複数のコンピュータまたはネットワークデバイスを介して他のコンピュータと送信する場合、ネットワーク層の役割は、多くのオプションから送信ルートを選択することです。

  • リンク層(データリンク層、ネットワークインターフェイス層とも呼ばれます):接続ネットワークのハードウェア部分を処理するために使用されます。制御オペレーティングシステム、ハードウェアデバイスドライバー、NIC(ネットワークインターフェイスカード、ネットワークアダプター、つまりネットワークカード)、および光ファイバーと他の物理的に見える部品(コネクターと他の伝送メディアを含む)を含みます。ハードウェアの範囲は、リンク層の範囲内です。

ここに画像の説明を挿入

TCP / IPプロトコルスイートをネットワーク通信に使用すると、階層的な順序で相手と通信します。送信側はアプリケーション層から下り、受信側はアプリケーション層に上がります。

例としてHTTPを使用して説明します。最初に、送信者としてのクライアントは、アプリケーション層(HTTPプロトコル)で特定のWebページを表示するためにHTTP要求を送信します。次に、送信を容易にするために、アプリケーション層から受信したデータ(HTTP要求メッセージ)がトランスポート層(TCPプロトコル)で分割され、各メッセージにシリアル番号とポート番号が付けられて、ネットワーク層に転送されます。第二に、ネットワーク層(IPプロトコル)で、通信先のMACアドレスを付加してリンク層に転送します。これにより、ネットワークへの通信要求の準備が整います。受信側のサーバーは、リンク層でデータを受信し、それをアプリケーション層に至るまで、上位層に順番に送信します。アプリケーション層に送信される場合、クライアントから送信されたHTTPリクエストが実際に受信されたと見なすことができます。

レイヤー間でデータを送信する場合、送信者は通過するたびにレイヤーのヘッダー情報をマークする必要があります。逆に、受信側が層から層へデータを送信すると、対応するヘッダーは層を通過するたびに削除されます。データ情報をパッケージ化するこの方法は、カプセル化と呼ばれます。

ここに画像の説明を挿入


1.3 HTTPに密接に関連するプロトコル:IP、TCP、DNS

1.3.1送信を担当するIPプロトコル

IPプロトコルの役割は、さまざまなデータパケットを相手に送信することです。実際に相手に確実に届けられるようにするには、さまざまな条件を満たす必要があります。2つの重要な条件は、IPアドレスとMACアドレス(メディアアクセス制御アドレス)です。

IPアドレスはノードが割り当てられているアドレスを示し、MACアドレスはネットワークカードが属する固定アドレスを示します。IPアドレスはMACアドレスとペアにすることができます。IPアドレスは変更できますが、MACアドレスは基本的に変更されません。

ここに画像の説明を挿入

1.3.2信頼性を確保するためのTCPプロトコル

階層によれば、TCPはトランスポート層にあり、信頼性の高いバイトストリームサービスを提供します。いわゆるバイトストリームサービス(Byte Stream Service)とは、送信を容易にするために、データの大きなブロックをセグメント(セグメント)単位でデータパケットに分割して管理することをいいます。信頼性の高い送信サービスとは、データを正確かつ確実に相手に送信する機能を指します。つまり、TCPプロトコルは、データを分割して大きなデータを送信しやすくし、最終的にデータが相手に送信されたかどうかをTCPプロトコルで確認できます。

データをターゲットに正確に配信するために、TCPプロトコルは3ウェイハンドシェイク戦略を使用します。TCPプロトコルを使用してデータパケットが送信された後、TCPは送信後の状況を無視せず、配信が成功したかどうかを相手に確実に確認します。21ハンドシェイクプロセスでは、TCPフラグ(フラグ)〜SYN(同期)およびACK(確認応答)が使用されます。

送信側は、最初にSYNフラグを含むデータパケットを相手に送信します。受信後、受信側はSYN / ACKフラグ付きのデータパケットを送り返し、確認メッセージを表示します。最後に、送信者は、「ハンドシェイク」の終わりを表すACKフラグ付きのデータパケットを送り返します。ハンドシェイクプロセス中に不可解な割り込みが発生した場合、TCPプロトコルは同じデータパケットを同じ順序で再度送信します。

ここに画像の説明を挿入

1.3.3ドメイン名解決を担当するDNSサービス

DNS(ドメインネームシステム)サービスは、HTTPプロトコルのようなアプリケーション層のプロトコルです。ドメイン名からIPアドレスまでの解決サービスを提供します。

コンピュータには、IPアドレス、ホスト名、ドメイン名を割り当てることができます。たとえば、www.hackr.jpです。

ユーザーは通常、IPアドレスを介して直接アクセスする代わりに、ホスト名またはドメイン名を使用して相手のコンピューターにアクセスします。IPアドレスの一連の純粋な数字と比較すると、文字と数字を使用してコンピューター名を指定する方が、人間の記憶習慣と一致しています。

しかし、コンピュータが名前を理解することは比較的困難になります。コンピュータは長い数字列の処理に優れているためです。上記の問題を解決するために、DNSサービスが登場しました。DNSプロトコルは、ドメイン名を使用してIPアドレスを検索するサービス、またはIPアドレスからドメイン名を逆にチェックするサービスを提供します。

ここに画像の説明を挿入

1.3.4さまざまなプロトコルとHTTPプロトコルの関係

HTTPプロトコルと切り離せないTCP / IPプロトコルスイートのさまざまなプロトコルについて学習した後、この図を使用して、HTTPプロトコルを使用する通信プロセスでIPプロトコル、TCPプロトコル、およびDNSサービスがどのような役割を果たすかを理解します。 。

ここに画像の説明を挿入

1.3.5 URI 和 URL

URI(Uniform Resource Identifier)と比較すると、URL(Uniform Resource Locator)に慣れています。URLは、Webブラウザなどを使用してWebページにアクセスするときに入力する必要があるWebページのアドレスとまったく同じです。たとえば、下図のhttp://hackr.jp/がURLです。

ここに画像の説明を挿入

URIは文字列を使用して特定のインターネットリソースを識別し、URLはリソースの場所(インターネット上の場所)を表します。表示URLはURIのサブセットです。まず、絶対URIの形式を理解しましょう。

ここに画像の説明を挿入

  • ログイン情報(認証):サーバーからリソースを取得する際に必要なログイン情報(本人認証)として、ユーザー名とパスワードを指定します。このアイテムはオプションです。

  • サーバーアドレス:絶対URIを使用して、アクセスするサーバーアドレスを指定します。アドレスは、hackr.jpのようなDNS解決可能な名前、または192.168.1.1のようなIPv4アドレス名、または角括弧を使用する[0:0:0:0:0:0:0:1]にすることができます。囲まれたIPv6アドレス名。

  • サーバー・ポート番号:サーバーが接続されているネットワーク・ポート番号を指定します。この項目もオプションで、省略した場合はデフォルトのポート番号が自動的に使用されます。

  • 階層のあるファイルパス:サーバー上のファイルパスを指定して、指定したリソースを見つけます。これは、UNIXシステムのファイルディレクトリ構造に似ています。

  • クエリ文字列:指定したファイルパスのリソースについて、クエリ文字列を使用して任意のパラメーターを渡すことができます。このアイテムはオプションです。

  • フラグメント識別子:フラグメント識別子は通常、取得したリソース内のサブリソース(ドキュメント内の特定の位置)をマークするために使用できます。ただし、RFCはその使用を明確に規定していません。このアイテムもオプションです。

おすすめ

転載: blog.csdn.net/qq_36694674/article/details/106179546