こんにちは、けちょです。
仕事でWebサーバを使用していますが、理解を深めるためにWebサーバ(特にキャッシュ)についてまとめてみました。
※キャッシュについては、サーバだけでなくクライアントにも存在しますが、今回は触れません。
Webサーバとは
Webページの表示に必要なコンテンツ(HTML、JavaScript、CSS等)を配信するための、サーバアプリケーションの一種です。
- Apache HTTP Server(アパッチ。単に Apache と言うことも)
- Internet Information Services(IIS)
- nginx(エンジンエックス)
キャッシュとは
クライアントからのリクエストに対して、Webサーバはレスポンスとしてコンテンツを配信します。
クライアント数が少ない場合は、レスポンスを返すまでのオーバーヘッドは微々たるものですが、1,000台を超えるような多数のクライアントをさばく場合は、コンテンツ生成~配信までのオーバーヘッドが問題になってきます。
その問題を解決するのが、キャッシュという機能です。
キャッシュ機能は、クライアントからリクエストがあったコンテンツを一定時間、サーバ内のキャッシュディレクトリに格納し、他のクライアントから同一のリクエストがあった場合は、キャッシュディレクトリから配信することで、コンテンツ生成~配信までのオーバーヘッドを減らすことを目的としています。
キャッシュの特性
メリット
- オーバーヘッドの低減
- 多数のクライアントが少数のコンテンツをリクエストする場合、最も大きな効果が得られる
デメリット
- 必ずしもサーバの最新データが配信されるとは限らない
- クライアントごとに多種多様なコンテンツを配信する場合、キャッシュのメリットが得られない場合がある
コメント