はじめに
Web通信とサーバーについて、とても初歩的なところからまとめた覚書です。
WEB通信の仕組み
ブラウザは、インターネットに接続されたWebサーバーに「情報が欲しい」というリクエストを投げる。サーバーはレスポンス(リクエストに基づいた情報)をブラウザに返す。
サーバーはたくさんある
当たり前のことですが、世界中には星の数ほどWebサーバーが存在します。仮に「A」という情報が欲しいとした時、それがどこのどのサーバーにあるかはわかりません。そこで、URLという住所を利用します。
URL
URLとは、例えば http://www.example.com/index.html
といったもの。このURLを分解すると、
- スキーム:
http
- ホスト:
www.example.com
- パス:
index.html
という3つに分けられる。
スキーム
http
は「これはWeb通信ですよ」ということを表す。
ホスト
サーバーは星の数ほどある
と言いましたが、その星の数ほどあるサーバーの中で自分の欲しい情報がどのサーバーにあるのかを知るために、ブラウザはホストに対応したIPアドレスを調べることができます。つまりサーバーはIPアドレスを所持していて、ブラウザはホストをもとにそれを探します。
パス
サーバーを特定することができたら、そのサーバーにあるどの情報にアクセスしたいのかを知らせる必要があります。そのために必要なのが、パスです。
つまり
ブラウザは、URLという住所をもとにサーバーというグリンゴッツ銀行を探します。そのグリンゴッツの管理人(ゴブリン)に「index.htmlください」って言います。
でもここで疑問が。
「index.html」ってどこにあったっけ?
TCP接続
TCP接続はバーチャルサーキットと呼ばれる仮想的な論理回線
なのですが、詳しいことは割愛します。
Webサーバーに通信したい場合には、一般にTCPの80番ポートを使っています。メールサーバーであれば25番ポートです。これは先ほどの例で言うと、部屋番号にあたります。
まとめ
普段何気なく行なっているWeb通信では、ブラウザがWebサーバーにリクエストを送り、情報を得ています。どのサーバーに接続すればいいかは、URLと言う住所、TCP80番ポートと言う情報を使って判断しています。
以上が、ブラウザがWebサーバーにどうやって通信しているかのまとめです。
次回は、サーバーに接続した後、どうやってWebページが表示されるのかをまとめます。