WWWサービスの仕組み

 WWWサービスは、クライアント/サーバの仕組みで動作します。インターネット上のWWWサーバ側では、httpデーモンが起動して待機しています。クライアント側のブラウザは、このhttpデーモンと通信することでホームページの閲覧を可能にしています。

 通信には、HTTP(Hyper Text Transfer Protocol)というTCP/IP上で動作するプロトコルを使用します。

 HTTPを使用するとURI(Uniform Resource Identifiers)という表記(URLもこの表記の一種です)で指定されたリソース(資源)をクライアントとサーバの間でやり取りすることができます。

サーバ側とクライアント側の通信の流れは下図のようになります。

①URLを指定してHTMLデータの送信を要求

 クライアント側は、閲覧したいホームページのURLを指定します。するとHTMLデータの送信要求がサーバ側で待機しているhttpデーモンに送られます。

②該当するHTMLデータを送信

WWWサーバ上は、要求元のクライアントに該当するHTMLデータを送信します。

③HTMLデータを解釈してブラウザ上に表示

 HTMLデータを受け取ったブラウザは、HTML文章を解釈して、ブラウザ上にページを表示します。ブラウザの種類によって解釈に若干の違いがあるので、表示のされ方は、ブラウザの種類によって若干違ってきます。

 WWWサービスのポート番号は、一般的にTCPの80番を使用しますが、ポート番号を変更して運用することも可能です。しかし、ポート番号を変更した場合は、それを知らない人は、WWWサービスを受けることができなくなってしまいます。

ブラウザとHTTPサーバのやり取り(その1)

HTTPサーバとのやり取りは、以下のようになります。

①URLを指定する

②HTTP要求メッセージ

GET / HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1)
Host: www.google.co.jp
Connection: Keep-Alive
Cookie: PREF=ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
リクエスト書式

メソッド パス名 HTTP/バージョン

パス名   ・・・ 通常、/aaa/bbb.html のような、スラッシュで始まるパス名や、http:// などで始まる URL が指定される。
バージョン ・・・ 1.1 が主流

③ファイルを特定する

④HTTP応答メッセージ

HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Thu, 15 Jan 2009 14:49:03 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Server: gws
Content-Length: 4175
レスポンス書式

HTTP/バージョン ステータス番号 補足メッセージ

補足メッセージ ・・・ 「OK」 や「 Not Found」 など。ステータス番号の意味や詳細を補足するメッセージを返す。

⑤HTMLの表示

ブラウザとHTTPサーバのやり取り(その2)

 ホームページは、文字だけではなく画像ファイルや音声ファイルなどの様々なファイルで構成されています。

 HTTPは、シンプルなプロトコルで、どのファイルをダウンロードしているかなど、状態を維持する仕組みがありません。これをステートレスと言います。

 そのため、下の図のように、ホームページを構成するファイルの数だけ、ブラウザとWWWサーバがやり取りを行うことになります。

HTTP/1.1

 これでは、効率が高い通信が行われているとは言えません。そこで、1999年に公開されたHTTP/1.1では、パイプラインという前のリクエストの転送が完了する前に次の転送することで、通信の遅延を抑える機能が追加されました。

 その都度、切断するのではなく、TCP/IPレベルでの接続を維持しておいて、続けて、次の要求を処理することで ホームページの表示速度の向上を実現しています。

HTTP/2

 ホームページは、コンテンツの複雑化が進み、HTTP/1.1では、ホームページの表示に遅延が発生するようになりました。通信の効率を向上させるため、2015に公開されたHTTP/2では、複数のリクエストを常時、処理を可能にしました。

 そして、さらに、ヘッダー圧縮や転送するコンテンツの優先度設定など複数の機能追加して、ホームページの表示速度を改善しています。しかし、万能に思えるHTTP/2にも課題があります。

WWWサーバの種類

 WWWサービスプログラムには、以下の表のように様々な種類があります。このWWWサービスプログラムをインストールしてサービスを起動しているサーバがWWWサーバになります。

 ユーザーは、ホームページを閲覧するときにWWWサーバがどのサービスプログラムを使用しているのかを気にする必要はありません。ブラウザの設定も特に必要ありません。

OSWWWサービスプログラムの名
Windows95,98Personal Web Server
Windows NT WorkstationPeer Web Server
Windows NT ServerInternet Information Server(IIS)
Windows 2000,Windows XP Professional,
Windows Server 2003,Windows Vista,
Windows Server 2008
Windows Server 2012
Internet Information Services(IIS)
Linux,Windows familyApache HTTP Server

 WindowsファミリーのOSには、WWWサービスプログラムがハンドルされています。CD-ROMからインストールすることでインターネットサーバサービスを使用することができます。

※ただし、クライアントOSに付属するWWWサービスプログラムの場合、WWWサービスへの接続数や充実した機能を使用することはできません。

Linux、WindowsファミリーOSで使用できる「Apache HTTP Server」は下のURL先から無料で入手することができます。

http://www.apache.jp/

 Apacheは世界中のボランティアの手で開発が続けられているフリーソフトウェアで、無償で公開されています。世界中の多くのWebサイトで利用されています。