インターネットの仕組み 第三回 サーバとブラウザの通信 その2
ども。たりきです。
インターネットの仕組み 第一回と第二回,お楽しみいただけているでしょうか。
第一回では,ブラウザとサーバの通信について,一つのファイルを取り寄せるワンセット「これください」「はいどうぞ」の流れと,毎回通信内容を忘れてしまうこと,そして,前回の状態をサーバが思い出せるように,Cookie という仕組みを使うことを説明しました。
第二回では,サーバがやっている仕事について,単に画像や HTML ファイルを渡すだけの簡単なお仕事から,掲示板などプログラムを動かして結果を渡す少し込み入った仕事まであることを紹介しました。
今回は,サーバとブラウザの通信について,実際にちょっとだけ覗いてみよう,という実験です。
皆様のお手元でも実際に試してみてください。
ほとんどの方は,Internet Explorer 8 を使っていることと思います。また,Firefox を使っているよ,という方もおられるでしょう。Google Chrome や Opera などは少数派なので,今回は割愛させてください。
Windows を使っておられる方でしたら,最初から Internet Explorer が入っていることと思います。Windows Update で,すでに Internet Explorer 8 にバージョンアップされていることでしょう。IE6 の環境は Windows2000 でしか残っていないと思います。これはサポートが切れた OS ですので,WindowsXP SP3 以降の環境のみを対象とします。今回は,Windows ユーザなら誰もが持っている IE8 を使って,サーバとブラウザの通信を覗き見してみましょう。
さて,IE8 でサーバとブラウザの間の通信を覗き見するには,プラグインの追加が必要です。まず,次の URL にアクセスしてください。
http://www.blunck.se/iehttpheaders.html
英語だ!
でも大丈夫。プラグインはちゃんと日本語に対応していますのでご安心を。
画面下のほうに,Download と太字で書いてあります。「A installer for Internet Explorer 6 and later found here: ieHTTPHeadersSetup.exe」と書いてある,「ieHTTPHeadersSetup.exe」の部分がダウンロードリンクになっていますので,インストーラをダウンロードしましょう。
続いて,インストーラを起動して,プラグインをインストールします。利用許諾が出ますが,これは大雑把に「二週間はフリーで試せるよ」「個人利用はフリーだよ」「仕事で使うなら購入してね」といった内容ですが,ライセンスの詳細を確認しようとするとページが見つからないので困ります。
とりあえず個人で使うぶんには大丈夫なので,気にせず「I Agree」(了解しました)ボタンを押しましょう。するとインストールするコンポーネントの選択になりますが,二つのチェックをそのままにして「Next>」ボタンを押しましょう。インストール先の選択に入りますが,これもそのままでよいでしょう。「Install」ボタンを押すとファイルのコピーが始まります。Vista 以降の場合は Program Files 以下にファイルを置こうとすると管理者権限が必要になると思いますので,それぞれ許可を与えてください。ファイルコピーが終わったら,「Finish!」ボタンを押してインストーラを終了してください。これで ieHTTPHeaders のインストールはおしまいです。
では,準備ができたところで,Internet Explorer を立ち上げなおしましょう。再起動するとプラグインが有効になっているはずです。
メニューの「ツール」の中に「Display ieHTTPHeaders...」という項目が増えているはずなので,それをクリックしてください。画面を大きく占拠している場合は,ieHTTPHeaders の表示領域の上の端っこをドラッグすると表示高さを変えられますので,適当な高さにしておいてください。
さて,その状態で ieHTTPHeaders の「Resource view」タブをクリックしておいてください。準備はいいですか?それでは,ヤフーのトップページを開いてみましょう。次の URL をクリックしてみてください。
http://www.yahoo.co.jp/
どうでしょうか。「GET /〜〜〜」というのがたくさん並んだと思います。
この一つの「GET」が,ブラウザからサーバへの「リクエスト」になります。試しに一つ選んで,+ボタンをクリックして詳細を見てみましょう。
「GET /〜〜〜」に対して,「HTTP/1.1 200 OK」といったものが並んでいると思います。GET リクエストに対して HTTP レスポンスを返している,つまり,インターネットの仕組み 第一回で解説した「リクエスト」と「応答」のワンセットが,たーっくさん並んでいる,ということになるのです。
ヤフーのトップページを表示するだけで,何セットの「GETリクエスト」と「HTTPレスポンス」があるか,数えてみてください。私が試した時には,ほんの一秒もしない間に,29回もの「リクエスト」「レスポンス」のやりとりが行われていました。
もちろん,ヤフーといえば超大手サイトです。同時に何百人もの利用者がブラウザでヤフーのトップページを表示させていることでしょう。
また,ヤフーのトップページはインターネットの仕組み 第二回で紹介した一つ目の仕事,つまり,特にプログラムなどを動かしていない,一番簡単な仕事だけでやりとりがなされています。
サーバというのは,簡単なお仕事なら,その人数分かける約30回ものリクエストに難なく答えられる,というわけです。
いかがでしょうか。第三回では,実際のブラウザとサーバの通信をちょっとだけ覗き見してみました。
一秒間に何十回,いや,何百回何千回ものリクエストにレスポンスを返しているヤフーのサーバは,とてもすごい性能ですね。
もちろん,ヤフーのサーバは特別製で,たくさんのリクエストにレスポンスできるよう,それなりの技術を使っています。でも,どこにでもあるような普通のパソコンやサーバでも,一秒足らずの時間で30回ものリクエストとレスポンスを数人ぶん程度はこなせる,というのは,ごくふつうのことなのです。
プログラムを介して答えを返す,Google 検索や掲示板のようなページの場合でも,さすがにプログラムを処理するぶんだけ速度は遅くなりますが,人間にとってはあっというまの一瞬に想像以上の仕事をこなすことができる,といえます。
○まとめ
リクエストとレスポンスはワンセット。前回のことは覚えていない。
ヤフーのトップページを開くだけで,約30回ものやりとりが行われる。
サーバというものは,それくらい平気で処理してしまう。
あなたのパソコンも,それくらい平気で処理してしまう。