JavaScriptやCSSを動的にdeflate圧縮するのではなく、あらかじめ圧縮しておいたものを配信することでサーバーのCPUリソースを節約する

prototype.jsを10KBにする方法Safari と gzip 圧縮 JavaScriptなどですでに述べられてることですが、mod_deflateでリクエストがある度にアセット(CSSやJavaScript)にdeflate圧縮をかけるのは、deflate処理が軽いからと言っても、塵も積もれば馬鹿にならない(WWWサーバーやAPサーバーに本来使って欲しいCPUリソースを蝕む)訳で、deflateしたいアセットには予めgzip圧縮してそれを配信し、サーバーのCPUリソースに優しいようにしましょう、というお話。

Continue reading

mod_expiresとmod_rewriteを使ってサイトの帯域節約と体感速度を向上させる方法

普通の帯域節約術としては、mod_deflateでdeflate圧縮するとか、CSSやJSファイルのHTTPレスポンスヘッダにLast-ModifiedやEtagを追加しておいて、ブラウザがHTTPリクエストヘッダにIf-Modified-SinceやIf-None-Matchを付加するようにし、コンテンツが変更されていなかったら304 Not Modifiedを返すという方法を取るかと思います。

しかし、HTTPサーバーはコンテンツの数だけ304 Not Modifiedを返さないといけないため、その分帯域を消費しますし、またCSSや画像などのパーツの304 Not Modifiedが返ってくるまで、そのパーツのレンダリングが行えないという問題があります(つまり体感速度に影響します)。

今回紹介するのはExpiresヘッダやCache-Control: max-age=31536000を活用して、CSSやJSなどのファイルをリクエストする際、それらのファイルが変更されない限り、If-Modified-Sinceなどのリクエストをそもそも発生させなくする方法です。

Continue reading

ColdFusion8(Scorpio)内でPHPやRubyを動かすことが可能

ColdFusion8(Scorpio)内でPHPやRubyを動かすことが可能

ColdFusion8(Scorpio)はJava 6上での動作をサポートしました。

Java 6にはJSR 223: Scripting for the JavaTM Platformという、Java上で各種スクリプト言語を動かすための仕組みが導入されています(See: scripting: Project Home Page)。このJSR 223を使うと、ColdFusion(Java)上でPHPやRubyなどの各種スクリプト言語が動きます。

そしてJSR 223を使ってPHPやRubyをCFMLテンプレート内で動かしてしまった強者が一人。

Continue reading