📝

Webとネットワーク技術

2023/02/21に公開

クライアントとサーバー

  • ネットワーク上で情報やサービスを提供する役割を持つコンピューターを「サーバー」、サーバーから提供された情報やサービスを利用する、役割を持つコンピューターを「クライアント」と言います。

  • Webサイトを閲覧する際にクライアントとサーバーが情報のやり取りをしている。

  • Webサーバーを提供しているのがサーバーと言います

  • サーバーから提供された情報やサービスを、利用する役割を持つコンピューターをクライアントと言います

  • Webサイトを閲覧する際もクライアントとサーバーがやり取りしており、Webサイトを提供しているのが、サーバーWebサイトを表示するのがクライアントの部分になります。

  • Webサイトを提供するサーバーをWebサーバーと呼ぶ。

インターネットとは

  • スマートフォンやパソコンを利用してWebサイトを閲覧する場合、インターネットサービスプロパイダーが提供するサービスを利用し、インターネットへ接続する必要があります。
  • インターネットとは、自宅や会社など小さな範囲のネットワークが一つ一つお互いに接続し、世界中のネットワークがつながった環境のことです。Webサイトを世界中で提供することができます。

インターネットサービスプロバイダー

  • 「プロバイダー」や「ISP」と略されることが多く、各国に複数のプロバイダーが存在します。
  • スマートフォンやパソコンはプロバイダーを接続し、プロバイダー同士で接続し合うことで、世界中が1つのネットワークとして形成され、インターネットとして成り立ちます。

プロコトルとは

  • ネットワークに接続された機器同士が通信をする時の、あらかじめ決められた共通のルールや手順のことを言う
  • お互いに同じプロトコルを利用することにより、データのやり取りが可能になる。
  • HTTPは「Hyper Text Transfer Protocol」の略で、HyperText(Webコンテンツ)を送受信するためのプロトコルを指します。

TCP/IPとは

- TCP/IP(Transmission Control Protocol)とは、インターネットにおけるさまざまなサービスを実現するためのプロトコルの集まりのこと。
- インターネットへのアクセスが可能なスマートフォンやパソコン、サーバーといったコンピューターは全てTCP/IPに対応してます。

HTTPもTCP/IPの一部

  • TCP/IPは役割ごとに階層化されており、HTTPもTCP/IPにおけるアプリケーション同士のやり取りを行う層のプロトコルの中に含まれます。HTTPにはWebサーバーがどこにあるのか、また、Webコンテンツをどのように転送するのか?といった取り決めがなく、インターネットにおいて、HTTPだけでは足りない部分をTCP/IPの他のプロトコルが補うことで、お互いの接続することを可能としている。
  • プロトコル名
    • HTTP(HyperTextTransferProtocol)
      • WebブラウザとWebサーバーの間でやり取りをするときに使用する、データ送受信用のプロトコル
    • FTP(File Transfer Protocol)
      • コンピューター間でファイルのやり取りをするときに使用する、ファイルの送受信用のプロトコル
    • SMTP(Simple Mail Transfer Protocol)
      • 電子メールを送信するときに使用する、メール送受信用のプロトコル
    • POP(Post Office Protocol)
      • ユーザーがメールサーバーから自分のメールを取り出すときに使用する、芽0ーる受信用のプロトコル

TCP/IP

  • TCP/IPは役割毎に、以下の4つの階層(レイヤー)に分かれています。
    • アプリケーション層(レイヤー4)
      - アプリケーションとのやり取りを規定(HTTP,SMTP,FTP)
    • トランスポート層(レイヤー3)
      • データの分割や品質補償を規定(TCP,UDP)
    • インターネット層(レイヤー2)
      • ネットワーク間の通信を規定(IP,ICMPなど)
    • ネットワークインターフェース層(レイヤー1)
      • コネクタ形状や周波数といった、ハードウェアに関する規定(イーサネット、Wi-Fiなど)
    • レイヤー毎の役割に応じたプロトコルが各レイヤーで利用されており、4つの階層のプロトコルが連携する事により、インターネットでの通信が可能になる。

