コンテント・ネゴシエーション
GZIP対応なら圧縮したものを返すようにサーバーを設定
サーバーの設定を処々変更。 見た目は全く変わらないが、可能ならば転送量を減らすようにした。
- CSSファイルの構成を整理・集約
- CSS、JSファイルにはGZIPファイルも用意
- コンテンツ等も全てPHPにして、GZIP対応のブラウザには圧縮して転送
これまでは、拡張子を消したいがために+MultiViews
にしていたのだが、これで晴れて本来の(?)コンテントネゴシエーション対応となった。
GZIPの効果は思いの外すごく、CSSでいえば、13.7KB→3.01KB、11.1KB→2.43KBにまで圧縮されている。 これで転送量が大幅に減らせる…とはいえ、背景に巨大画像を使っているので、軽くなったという印象は持たれないかもしれないが^^;;;
で、残るはMovableTypeの吐き出すCGIなのだが、どこをいじればいいのかよくわからん。 かといって、ソースを追いかける気力は今はなし^^;
余談だが
PCに関してはADSLだとか光だとか常時接続が半ば当たり前ともなっているが、転送量を少なくして一番恩恵を受けるのは携帯電話。 なので、携帯電話はどこまでGZIPに対応しているのか、自分の携帯電話を使って(docomo SH01B)調べてみた。
検証のために使用させていただいたのは、Kawa.net xp - Ajax&Perl技術情報(川崎有亮)にある、Content-Encoding: gzipのテストのサンプルプログラム。
実行結果
- iモードブラウザ
Using gzip: NO HTTP_ACCEPT_ENCODING = HTTP_USER_AGENT = DoCoMo/2.0 SH01B(c500;TB;W24H16)
- Google経由のiモードブラウザ
Using gzip: YES HTTP_ACCEPT_ENCODING = gzip HTTP_USER_AGENT = Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko; Google Wireless Transcoder) Version/3.1 Safari/525.13
- iモードのフルブラウザ
Using gzip: YES HTTP_ACCEPT_ENCODING = deflate, gzip HTTP_USER_AGENT = Mozilla/5.0 (SH01B;FOMA;like Gecko)
iモードブラウザでの表示の場合はgzip未対応…。 せっかく最新機種のほとんどは、外部CSSにも対応したっていうのにねぇ(ちなみに、Googleに変換させた場合は、なぜかCSSが適用されてない)
"コンテント・ネゴシエーション"へのTwitter上でのコメントやRT
2件のツイートがあります。
ツイート 1
SVGに関してちょっと追記 / asamuzaK.jp : コンテント・ネゴシエーション / GZIP対応なら圧縮したものを返すようにサーバーを設定 http://t.co/gNZgenhkTS
ツイート 2
SVGに関する追記とツイートは取り消しです asamuzaK.jp : コンテント・ネゴシエーション / GZIP対応なら圧縮したものを返すようにサーバーを設定 http://t.co/gNZgenhkTS