Google ChromeのDNSプリフェッチ
Published: 2010/12/14
いまさらですが。。。
DNSプリフェッチ、、、要はユーザがクリックする前、ユーザーがリターンキーを押す前に、どういうURLにアクセスしそうかChromeが判断して、事前にDNSでの名前解決を行っておくことで、名前解決の時間を短縮してウェブアクセスの体感速度の向上を測るという技術ですね。
よく例に上がるのが、表示されたページのリンクのドメインに対するプリフェッチですが、それ以外にも、Google Chromeだと、アドレスバーに入力する文字列についてもプリフェッチが行われます。
例えば、アドレスバーに
www.google.com
と入力するとき、
www.google.co
で、クエリが飛び、
www.google.com
まで打ったときにリターンキーを押す前にクエリが飛びます。
これ、
文字列.TLD
という形になった瞬間にクエリを飛ばすもののようで、
hoge.cc hoge.pr
でもでちゃいます。
また、
www.hoge.com
を修正しようとして、こんなことをすると
www.hogeggggggggggg.com
gを入力する度にクエリが飛びます。
便利なのか迷惑なのかは、その人の立場によって変わりますが、、
TLDはccTLDとかだけではなく以下のすべてに対してちゃんと機能するようです。
TLD | 例 |
---|---|
gTLD | .com .net .org .info .biz .name .pro |
sTLD | .aero .coop .museum .asia .mobi .tel |
ccTLD | .jpなど |
iTLD | .int |
特殊 | .gov .mil .edu .arpa .local |
よくよく考えれば、TLDとしてではなくても
www.internet〜.com
みたいなURLだと
www.int
の瞬間にクエリが飛びますし、
もっと極端な例で、
www.pro〜.mobile〜.co.jp
みたいなドメインだと、
www.pr www.pro www.pro〜.mo www.pro〜.mobi www.pro〜.mobile.co www.pro〜.mobile〜.co.jp
と6種類のクエリが飛びます。
これだけ単純な文字列パターンがたくさん準備されているわけで、クエリが飛ぶ量は多いんでしょう。
便利なのか迷惑なのかは、その人の立場により違いますが。。。
またchromeはアドレスバーは検索窓としても使えますので、普通に文字列入れてリターンってやることがあると思いますが、
hogehoge
と入力してリターンを押すと、検索前に「hogehoge.xxx.co.jp」とか自分のドメインが補完された形でAレコードを調べるクエリを飛ばします。
ほげほげ
だと、ちゃんとPunycode表記でAレコード検索されます。
xn--18ja5jb.xxx.co.jp
いや、便利なのか、迷惑なのかはその人の立場によって変わると思いますが。。。
この機能、DNSの運用者にとっては、サーバー負荷を上げてしまうものとして問題だと捉えられそうですが、インターネットユーザーやサービス提供側からのアクセス速度向上に対するニーズは今後も大きくなりつづけるわけですから、仕方ないことではないかなぁと思います。たしかにサーバー増強が必要とかになっちゃうとたいへんなんですが。
また間にファイアウォールやNAT装置があった場合は、セッション溢れの問題の可能性も考えられないことはないですが、ちゃんとした設定をしていればセッションは増えないので問題ないんじゃないかなぁと思います。装置と設定次第なのかもしれませんが。
また、何かしらDDoSっぽい悪さに使えそうかとも思いましたが、そんなことをしなくてももっと楽にDDoSる方法はあるわけで、なにもこの機能を使うことはないかなぁと。
by jyake