ブラウザキャッシュとは

WEBサイトの制作や更新に携わっていると必ずぶつかるのがキャッシュ問題…。
本来、このキャッシュとは、主にクライアント(ユーザー)側で取得したデータを一時的に保管しておく事で、表示速度の改善やサーバーへの負荷を減らす事が本来の目的です。
しかし、サイトを運営したり、サイトを制作したりする方にとってはストレスになってしまう場合があります。
そこで、今回はそんなキャッシュについて触れていこうと思います。
よりコアとなキャッシュのお話は「ブラウザがサーバーにアクセスする際ブラウザとサーバーは何している?」でも書かれてますのでよろしければご覧下さい。

そもそもブラウザって何ですか?

インターネットに接続して、WEBページや検索する際に表示する為のソフトウェアアプリケーションです。
今、こちらの記事を見て頂いているという事はこのブラウザを通して表示されているものになります。
代表的なブラウザの種類としてはGoogle Chrome、Safari、Internet Microsoft Edge、Firefox、Operaなどがあります。

ブラウザキャッシュとは何ですか?

WEBサイトの一ページを表示するにはimg,css,js,HTMLなどのデータを読み込む必要がある為、サーバーのスペックやエンドユーザーのネット環境などでも差は出てきますが、表示までの時間がかかってしまうのです。

また、WEBサイトへのアクセスが集中すると、サーバーに負荷がかかりサイトが表示されなくなる場合もあります。

その為に、WEBブラウザ上で一度アクセスしたサイトのデータ(img,css,js,HTMLなど)をサーバーのメモリ一時的に保管する。
再度アクセスされた際に、キャッシュを利用し表示速度を早くする為の仕組み、これをブラウザキャッシュと言います。

キャッシュフロー図

サーバーとクライアント側のキャッシュフロー図

 

また、ブラウザキャッシュ以外にもサイトを表示する為には様々なキャッシュが存在しています。
その中でも代表的なキャッシュを紹介していきたいと思います。

サーバーキャッシュ

レンタルサーバーなどで設定できるサーバーキャッシュはサーバー側でキャッシュを削除する必要があります。

ファイルキャッシュ

キャッシュファイルに格納されるデータ。
Webブラウザのキャッシュファイルだけでなく、フォントの表示を高速化するフォントキャッシュファイルなど、目的に応じてさまざまなものがある。
キャッシュファイルは蓄積する事でハードディスクの容量を圧迫されるため、定期的にキャッシュファイルを削除する必要があります。

インデックスキャッシュ

クローラーがサイトを認識し検索結果に反映する為のキャッシュデータ。サイトの情報をサーバーへ持ち帰り保存されます。
悪質なサイトやガイドライン違反をしているサイトはキャッシュを削除される場合があります。
因みに、Googleでキャッシュが保存されているかどうか確認するには以下の方法で確認できます。
cache:ドメインorURL

MySQLのクエリキャッシュ

データベースを参照(SELECT)した結果をメモリにキャッシュするデータ。
同一参照(同じデータベースのテーブルを表示する)があった場合にメモリからキャッシュデータが返されます。
INSERT, UPDATE, DELETE などの更新があった場合はキャッシュからフラッシュ(削除)されます。

DNSキャッシュ

IPアドレスやドメイン名の問い合わせ結果を一定期間保存するキャッシュ。DNS情報は変更される場合もありますので、有効期限が設定されており期限切れになるとデータは破棄され、再度ドメインへの問い合わせがあった時にDNSキャッシュとして保管されます。

キャッシュのお話が出てくるとクッキーについてもセットで知っておく必要があるかと思いますこちらは改めて記事にしたいと思いますので今回は簡単に。

cookie(クッキー)

WEBサイトで代表的なもので言うと、ログイン画面です。
主な情報としては、ID、パスワード、メールアドレス、訪問回数などがユーザー情報として保存されます。

さいごに

ニュースを見たり、ショッピングをしたり、銀行取引をしたり…インターネットは私たちの生活に必要不可欠な存在となりました。
それと同時に、パソコンだけではなく、スマートフォンやタブレットなど、多様なデバイスを利用し、あらゆる場所からアクセスし、同じユーザーであっても複数のブラウザを利用している人も多いかと思います。
デバイスやサーバーのスペック、接続時の通信環境など多様なアクセスに対応していく為に、今回ご紹介したブラウザキャッシュは必要不可欠な存在になります。
そして、今回ご紹介した以外にも様々なキャッシュが存在し、一概に何が原因で速度表示を上げられる、という事はなくなってきています。
まだまだ、私も勉強中の身で至らぬ点だらけなのですが、いつか点と点がつながる日が来るよう邁進していきたいと思います。
最後までお読み頂きありがとうございました。

 

この記事と同じカテゴリの記事