Information
日記
G-ZONEのメインコンテンツとは関係のない日々を綴ったX-Virusの日記です。メインコンテンツが更新されていない時、X-Virus が何をしているか、ここを読んでもらえれば分かるように・・・というより、自分が何をしようと目論んでいるかといった備忘録として使う予定です。
-- 2007-02-27
前々から課題となっていたCGIページの画像のブラウザへのキャッシュを有効にするこが、ようやく出来た。ブラウザのキャッシュを使ってもらう事で、特に Gs Mall のメディア情報ページのページ移動が格段に快適になることが想像されていた。
キャッシュを無効にさせるテクニックは、良く知られているしウェブ上にもたくさん紹介されている。しかしキャッシュを有効にするテクニックは、あんまり聞いた事が無い。
技術的には、キャッシュを利用してほしい時には、ブラウザに 304 Not Modified を返せば良い。このステータスコード304を個別のオブジェクト単位に的確にブラウザに返すのは、キャッシュさせないよりも結構面倒だった。ブラウザは、オブジェクトの更新を含めて問い合わせる時、HTTPリクエストヘッダに「If-Modified-Since」または「If-None-Match」を含めて問い合わせてくる。どちらの場合にも対応しなければならない。そして、その下準備は、前回ブラウザが問い合わせてきた時に遡る。さらにRFCによれば、ステータスコード304を返すときは、ヘッダのみ返しデータを送ってはいけないことになっている。結果、色々と勉強することになった。
プログラム的には無駄な努力のように思える。そんなのキャッシュされて困るよりましだから気にしないという向きも多い。がしかし、ブラウザは画像のレンダリングに多くのパワーを消費する必要が無くなり、結果としてユーザが快適になる恩恵を受ける。そしてサーバ側の負荷も減る。
G-ZONEはかねてより、ユーザ側の利便性を重要視してデザインやプログラムの仕様を決めて、できるかぎりのことをしてきたつもりだ。その足かせは、自分の技術力向上の大きな収益となっていると信じている。