この記事の内容について
Web系エンジニアになるための必須知識の1つである「Web技術の仕組み」について、初学者でもわかりやすいと定評のある書籍「イラスト図解式 この一冊で全部わかるWeb技術の基本」の要点を自分なりにまとめて、理解力の向上に努めていきます。
私はまだエンジニア歴1年未満の初学者なので、間違い等があればご指摘いただけると幸いです。
Web技術の基本 (1) 〜 (7)
Web技術の基本(1) 〜Web技術とは〜
Web技術の基本(2) 〜Webとネットワーク技術〜
Web技術の基本(3) 〜HTTPでやりとりする仕組み〜
Web技術の基本(5) 〜Webアプリケーションの基本〜
Web技術の基本(6) Webのセキュリティと認証
1. Webを実現するコンピューターネットワーク
クライアントとサーバー
サーバーとは
ネットワーク上で情報やサービスを提供する役割を持つコンピューターのこと
例: Webサイトを提供しているもの
クライアントとは
サーバーから提供された情報やサービスを利用する役割を持つコンピューターのこと
例: Webサイトを表示するスマートフォンやパソコンに搭載されているWebブラウザなど
インターネットとは
インターネットとは、自宅や会社、学校など小さな範囲のネットワークが1つ1つお互いに接続し、世界中のネットワークと繋がった環境のこと。
インターネットに接続するためのサービスはインターネットサービスプロバイダーが提供している。
インターネットサービスプロバイダー
インターネットサービスプロバイダーは、単に「プロバイダー」や「ISP」と略されることが多く、各国に複数のプロバイダーが存在する。スマートフォンやパソコンはプロバイダーと接続し、プロバイダーはプロバイダー同士で接続し合うことで世界中が1つのネットワークとして形成される。
2. インターネットの標準プロトコル
プロトコルとは
プロトコルとはネットワークに接続された機器同士が通信をするときの、あらかじめ決められた共通のルールや手順のこといい、お互いに同じプロトコルを利用することにより、データのやりとりを可能としている。
プロトコルは狼煙で例えられることが多い。「敵の襲来があったとき、狼煙を使って合図を送る」との取り決めがお互いに認識できていれば、情報の伝達を行うことができる。
TCP/IPとは
TCP/IP(Transmission Control Protocol/Internet Protocol) とはインターネットにおけるさまざまなサービスを実現するためのプロトコルの集まりのこと。
スマートフォンやパソコン、サーバーといったコンピューターはすべて TCP/IP に対応している。一昔まではコンピューターに搭載される OS や機種ごとに独自のプロトコルが利用されていたため、同じ機器同士でないとお互いに接続ができなかった。
3. TCP/IP
TCP/IP は役割ごとに、以下の4つの階層(レイヤー)に分かれる。
- アプリケーション層(レイヤー4)
→ アプリケーションごとのやりとりを規定 (HTTP、SMTP、FTPなど) - トランスポート層(レイヤー3)
→ データの分割や品質保証を規定 (TCP、UDP) - インターネット層(レイヤー2)
→ ネットワーク間の通信を規定 (IP、ICMP) - ネットワークインターフェイス層(レイヤー1)
→ コネクタ形状や周波数といったハードウェアに関する規定
アプリケーション層の機能
アプリケーション層ではWebブラウザやメールソフトなどのアプリケーションごとのやりとりを規定しており、クライアントとサーバー間のサービスの要求と応答で成り立っている。
またアプリケーション層では、扱うデータをネットワークで転送するのに適したデータ形式に変換したり、受け取ったデータを人間が理解できるように変換する役割も持っている。
TCP と UDP
アプリケーション層のやりとりに応じて実際にデータの転送処理をしているのがトランスポート層に位置する TCP(Transmission Control Protocol) や UDP(User Datagram Protocol) といったプロトコルがある。
TCP と UDP の違い
TCP はWebサイトやメールなどデータ損失が起きると困るようなアプリケーションで利用され、UDP は信頼性が低いものの、通信の手続きが簡略化されているぶん、効率よく通信ができるため、動画ストリーミングなどで利用されている。
4. IP アドレスとポート番号
IP アドレス
インターネットに接続されたコンピューターを特定し、データの行き先を管理するために利用されているものを IP アドレスという。IP アドレスは世界中でたった1つだけであり、IP アドレスは世界中で利用できる「住所」のようなものである。
ポート番号
IP アドレスは接続したいコンピューターを指定できるが、コンピューターが提供するサービスまでは指定できない。Web サービスやメールサービスといったコンピューターが提供するサービスを指定するためのものをポート番号という。
ポート番号は「0〜65535」までの数字で、範囲によって用途が決められている。一般的に Web サーバー (HTTP) であれば80番といったようにポート番号が決まっており、ポート番号によってサービスを識別できる。
5. URLとドメイン
URLの構文
URLはスキーム名、ホスト名(ドメイン名)、ポート番号、パス名などで構成される。
- スキーム名
→ プロトコルを指定する。 - ホスト名 (ドメイン名)
→ 接続先のサーバーを指定する。(IP アドレスでの指定も可能) - ポート番号
→ 接続先のサーバーのポート番号を指定する。省略可能で、通常は指定しない。 - パス名
→ 接続先のサーバー上のディレクトリやファイルを指定する。
ドメイン
数字で表記される IP アドレスは私たちにとって覚えにくく扱いにくいため、IP アドレスの別名として利用されるものをドメインと呼ぶ。
ドメインはグローバル IP アドレスと同様に一意であり、世界中で同じドメインは1つとして存在しない。
6. DNS
コンピューターへ接続するためには IP アドレスが必要となる。そのため、ドメインを利用してコンピューターへ接続する際は、ドメインをIPアドレスへと変換する必要がある。
ドメインと IP アドレスの変換
ドメインを IP アドレスへと変換する仕組みを DNS(Domain Name System) といい、DNS のサービスを提供するサーバーを DNS サーバーという。
DNS はドメインと IP アドレスが紐付いて管理されているため、 DNS を利用することでドメインから IP アドレスを知ることができる。
7. HTTP
クライアントとサーバー間のやりとり
Webサイトの閲覧は5つのステップで行われる。
- Webブラウザのアドレス欄に、閲覧したいWebサイトのURLを入力
- WebブラウザによりWebサーバーに対してデータを要求
- Webサーバーは、Webブラウザからの要求内容を解析し、データを用意
- WebサーバーよりWebブラウザへデータを応答
- Webサーバーより受け取ったデータをWebブラウザが解析し、Webページとして表示
上記の2と4のステップがWebコンテンツの送受信の部分であり、この際に HTTP が利用される。 HTTP はあくまでもデータのやりとり(要求と応答)のみを取り決めており、Webサイトを閲覧する際は HTTP だけでなく、IP や TCP といったさまざまなプロトコルを組み合わせて利用されている。