技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

HTTPのキャッシュについて

HTTPでキャッシュを利用する方法

キャッシュとはサーバーへのアクセスの頻度や通信量を減らすためにクライアント側で一度とった情報を保存しておき、必要になった時にあらかじめ取得してあった情報を利用することを言います。

■ キャッシュを利用するメリット

1. サーバへの通信を減らすことができるため、ユーザーの体感速度を上げることができる
2. ネットワーク接続が切れた状態でもある程度サービスを継続できる
3. サーバへの通信回数、転送量を減らすことでユーザーの通信コストを下げることができる
4. サーバへのアクセス回数が減ることで、サーバの維持費用を抑えることができる

キャッシュの保存場所はプロキシサーバーになるケースが多いです。(プロキシサーバーとは、クライアントとサーバーの間に位置してやり取りを仲介する機能を果たす。)

プロキシサーバーのキャッシュを利用する時には保存期間を意識しましょう。

オリジンサーバーのデータが書き換わっても最新の情報が反映されないケースがあるからです。

f:id:lhiroki1205:20201118141514p:plain

HTTPのキャッシュタイプ

1. Expiration Model
2. Validation Model

Expiration Model

あらかじめ、レスポンスデータに保存期間を決めておき期限が切れたら再度アクセスして取得を行う。

いつ期限が切れるかはサーバーからのレスポンスに含めて返すことで実現できます。

レスポンスはCache-Control レスポ ンスヘッダを使う方法、もう 1 つが Expires レスポンスヘッダを使う方法です。

Expires: Fri, 01 Jan 2016 00:00:00 GMT 
Cache-Control: max-age=3600

Validation Model

今保持しているキャッシュが最新であるかを問い合わせて、データが更新されていた場合にのみ取得をおこなう。

f:id:lhiroki1205:20201118142246p:plain

キャッシュさせたくない場合

逆にキャッシュをさせたくない場合はCache-Control ヘッダをno-cacheにすればキャッシュされません。

Cache-Control: no-cache

Cache-controlヘッダ一覧

f:id:lhiroki1205:20201118142859p:plain 

参考

www.oreilly.co.jp