Webサーバから見たインターネット
 では,先ほどとは逆に銀行の窓口の人の立場になってみましょう.朝になって業務が始まると,お客さんが窓口にやってきます.1人の係の人が1人のお客さんに対応するとします.多くのお客さんがやってきたとき,窓口が1つしかないと窓口の前に待っているお客さんの列ができます.そこで窓口を複数設けて,複数のお客さんと同時に接客できるようにして混雑を解消します.
 Webサーバでも同様のことが行われます.図3は,マルチスレッド型Webサーバと呼ばれるWebサーバのしくみです.Webサーバには,WebクライアントからのTCPの接続を受け付ける受付スレッドと,実際のWebサーバの仕事をする処理スレッドがあります.Webクライアントからの接続は,まず最初に受付スレッドで処理されます.これは銀行の窓口にある番号札を発行する機械のようなものです.受付スレッドは,クライアントからの接続を受けると処理スレッドを1つ生成します.そしてWebクライアントとの間にできているTCPセッションをこの処理スレッドに引き継ぎします.引き継ぎが終わると,また受付業務に戻ります.つまりお客さんからの要求を受け付けて,実際の処理をする窓口担当者に割り振る仕事をします.


 〔図3〕マルチスレッド型Webサーバのしくみ
  

 処理スレッドでは,受付スレッドから引き継いだWebクライアントとのTCPセッションを処理します.これは前回までに説明したWebサーバの仕事そのものになります.WebクライアントからのHTTPリクエストを受信し,URLに基づいて必要な情報をWebクライアントに返送します.もし外部ソフトウェアを起動する必要があれば,外部ソフトウェアを起動してCGIによって通信を行い,外部ソフトウェアから送られてくるHTTPの情報をそのままWebクライアントに返送します.
 図4のように,よくWebブラウザを使っていると,
  http://...を開いています…
  http://...をダウンロードしています…
といったメッセージが表示されます.これは次のような状態に対応します.


○「開いています(IE),探しています(Netscape)」
 DNSサーバと通信して,URL中のホスト名をIPアドレスに変換している最中である.もしくはTCPのセッション開始の通信を行っている最中である.
○「ダウンロードしています(IE),データを転送しています(Netscape)」
 WebサーバとTCPの接続に成功した.HTTPの要求を送ったが,答えがサーバから返ってこないので,待っている最中である.
Webサーバの中で,受け付けスレッドが起動する処理スレッドの数に通常はある程度の制限を設けます.非常に多くのWebクライアントから接続要求がきたとき,処理スレッド数に制限がないと受付スレッドがサーバコンピュータのメモリの許す限り,処理スレッドを生成してしまいます.しかし実際にサーバコンピュータのCPUはそれほど多くのスレッドを処理することはできず,Webサーバとしての機能を停止してしまいます.このため,通常は処理スレッドをある数以上には起動しないように制限をかけます.

 〔図4(a)〕DNSを使ってホスト名を検索中である.Netscapeの場合は「ホストを探しています」と表示される
  


 〔図4(b)〕Webサーバからデータが転送されるのを待っている.Netscapeの場合は,「データを転送しています」と表示される
  

 「ダウンロードしています」というメッセージが表示されて,いつになってもWebページが表示されない場合は,
@ 受付スレッドでセッションを受け付けたが,数制限のために処理スレッドが起動できずに起動を待っている状態.
A 処理スレッドは起動できたが,CPUの処理能力不足のために,実際の処理が滞っている状態.
が考えられます.このような状況で,Webブラウザの再読み込みボタンを押すことは,新たなHTTPのセッションを開こうとするため,さらにサーバに負荷をかけることになります.このような理由から,ブラウザに「ダウンロードしています」と表示されたら,素直に待ち続けるか,接続をいったん中止し,しばらく経ってから再読み込みをするようにしましょう.
 Webサーバでは,大量のWebクライアントから送られてくる要求をうまく処理するために,これ以外にもさまざまな工夫がされています.
 このように,Webサーバを運用するサーバコンピュータには多くの負荷がかかります.インターネットプロバイダにとって,Webサービスをユーザーに提供するための機材にあまり多くの資金投資ができません.そのため,強力な処理能力のあるWebサーバを多数そろえることが困難であり,プロバイダのユーザーに対してなんらかの制約を課すことになります.

 CQ出版 TOP OPENDESIGN TOPOPENDESIGN Online目次に戻る
  
Copyright CQ Publishing Co.,Ltd. 1997-2001