アプリケーション層の機能

  • アプリケーション層では、Webブラウザやメールソフトなどのアプリケーションごとのやり取りを規定しています。
    これらのアプリケーションの多くはクライアント/サーバーシステムで構成されており、クライアントとサーバー間のサービスの要求と応答で成り立っている、またアプリケーション層では、扱うデータをネットワークで転送するのに適したデータ形成に変換し、逆にネットワーク経由で受け取ったデータを私たちが理解できるように、変換する役割も持っている。
    データ転送処理などはアプリケーション層より下位の層が担当している。

TCPとUDP

  • アプリケーション層のやり取りに応じて実際にデータの転送処理をしているのがトランスポート層にいちするTCP(Transmisson Control Protocol)やUSP(User Datagram Protocol)といったプロトコルです。
  • データの転送は分割して行われ、TCPでは分割されたデータの順序や欠落をチェックしているのに対して、USPは分割されたデータの順序や欠落を保証していない。
  • TCPはWebサイトやメールなどデータ損失が起きると困るようなアプリケーションで利用されており、UDPは信頼性が低いものの、通信の手続きが簡略的されているぶん、効率よく通信できるため、動画ストリーミングなどで利用されている

IPアドレスとポート番号

IPアドレス

  • インターネットに接続されたコンピューター特定し、データの行き先を管理するために利用されているのがIPアドレスと呼ばれ識別番号です。
  • インターネットにおいてIPアドレスは世界中でたった一つであり、世界中で利用できる「住所」のようなもの。
  • コンピューターに割り当てられた「住所」を指定することで、インターネット上の特定のコンピューターへ訪問できます。

ポート番号

  • Webサービスやメールアドレスといったように、コンピューターはさまざまなサービスを提供しております。
    IPアドレスは接続したいコンピューターを指定できますが、コンピューターが提供するサービスまでは指定できませんので、コンピューターが提供するサービスを指定するためにポート番号が使われる
  • ポート番号とは、コンピューター内部にある各サービスを識別するための番号でマンションやアパートでいう部屋番号に当たります。
  • 例えばあるマンションに住むAさんに宅配便を届ける際に住所(IPアドレス)だけでは、Aさんに届けることはできないように、部屋番号(ポート番号)を住所と一緒に記載する必要があります。
  • このようにIPアドレスとポート番号を指定することで特定のコンピューターの特定のサービスを受け取ることができます。

Webサーバーは80番

  • ポート番号は「0ー65535」までの数字で、範囲によって用途が決められる。
  • サービス(アプリケーション)によっては使用するポート番号が独自に決めることができますが、一般的にWebサーバー(HTTP)であれば80ばんといったようにポート番号が決まっており、ポート番号によってサービスを識別できる。

URLとドメイン

URL

  • 普段Webサイトを閲覧する際はhttps://app.the-online-class.com/top
    という文字列を使いますが、この文字列を使いますが、この文字列をURL(Uniform vResource Locator)と言います。
  • URLJha
  • Webサイトの場所を示す際に用いられることが多く、「アドレス」や「Webアドレス」とも呼ばれ、私たちにとっても馴染みのあるものです。
  • URLはWebサイトだけでなく、インターネットやLANなどのネットワーク上にあるデータやファイルの場所と、それらを取得する方法を指定するためにも利用される。(国土交通省サイト)
  • http://www.chiseki.go.jp/situation
    を例にとると、
  • 「HTTP」はファイルを取得する方法と指定しており、
  • 「www.chiseki.go.jp」はファイル取得先のサーバーを指定。
  • 「situation(情勢ページ)」はファイルを取得するの意味になる。
  • しかし、例に上げたURLにはポート番号の指定がありません。理由は、HTTPを用いて、サーバーに接続する場合は、ポート番号80を使用すると決まっているため、省略しているためです。(下記は一緒のページに飛ぶ)
  • http://www.chiseki.go.jp/situation
  • http://www.chiseki.go.jp:80/situation
    Httpsだと(443がポート番号になる)
  • https://app.the-online-class.com/top
  • https://app.the-online-class.com:443/top

