3.0で注目されるWebブラウザ。いまこそ、復習しよう。3.0が正式リリースされるいま、Webブラウザをめぐる状況は再び激動しようとしています。ここで、私たちWebブラウザのユーザーは、新しく提供されるWebブラウザのどれを使うべきか、あるいは、従来どおりのWebブラウザを使い続けるか、選択を行う必要に迫られます。いまの私たちは、Webブラウザ選びを行うために必要な基礎知識を本当に持っていると、自信を持って断言できるでしょうか?そんなことは分かっている、と思うかもしれません。毎日使っていることで、つい「分かっている」と思い込んでいるだけかもしれません。事実として、例えば、「AブラウザとBブラウザはレンダリングエンジンが同じだから、互換性は高いのではないか?」といった誤解を含む意見を聞くことは珍しくありません。この機会にWebブラウザの基本と仕組みを復習するのも悪いことではないでしょう。ここでの説明は、分かりやすさを優先し、技術的な意味で必ずしも正確ではない内容を含むことをお断りします。Web)は、ティム・バーナーズ=リーによって生み出され、1991年ころより利用可能となりました。当初は文字だけでしたが、画像も扱えるように拡張されていきました。Mosaicでしょう。Mosaicは、初期の時代の標準Webブラウザといっても過言ではないほど大きな存在感と影響力を持ったソフトでした。この当時はインターネットそのものが研究用ネットワークという位置付けであり、一般には公開されていませんでした。そのため、Mosaicの知名度や影響力は狭い範囲に限られたのも事実です。Navigatorを開発します。これが、Mosaicに取って代わる新しい標準ブラウザとなっていきます。1995年ころにインターネットが一般に公開されたことで、WWWは一般ユーザーにも注目されるようになります。Navigatorはフロンティアを探索する主要なツールとなったのです。Explorerの最初のバージョンもリリースされています。Mosaicのマスターライセンスを所有していたスパイグラス社よりマイクロソフトがライセンスを受けてそれを基に開発したものです。Mosaicという同一のルーツを持つ兄弟のようなWebブラウザであったといえます。同一のルーツを持つということは、同じような機能を持つことをまったく意味していませんでした。Explorerを使う姿はあまり見られませんでした。「ルーツが同じ」は「動作も同じ」保証にならないここで1つ確認しておきましょう。Mosaicという同一のルーツを持ちます。そのため、両者には似た部分が多くあります。Explorerの両者に共通するものです。そのほか、デザインや機能面で似ている部分は多くあります。似ていない部分が多かったことも忘れることはできません。Navigatorの方が圧倒的に豊富であり、またHTML文書の解釈にも多くの相違がありました。「ルーツが同じ」は「動作も同じ」保証になりません。Webブラウザの問題を考えるときに、これは重要なポイントです。強い競争にさらされ、不断の改良を続ける限り、どのようなソフトも独自の異なるものに進化していくわけです。創生期のWebブラウザの仕掛けこの時代のWebブラウザは以下のような流れで処理が行われていました。創生期のWebブラウザネットワークを経由して受信されたHTML文書は、HTMLパーサによって解析され、単なる文字列でしかない“<p>”といったタグが段落という意味に解釈されます。解釈された結果は、レンダリングエンジンに送られ、表示されるページ内容に変換されます。“<p>おはよう!</p>”は、HTMLパーサによって<p>......</p>が段落を示す要素と解釈され、レンダリングエンジンによって“おはよう!”が1つの段落としてページ上に配置されます。以上のように、この時代の処理は基本的に直線的です。受信されたHTML文書はレンダリングエンジンに進み、処理結果が画面に表示されます。表示結果が得られた後でレンダリングエンジンに逆戻りすることはありません。Webブラウザ自身は、一度確定した表示内容を変更できません。変更するためには、変更されたHTML文書を再度サーバより受信する必要があります。このような形式を、「静的」と呼びます。それを前提としたHTML文書は“静的なHTML文書”と呼ばれます。ブラウザ戦争勃発ここで、Webブラウザの歴史をたどる作業に戻りましょう。2.0には、Webブラウザ内でプログラムを実行する機能が与えられます。ここから、Webブラウザは「静的」な世界を離れ、新しい文書を再受信することなく内容を変更できる「動的」な世界に進み始めます。2.0には2種類のプログラム言語が組み込まれていました。JavaとJavaScriptです。両者はまったく互換性のない別言語ですが、当初はJavaが本命と見なされていました。そのため、もともとLiveScriptという名前で開発されていたJavaScriptは、Java人気にあやかってJavaScriptと改名されたほどです。Webブラウザ上で使用するJavaは、性能や非互換性等の問題から普及することはありませんでした。JavaはWebブラウザではなくWebサーバ上で使われるようになります。JavaScriptはその後も改良を続けられていきます。Explorerは激しい機能強化競争を繰り広げます。両者の競争は、技術のみならずマーケティング的な側面も含んで激化し、1997年ごろにピークを迎えます。このころは、ブラウザ戦争という言葉まで使われていました。Model)(詳しくは後述)が勧告される等の標準化の動きが生じます。ダイナミックHTMLの仕掛けこの時代を象徴するキーワードが「ダイナミックHTML」です。ダイナミックとは「動的」という意味であり、「静的」の対極にあるものです。この時代のWebブラウザは、大まかにいえば以下のような流れで処理が行われていました。この図は説明を簡単にするために単純化してデフォルメしています。実際にはHTMLだけでなくCSS等も処理されていたことにご注意ください。この図には描いていない制御の流れも存在します。ブラウザ戦争時代のWebブラウザこの図を見ると、静的な時代と比較して、飛躍的に構造が複雑化したことが分かると思います。ここで注目すべき点は、静的なWebブラウザでは直線的に行われていた処理が、循環し続ける流れに変わったことです。この循環は、ユーザーの操作に応じて文書の内容を変更し、表示される内容を変化させます。それによって、新しい文書をサーバから受信せずとも、表示内容を変化させていくことが可能となったわけです。インターネットに接続するために、当然のように利用するWebブラウザ。(2017/7/12)資料を作る際に、「グラフ」は必要不可欠な存在だ。(2017/6/26)素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。