HTTPサーバーとWeb開発

47. HTTP サーバー通信を高速にするキャッシュの技術とは?

HTTP のブラウザ応答を速くする技術として「キャッシュ」がある。
キャッシュ(Cache) とは一度でも取得したHTMLコンテンツはどこかに保管しておいて次回以降に再利用する手法である。
例えば、IE は省略時の設定として静的な HTML コンテンツをローカルPC に自動的に保管する機能がある。
これによってブラウザは HTML コンテンツの再取得が要求されたときはHTTP サーバーに自分が保管しているコンテンツがあることとその保管した日付・時刻を通知する。
HTTP サーバーはその日付・時刻以降に HTML コンテンツの変更が無ければそれを利用するようにブラウザへ通知する。
ブラウザが自分が保管していた HTML コンテンツを直ちに表示するので通信のトラフィックが
最小限で済み、結果的にユーザーは速い応答速度を得ることができる。
これは何もローカルPC だけに限ったことでは無く、あなたの会社にProxyサーバーが導入されて
いれば他の誰かがアクセスした静的なサイトはProxyサーバーによってキャッシュされて、別の人がアクセスしようとすればキャッシュが戻されることになる。( Proxy とは代替という意味)
ところですべての HTML がキャッシュされるかというとそうではない。

一般的には CGI や JSP & Servlet などによる出力結果としての HTML はキャッシュされることはない。

CGI や JSP & Servlet によるデータ・バインドではデータが変化している可能性があるのでHTTP サーバーもブラウザもキャッシュは行わないのである。

以上の 2つはクライアント側におけるキャッシュの手法であるがサーバー側でもキャッシュの機能がある場合がある。
サーバー・サイドのキャッシュのことをリバース・プロキシー・キャッシュ(Reverse Proxy Cache) と言う。
サーバー・サイドのキャッシュはハード・ウェアによって行われる場合もあるがここではソフトウェアに話を限定する。

iSeries400 の世界でのサーバー・サイドのキャッシュには

  1. OS/400 V5R2M0 からの FRCA (Fast Response Cache Acceralator)
  2. Enterprise Server Alska のキャッシュ・サービス

の2つがある。
それでは以降でこの2つの違いを解説しよう。