ドメイン

  • インターネット上に存在するサーバーを特定し、接続するための識別番号としてIPアドレスも存在するが、上記の例では、接続するサーバーの指定にIPアドレスではなく、「www.chiseki.go.jp」と「app.the-online-class.com」
    というドメインを利用している。
  • 数字で表記されるIPアドレスは覚えにくく扱いにくいため、ドメインがIPアドレスの別名として、利用される。
  • ドメインはグローバルIPアドレスと同様に一意であり、世界中において、同じドメインは一つも存在しない。

DNS

  • ドメインは文字列で記述されるため、わかりやすいですが、インターネット上はコンピューター同士の接続には、IPアドレスが利用されるため、コンピューターへ接続するには、IPアドレスが必要になる。
  • そのため、ドメインを利用してコンピューターへ接続する際は、ドメインをIPアドレスへと変換する必要がある。
    ドメインを利用してコンピューターへ接続する際は、ドメインをIPアドレスに変換する必要がある。

ドメインとIPアドレスの変換

  • ドメインをIPアドレスへと変換する仕組みをDNS(Domain Name System)と言います。
    そしてDNSのサービスを提供するサーバーをDNSサーバーと言います。
  • DNSの仕組みは「電話帳」と似ています。
    • 電話をかける際は電話番号が必要となりますが、氏名と電話番号が紐づいていて管理されていた電話帳があれば、相手の氏名があれば電話帳を利用することで、電話番号を知ることができます。
    • DNSではIPアドレスとドメインが紐づかれていて管理されているため、DNSを利用することで、ドメインから、IPアドレスを知ることができます
  • ドメインは世界中に無数存在するため、複数のDNSサーバーがツリー状の階層構造を取り、分散処理することで、多量のドメインを効率良く処理している。
    ### IPアドレスの問い合わせ
  • URLにドメインが利用されている場合は、必ずDNSサーバーへIPアドレスの問い合わせを行なっている。
  • DNSサーバーにより取得したIPアドレスをもとに、Webサーバーへ接続している。

HTTP

  • Websサイトを閲覧する際は、スマートフォンやパソコンに搭載されているWebブラウザを起動し、Webブラウザのアドレス欄に閲覧したいWebサイトのURLを直接入力したり、あるいは既に登録しておいたブックマークやWebサイトのリンクをクリックしたりすることで行っている。
  • これらの閲覧は、Webブラウザが Webサーバーに要求を送り、Webサーバーはその要求に対して応答を返すといった単純なやり取りによて実現する。
  • 上記のやりとりの手順や内容を決めているのがHTTP(HyoerTextTransferProtocol)です。
  • HTTPはクライアント(Webブラウザ)とサーバー(Webサーバー)間においてWebコンテンツを送受信するためのプロトコルです。
  • 実際に Webサイトの閲覧する一連の動作をもとに、HTTPによるクライアントとサーバー間のやりとりを見てみましょう。

クライアントとサーバー間のやりとり

  • Webサイトを閲覧する際は大きく分けて5つのステップで行われる。
    - 1.Webブラウザのアドレス欄にURLを入力、あるいはWebサイト内のリンクをクリック
    - 2.URLやリンクの情報を基づいてWebサーバーの対してデータを要求
    - 3.Webブラウザにより要求を受け取ったWebサーバーは要求内容を解析
    - 4.解析した結果より、要求されたデータをWebブラウザへと応答
    - 5.WebブラウザはWebサーバーより受け取ったデータを解析し、Webページとして表示
  • 2と4のステップがWebコンテンツの送受信の部分であり、HTTPが利用される。
  • HTTPはデータのやりとり(要求と応答)のみを取り決めている。Webサイトを閲覧する際は、HTTPだけでなく、IP、TCPといったさまざまなプロトコルを組み合わせて利用しています。

Discussion