グーグルがWebを高速化するために何をしているか
スピードは重要だ
![fig](http://www.publickey1.jp/blog/10/speedmatters01.jpg)
![fig](http://www.publickey1.jp/blog/10/speedmatters02.jpg)
Webページが表示されるまでのシーケンスを見ていこう。そうすると、DNSのルックアップ、TCPコネクションのセットアップ、サーバ処理待ち、データ送信、パース処理とJavaScriptの実行などの多くの処理が行われている。Webページは、思ったより複雑なものなのだ。
![fig](http://www.publickey1.jp/blog/10/speedmatters03.jpg)
![fig](http://www.publickey1.jp/blog/10/speedmatters04.jpg)
そしてブラウザを超えて、高速化のための取り組みを行っている。80年代前半のTCP/IPプロトコルが前提としていた回線は大きく変わった。かつて56Kbitラインは速い回線だったのだ。インターネットはいまより1万倍は遅かった。そこでTCPをモダンなネットワークにチューンすべく、IETFにドラフトを提出している。
これにより、アプリケーションやWebページを変えることなく12%は高速化される。
![fig](http://www.publickey1.jp/blog/10/speedmatters05.jpg)
![fig](http://www.publickey1.jp/blog/10/speedmatters06.jpg)
SSLにも速度の問題がある。SSLはデータをやり取りする前に、2回のハンドシェイク、2回のラウンドトリップが発生する。これを回避するような実装が可能だ。Android SSLはこれで10%の高速化を実現した。
![fig](http://www.publickey1.jp/blog/10/speedmatters07.jpg)
HTTPには非常に大きな改善の可能性がある。まず、Webページに含まれる44の要素をロードするために、44回もリクエストを繰り返して呼び出している。そのたびにサーバのレスポンスを待たなければならない。
SPDY(スピーディ)という技術をオープンソース化しており、Chromeとグーグルのサーバサイドで実装を実験中だ。Apache対応のモジュールもある。これによりページのダウンロードが25%高速化した。トップ25のサイトでやりとりされるパケットが40%も減少したのだ。
さらにSPDYのテクニックとしてヘッダ圧縮もしている。クライアントがサーバへ問い合わせるときには、毎回ヘッダが送信されている。ヘッダにはブラウザのバージョンや文字コード等々の情報が含まれているが、これは実際には最初の1回だけやりとりすれば十分だ。このテクニックをCNETのWebサイトで試したところ88%のヘッダを削減することができた。
![fig](http://www.publickey1.jp/blog/10/speedmatters08.jpg)
最後にインフラストラクチャについての改善もある。Public DNSの提供だ。グローバルに分散された高速なDNSを提供している。1Gbpsブロードバンドのテストも始めた。また、jQueryのような、多くのWebサイトが利用しているリソースのホスティングも行っている。
![fig](http://www.publickey1.jp/blog/10/speedmatters09.jpg)
関連記事
●JavaScriptが遅い4つの原因とは? ●JavaScriptをいかに高速化するか、IE9、Firefoxの取り組み ●﹁Webを支える技術﹂。Webアーキテクチャを知り、Webサービスを設計するための一冊あわせて読みたい
Webブラウザは多様性の時代へ。IBMはFirefoxを社内標準に、マイクロソフトはグーグルのChromeをサポート
≪前の記事
さくらインターネット、NoSQLデータベースのテストサービスを開始