«前の日記(2007-01-24 [水]) 最新 次の日記(2007-01-28 [日])» 編集

ベンチャー企業のSEのひとりごと

自称ITアーキテクトの自堕落な日常を綴る日記です。
技術ネタを書こうと始めた日記なのに、文房具ネタの方が多いというのが目下の悩み。

2005|08|09|10|11|12|
2006|01|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|12|
2008|01|02|03|05|06|07|09|10|11|
2009|06|07|11|
2010|01|02|03|06|
2011|02|04|
カテゴリー anime | book | etc | food | game | hatena | health | life | mail | mobile | network | news | opinion | pc | security | software | stationery | tDiary | tech | web | work
My status
あわせて読みたいブログパーツ

2007-01-27 [土] [長年日記]

_ [tech][web] Apache のコンテントネゴシエーションで圧縮転送 はてなブックマークに追加

いつも ClamWin の日本語化パッチでお世話になっている X-WORKSの人が圧縮転送のエントリを書いている。

<script type="text/javascript" src="prototype.js.gz"></script>

(中略)

これは素晴らしい!

(中略)

出力のバッファリングを有効にする ob_start と出力バッファを gzip 圧縮するための ob_start コールバック関数 ob_gzhandler。これを合わせて ob_start('ob_gzhandler'); と PHP スクリプトに書くだけで出力が gzip 圧縮されて出力される。万歳!

[gzip 圧縮で転送してみるより引用]

ここまで読んで、「あれ?リンクの .gz ていらなくね?」 「CSS も同じやり方すれば PHP なんて使わなくても良いような…」 と思ったので実験。

基本的には Apache とブラウザがコンテントネゴシエーションに対応している事が前提。ページの表示言語の選択に良く使われる機能だが、ブラウザに対応した圧縮ファイルの選択にも使えるわけだ。

まず prototype.js を使った普通のページ。適当に検索したページ作成。うん、普通に動作する。

ここでアクセスログから転送ファイル量を抜き出し、確認しておく。71260 byte でファイルサイズと一致する

次に prototype.js のコピーを作成し、gzip -9 で圧縮。prototype_comp.js.gz として保存。圧縮前のファイルも prototype_comp.js も作成。

先ほどの HTML の prototype.js のリンクだけ変えたテストページを作成。

アクセスログを見ると同じく 71260 byte 、この時点では圧縮前のファイルが転送されてるっぽい。

似たような事をやっているサイトから設定をコピー。

Options +MultiViews
AddEncoding x-gzip .gz .tgz
実際後で確認したが、この場合 ForceType は要らない様だ。

で、実験してみたがうまくいかない。何度やっても圧縮前のファイルがアクセスされる。

こういうときこそマニュアルを参照。

マニュアルによるとコンテントネゴシエーションを使うにはどうやら拡張子はつけてはいかんらしい。

と言う事で、スクリプトの読み込みを

<script type="text/javascript" src="prototype"></script>
に変更すると無事圧縮後の 16233byte でアクセスされる。

とりあえず動作確認終了して満足してしまったので、CSS の圧縮に対する検討また今度。

以前から知識としては持っていましたが、実際やってみるとなかなかはまりそうですね。(ファイル名の指定とか)

ちなみにマニュアルは Apache2.2 の物を参照しましたが、検証環境は Apache1.3 です。

本当はちらっとコメントだけ残すつもりがエラーになったのでエントリを書くことに。面白かったからいいけど。

_ [life] 宅本便申し込み はてなブックマークに追加

大量の不要な本を処分しないといけないのでブックオフに売る事に。

近所のブックオフだと出張買取はやってるけど、早くても2週間後になるそうだ。

それでは困ると言う事で宅本便|http://www.bookoff.co.jp/sell/takuhon/を申し込み。

約1週間で書類一式を送ってくれるそうだが、1週間もかかるのかよ…。

文句言っていても仕方ないので素直に待つ事にする。


FriendFeed で共有 livedoor Reader に追加 RSS (RDF Site Summary)