第3回 Webシステムの仕組み画面上の文字タイトルやボタンをマウスでクリックすれば、インターネット上の膨大な情報源(サーバ)にアクセスし、文字や画像によるグラフィカルな情報、音声や動画などを交えた豊かな情報を引き出してくれるのがWebシステムです。Webシステムはビジネスの様々な場面で、また家庭や個人レベルにおいても広く利用され、爆発的普及を遂げました。最近ではPC上だけでなく携帯電話など個人情報端末上でもウェブを利用したサービスも急速に普及しています。今回はすっかり身近となった情報ツール、Webシステムの基本的仕組みについて説明してまいります。 【今回登場するキーワード】
Webの歴史Webが開発されたのは1989年、スイス・ジュネーブのCERN(Conseil Europeen pour la Recherche Nucleaire ヨーロッパ合同素粒子原子核研究機構 セルン)においてでした。開発したのは粒子加速器の制御プログラムの制作に携わっていたティム・バーナーズ=リー氏です。 開発のきっかけは粒子加速器制御プログラムの研究が進むにつれ、実験に関するメモや印刷物が膨大となり、文書や論文などを効率的に管理する方法を模索していた状況だったといいます。こうした状況に頭を抱えていたバーナーズ=リー氏はCERN研究所内の文書を管理するシステムの開発を始め、1984年、「ハイパーテキスト」と呼ばれる、全ての文書データ中のキーワード同士が互いに参照情報としてリンクする仕組みによって、研究者たちが相互に研究成果を交換するシステム作りに着手したのです。そして1989年3月、考え出されたシステムは、まだインターネットに接続するものではありませんでしたが現在のWebの原型となるものでした。 その後、同氏は同僚のロバート・カイヨー氏とWebの実現化に取り組み、自らWebサーバ用プログラム、Webブラウザ用のプログラムを組み上げ、またWebの基本となるHTTP、HTML、そしてURIの3つのプログラムを組み、1990年11月、Webブラウザソフトを、同年12月にWebサーバを立ち上げWebシステムの原型「WWW」を完成させたのです。 原型システムはOSや機種を問わずに機能するように作られ、CERN内で本格的に使われ、パブリック・ドメイン(公有)化され、やがてCERN以外でも使われるようになりました。 この当時のWWWは文字情報だけが表示され、画像データを見るためには別のソフトをダウンロードして表示する必要がありました。しかし1992年、米・イリノイ大学アーバナ・シャンペーン校の研究所NCSA(National Center for Supercomputing Applications)の学生、マーク・アンドリーセン氏はWWWについて独自に研究しUNIX用のWebブラウザ「Mosaic」を作り上げます。「Mosaic」は文字だけでなく画像を張り込むことができ、見栄えは雑誌のページデザインのように見やすくなりました。そしてNCSAの他の学生たちの手により1993年9月、Windows版、Macintosh版が作られ同11月に公開されたのです。 「Mosaic」は文字と画像を同時に表示できる機能のほか、それ自身インストーラーによって簡単にインストールできるようになったため、プログラミング知識を持たない一般のパソコンユーザーにも利用され始め、急速にその利用者の数を増やしていきました。 「Mosaic」開発に携わったマーク・アンドリーセン氏らイリノイ大NCSAの学生たちは1994年、カリフォルニア州シリコンバレーに移り、ネットスケープ・コミュニケーションズ社を立ち上げWebブラウザの開発に専念します。そして同年12月にリリースされたのがページ内の複数の画像を同時にダウンロードできる速くて使い易い「Netscape Navigator 1.0」でした。 ネットスケープ・コミュニケーションズ社はその後サン・マイクロ社との提携を続け、同社が開発したJava言語によってブラウザの表現力をさらに向上させようとします。こうして誕生したのが、Javaのスクリプト言語(後に「JavaScript」と命名)を搭載した「Netscape Navigator 2.0」β版で、正式版は専門の知識を持つプログラマー以外の一般ユーザーにも広く使われるようになったのです。 1995年までには、プロキシサーバ、「Cookie」技術などが開発され、現在のWebシステムの基盤が確立しました。そしてマイクロソフト社が独自のWebブラウザ「Internet Explorer」をリリースし、ネットスケープ・コミュニケーションズ社とで熾烈な競争を繰り広げる「ブラウザ戦争」と呼ばれる時代に入っていきます。その後は徐々にマイクロソフト社がシェアを伸ばし、やがて「Internet Explorer」がWebブラウザの代名詞となるまでに普及していくのです。
Webシステムのルーツ「ハイパーテキスト」四半世紀前の提案Webの基本的な仕組みともいえるユーザー・インターフェースの「ハイパーテキスト」を考え出したのはアメリカのコンピュータサイエンティストのダグラス・エンゲルバート氏です。1963年、エンゲルバート氏は戦時中、海軍においてレーダー技術者としてレーダー操作に従事した経験から、ディスプレイ画面を介して人間があたかもコンピュータと対話をするように操作できないかと考えたのです。さらに彼は、ある論文(膨大なマイクロフィルム1枚1枚に識別コードを振って効率よく呼び出し参照する機械装置を紹介)をヒントに、コンピュータをより使いやすいものにしようと取り組み、1968年コンピュータディスプレイ上に表示された文章の一部をクリックすると、関連する別の文書が即座に表示される「ハイパーテキスト」と呼ばれる全く新しいユーザー・インターフェースを発表し、コンピュータ技術者を始め多くの人々に衝撃を与えたのです。 この時発表されたシステムはマウス、そして1つの画面に複数の「ウィンドウ」を表示する機能を備え、ほぼ現在のPC(パーソナルコンピュータ)の原型を成すものでした。エンゲルバートが構想した「ハイパーテキスト」が現実のものとなったのは、インターネット、TCP/IPプロトコルとこれらの技術の上に成り立つWebシステムが実現した1980年代後半、四半世紀後でした。 Web通信の流れ――5つのステップ「Webサイトを見る」「Webで調べる」という場合、WebブラウザにURL(Uniform Resource Locator)を打ち込むとたちどころにブラウザ上に文字や画像が表示されます。この時、WebブラウザとWebサーバは次のように働き、やり取りをしています。
安全なアクセス法として開発された「プロキシサーバ」「proxy」(英語)は「代理」という意味を持っています。もともと「プロキシサーバ」は代理機能を果たすサーバで、LAN内クライアントの発信時にローカルIPアドレスをグローバルIPアドレスに置き換え、また受信時には逆にグローバルIPアドレスをローカルIPアドレスに置き換える、アクセスの集約・代理の役割を担うものでした。この機能によって外部からLAN内のローカルIPアドレスが見えないようになり、結果的にセキュリティ機能をはたすことになりました。Webシステムは当初、研究所(CERN)内の文書管理システムとして考案されたもので、インターネットとは接続されていませんでした。しかしWebシステムの利便性が認知されるにつれ、外部のWebサーバに自由にアクセスするニーズは高まっていきました。プロキシサーバはこの問題を解決し、自由にWebサーバへアクセスすることが可能になったのです。多くの企業内ネットワークではファイアーウォールサーバ内に「プロキシサーバ」を設置しています。 「プロキシサーバ」のもう一つの役割は、頻繁にアクセスするWebページのデータを蓄積するキャッシュ機能です。次のアクセス時に蓄積したデータを直接Webブラウザに返信する(キャッシング)ことでWebブラウザへの表示が速くなり、またインターネット回線の混雑が軽減されるのです。 Webブラウザの仕組みこれらWeb通信の5つのステップを支えるWebブラウザの基本機能は次の3つです。
ではユーザーがURLを打ち込んでからWebサーバのデータがWebブラウザ上に表示されるまでを、3つの基本機能に触れながら詳しく見てみましょう。 Webブラウザの通信機能URLの解読ユーザーがアドレス欄にURLを打ち込むと、Webブラウザの通信機能にURLの内容が知らされます。WebブラウザはこのURLを解読し、どのWebサーバにアクセスしどのデータを要求するべきか判断しています。 「http:」の部分は、WebブラウザとWebサーバのやり取りで使用されるプロトコルを示しています。参考までにいえばURLは「http:」で始まるとは限りません。例えばファイルを転送する場合はファイル転送プロトコルを示す「ftp:」となるのです。 「www〜」に続く部分はドメイン名で、Webサーバに割り振られた固有の住所です。WWWが開発された当時、すでにeメールシステムではDNSが利用されていました。Webシステムもインターネット上に散在するWebサーバから目的のサーバを見つけ出すためにDNSを利用することになったのです。 「/」に続く「dir/file1」はWebサーバ内のどのデータかを示す部分です。 URLを解読し「HTTPプロトコルによってwww.******.comというサーバに接続し、file1というパス名のデータを読み出す」と理解したWebブラウザは、次にWebサーバのドメイン名からIPアドレスを探します。IPアドレス探しはeメールシステムと同じように、ドメイン名がどのIPアドレスに対応しているかのデータを持つDNSサーバに問い合わせる方法です。 「リゾルバ」Webブラウザは、接続するWebサーバのIPアドレスを探し出すためにDNSサーバに問い合わせを行います。より詳しくいえばDNSサーバへの問い合わせと、返送されたメッセージを受け取るのは「DNSリゾルバ」というソフトで、TCP/IPの一部としてOSが標準で備えています。 「DNSリゾルバ」はWebブラウザに限らずいろいろなネットワークアプリケーションによって利用されます。各ネットワークアプリケーションが「DNSリゾルバ」機能を持つより、TCP/IPの一部として用意し、各ネットワークアプリケーションで共用する方が効率的というわけです。 「リゾルバ」という呼び名は、DNSによってIPアドレスを調べることを「ネーム・リゾリューション」(名前を解決=resolutionするの意味)と呼ぶところから「解決するもの=resolver」を語源にしたものです。 通信の開始通信するWebサーバのIPアドレスが分かるといよいよ通信が始まります。具体的にはWebブラウザが「HTTPリクエスト」を作成しWebサーバに送信します。 一方、WebサーバはWebブラウザからリクエストを受けると、HTMLデータを返信します。このデータは「HTTPレスポンス」と呼ばれています。構造的にはステータス行、メッセージヘッダー、HTMLデータを格納するボディ部分の3つの部分からなり「HTTPリクエスト」によく似ています。やはり、最も重要な内容は第1行目に書かれていて、図5の例の、 ステータス行の下には、返信データの形式や大きさなどに関する詳細な情報が記されたメッセージヘッダが続き、その後にWebブラウザに返信するデータが入る領域が続きます。 実際のWebブラウザとWebサーバのやり取りは何度も繰り返して行われ、1回でWebページが完成することはまれです。例えば画像が張り込まれているWebページの場合、Webサーバから送信されたHTMLデータ1行1行に応じてページを描きながら、<画像を張り込む>という指示(タグ)にさしかかると、Webブラウザは指示されたWebサーバにアクセスして画像データを送信してもらうことになります。画像データを数多く含むWebページではその都度画像データのあるWebサーバへのアクセスを繰り返してページを作ることになるわけです。 仮想ディレクトリでリクエストに応えるWebサーバWebサーバはWebブラウザからリクエストを受け取ると、HTTPリクエストの第1行目に書き込まれた「要求されたパス名」に対応するデータを探して読み出します。しかしこのパス名は実際のディスク上のパス名を直接指し示すものではありません。ほとんどのWebサーバはWebブラウザからのアクセスに対して仮想ディレクトリを見せています。サーバ内の実際のディレクトリとの対応関係を調べ、仮想ディレクトリのパス名を実際のディレクトリのパス名に変換してから読み込み、データを送り返しているのです。なぜなら、要求されるパス名とディレクトリのパス名が同一であると、Webサーバ側のディレクトリの全てのファイルにアクセスできることになりセキュリティ上きわめて危険な状態になってしまうからです。 WebブラウザのHTML解析機能「Content-Type」のメッセージヘッダを解析する方法WebブラウザはWebサーバから送られたHTTPレスポンスを読み、HTMLデータ格納エリア内のデータの種類を調べます。これはWebページが文章、画像、音声、映像などいろいろな種類のデータを取り扱い、それぞれに適した表示方法で対応するためです。 データの種類を判断するために、WebブラウザはまずHTTPレスポンスのメッセージヘッダの「Content-Type」に示された値を確認します。図5の「Content-Type」では、
小プログラムが集合体化したWebブラウザWebブラウザは当初、テキストデータしか扱えず、Webサーバから受け取ったHTMLデータを最上段行から逐次処理しながら画面を作成していくシンプルなプログラムでした。しかしその後のWebブラウザは画像、音声や動画の表現機能を備え、1995年頃から激しくなるブラウザ開発競争(「ブラウザ戦争」)を経てJavaScriptを搭載、プラグインによって一段と多機能化するなど、いわば小さなプログラムの集合体となってきました。 「レンダリングエンジン」によるWebページ描画HTTP解析機能によってデータの種類が特定されると、各データをWebページに表示するプログラムが表示の処理を進めます。プレーンテキストや画像などの基本的なデータはWebブラウザ自身が処理しますが、それ以外のデータは専門プログラムが処理します。この時、各専門プログラムが勝手に処理を始めると混乱するためWebブラウザの描画機能を司る「レンダリングエンジン(rendering engine)」(レイアウトエンジンともいう)と連携して描画処理を調整します。 「レンダリングエンジン」と各専門プログラムは図9のように連携していきます。まずHTML解析機能や通信機能からそれぞれの専門プログラムへWebページを構成する各種データが送られます。専門プログラムはデータを解析して描画サイズを決めそのデータを「レンダリングエンジン」へ渡します。「レンダリングエンジン」は解析データを読み込み、Webページの枠内に収まるようにレイアウトを決めます。こうして決められたレイアウト用に処理された各種データは専門プログラムによってOSが理解できるコマンドに変換され、「レンダリングエンジン」から順番にOSに渡され、適切な位置に文字や画像を表示するのです。 おさらいインターネットを利用した、もっとも便利で身近なWebシステムの基本的システムについて見てきました。主なポイントは次の通りです。
次回はWebブラウザを高機能化、便利にしている数々の拡張機能、ヘルパーアプリケーション、プラグインの仕組みなどを紹介してまいります。 |
All Rights Reserved, Copyright(C) FUJITSUファミリ会 |