This is where he blogs about web design, front-end development, web performance, and other things web-related.

画像やCSSのようにスタティックなコンテンツはクッキーを有効にしていないクッキーレスドメインから取得した方が優れたパフォーマンスが見込めるというのはよく知られた高速化手法のひとつだ。この高速化手法の説明と実施方法をRob Flaherty氏がravelrumbaにおいてServing Static Content from a Cookieless Domainのタイトルのもとで紹介している。要点がまとまっていてわかりやすい。

サーバが特定のドメインに対してクッキーを設定した場合、そのドメインに対するHTTPリクエストにはクッキーが含まれるようになる。サブドメインも対象になる。クッキーのサイズ自体は数百バイトと小さいものだが、すべてのHTTPリクエストにつくようになるため、その分だけパフォーマンスは低下する。1ページあたり大量のコンテンツを含んでいる場合などは積み重なってパフォーマンスに効いてくる。

ある画像に対するリクエストヘッダについているクッキー

同じページにある別の画像に対するリクエストヘッダについているクッキー

このため画像やCSSなどのクッキーを必要としないスタティックなコンテンツはクッキーレスの別ドメインからダウンロードするようにすれば、その分だけパフォーマンスの向上が見込めるという寸法だ。

Serving Static Content from a Cookieless Domainではこれを実現する方法として、同じリソースに対するアクセスにCNAMEを設定して別のドメインを割り当てるか、別のサブドメインを割り当てる方法を紹介。割り当て後にリソースへのURLを別ドメインまたはサブドメインへ置き換える方法を紹介している。なおサブドメインを割り当てた場合、クッキーを利用するように設定するドメインをexample.comのようなトップレベルドメインではなく、www.example.comのように利用するドメインに絞り込むように注意している。トップレベルドメインに設定していると、クッキーレスのために用意したサブドメインにまえ設定が及んでしまう。

手軽に実施する方法としては2static.itのサービスを使って「http://設定した名前.2static.it/」経由でクッキーレスアクセスを実現する方法、CDNやAmazon S3を使う方法なども紹介されている。クッキーレスドメインからダウンロードするように設定を変更した場合、ブラウザにおけるパラレルダウンロードが増えるという利点もあると補説がある。