コンテント・ネゴシエーション

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

ツイート 2