利用するアプリケーション

Webサイトにアクセスするために利用するアプリケーションは、Webブラウザです。広く利用されているWebブラウザとして、以下のものが挙げられます。

  • Google Chrome
  • Microsoft Edge/Internet Explorer
  • Mozilla Firefox
  • Apple Safari

Webブラウザは、たいていの場合、特別な設定を行う必要はありません。もし、プロキシサーバを利用するときには、プロキシサーバのIPアドレスやポート番号を設定します。


プロキシサーバについては、以下の記事をご覧ください。


また、WebサーバではWebサーバアプリケーションが必要です。主なWebサーバアプリケーションとして、以下のものが挙げられます。

  • Apache
  • Microsoft IIS

Webサーバアプリケーションでは、公開するWebサイトのファイルを置いている場所(ディレクトリ)などの設定が必要です。

Webアクセスに利用するアプリケーション
図 Webアクセスに利用するアプリケーション

利用するプロトコル

Webアクセスで利用するプロトコルは、HTTPです。また、トランスポート層にはTCP、インターネット層にはIPを利用します。HTTPのウェルノウンポート番号は80です。そして、ネットワークインタフェース層は多くの場合、イーサネットを利用します。

また、WebサイトのURLからWebサーバのIPアドレスを求める(名前解決)ためにDNSも必要です。そして、イーサネットのMACアドレスを求めるためにはARPを利用します。

Webアクセスで利用するプロトコル
図 Webアクセスで利用するプロトコル
Webアクセスの通信を暗号化する場合は、アプリケーション層にHTTPS(ウェルノウンポート番号443)を利用します。

DNSとARPについて、以下の記事をご覧ください。


Webサイトアクセスの動作の流れ

WebサイトのアクセスはHTTPリクエストとHTTPレスポンスのやり取りですが、その前にDNSの名前解決やARPのアドレス解決の動作も行われています。そして、TCPでのコネクションの確立も行います。

以下のようなネットワーク構成を例にして、DNSやARP、TCPも含めたWebサイトのアクセスの流れを考えます。このネットワーク構成のルータは、クライアントPCに対してDNSサーバとして、DNSネームクエリを受信して、さらに他のDNSサーバへ問い合わせできる機能を持っているものとしています。

Webサイトのアクセスの流れ ネットワーク構成
図 Webサイトのアクセスの流れ ネットワーク構成

WebブラウザからWebサイトにアクセスするときの流れは以下のようになります。

  1. WebブラウザでURLを入力
  2. WebサーバのIPアドレスを解決
  3. TCPコネクションの確立
  4. HTTPリクエストの送信とHTTPレスポンスの送信

1. WebブラウザでURLを入力

Webサイトにアクセスするときには、WebブラウザでURLを入力します。または、Webページのリンクをクリックします。


URLについては、以下の記事をご覧ください。


2. WebサーバのIPアドレスを解決

TCP/IPでは必ずIPアドレスを指定しなければいけません。URLに含まれているWebサーバのホスト名から、DNSサーバへ問い合わせてWebサーバのIPアドレスを解決します。

DNSサーバへ問い合わせを送信するときには、イーサネットのMACアドレスを求めるためにARPも行われます。

Webサーバの名前解決
図 Webサーバの名前解決

なお、目的のWebサーバの情報は、クライアントPCに設定しているDNSサーバに登録されているとは限りません。DNSサーバに問い合わせされているホスト名が登録されていなければ、さらに別のDNSサーバへ問い合わせていきます。図中のルータにDNSサーバ機能とありますが、ルータ自体にホスト名とIPアドレスの対応を登録しているわけではありません。図では、省略していますがルータはDNSクエリーをさらに別のDNSサーバへ転送しています。

3. TCPコネクションの確立

WebサーバのIPアドレスがわかれば、そのIPアドレスを指定してWebブラウザとWebサーバアプリケーション間でTCPコネクションを確立します。Webサーバアプリケーションのポート番号は、HTTPのウェルノウンポート番号の80です。Webブラウザのポート番号は49152以降のダイナミック/プライベートのポート番号です。

TCPコネクションの確立
図 TCPコネクションの確立

クライアントPCとWebサーバは、たいてい、別のネットワークに接続されています。クライアントPCからWebサーバにTCPコネクションを確立するときには、まず、ルータに送らなければいけません。ルータのMACアドレスを求めるためにやはりARPが行われます。


ポート番号とTCPの動作については、以下の記事をご覧ください。


4. HTTPリクエストの送信とHTTPレスポンスの送信

WebブラウザとWebサーバアプリケーション間のTCPコネクションを確立してから、HTTPリクエストとHTTPレスポンスのやり取りが行われます。

Webブラウザで指定したURLを含んだHTTPリクエスト(GETメソッド)がWebサーバアプリケーションへ送信されます。

HTTPリクエストを受け取ったWebサーバアプリケーションは、リクエストされたWebページのファイルをHTTPレスポンスとして返します。HTTPレスポンスのサイズは大きくなることがほとんどで、TCPの機能で複数に分割されます。

HTTPリクエストとHTTPレスポンス
図 HTTPリクエストとHTTPレスポンス

HTTPリクエストとHTTPレスポンスについては、以下の記事をご覧ください。