目次
利用するアプリケーション
Webサイトにアクセスするために利用するアプリケーションは、Webブラウザです。広く利用されているWebブラウザとして、以下のものが挙げられます。
- Google Chrome
- Microsoft Edge/Internet Explorer
- Mozilla Firefox
- Apple Safari
Webブラウザは、たいていの場合、特別な設定を行う必要はありません。もし、プロキシサーバを利用するときには、プロキシサーバのIPアドレスやポート番号を設定します。
プロキシサーバについては、以下の記事をご覧ください。
また、WebサーバではWebサーバアプリケーションが必要です。主なWebサーバアプリケーションとして、以下のものが挙げられます。
- Apache
- Microsoft IIS
Webサーバアプリケーションでは、公開するWebサイトのファイルを置いている場所(ディレクトリ)などの設定が必要です。
利用するプロトコル
Webアクセスで利用するプロトコルは、HTTPです。また、トランスポート層にはTCP、インターネット層にはIPを利用します。HTTPのウェルノウンポート番号は80です。そして、ネットワークインタフェース層は多くの場合、イーサネットを利用します。
また、WebサイトのURLからWebサーバのIPアドレスを求める(名前解決)ためにDNSも必要です。そして、イーサネットのMACアドレスを求めるためにはARPを利用します。
DNSとARPについて、以下の記事をご覧ください。
Webサイトアクセスの動作の流れ
WebサイトのアクセスはHTTPリクエストとHTTPレスポンスのやり取りですが、その前にDNSの名前解決やARPのアドレス解決の動作も行われています。そして、TCPでのコネクションの確立も行います。
以下のようなネットワーク構成を例にして、DNSやARP、TCPも含めたWebサイトのアクセスの流れを考えます。このネットワーク構成のルータは、クライアントPCに対してDNSサーバとして、DNSネームクエリを受信して、さらに他のDNSサーバへ問い合わせできる機能を持っているものとしています。
WebブラウザからWebサイトにアクセスするときの流れは以下のようになります。
- WebブラウザでURLを入力
- WebサーバのIPアドレスを解決
- TCPコネクションの確立
- 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サーバの情報は、クライアントPCに設定しているDNSサーバに登録されているとは限りません。DNSサーバに問い合わせされているホスト名が登録されていなければ、さらに別のDNSサーバへ問い合わせていきます。図中のルータにDNSサーバ機能とありますが、ルータ自体にホスト名とIPアドレスの対応を登録しているわけではありません。図では、省略していますがルータはDNSクエリーをさらに別のDNSサーバへ転送しています。
3. TCPコネクションの確立
WebサーバのIPアドレスがわかれば、そのIPアドレスを指定してWebブラウザとWebサーバアプリケーション間でTCPコネクションを確立します。Webサーバアプリケーションのポート番号は、HTTPのウェルノウンポート番号の80です。Webブラウザのポート番号は49152以降のダイナミック/プライベートのポート番号です。
クライアント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レスポンスについては、以下の記事をご覧ください。
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- DHCPサーバ配置のまとめ
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認コマンド
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順