47280
githubページで一からサイトを作っている初心者です。

* * *

● 質問：  
ブラウザキャッシュの持てる期間はどのくらいか知りたいです。

１．ブラウザを再起動すると消えてしまうのか。PC・スマホそれぞれ知りたいです。  
２．PC・スマホを再起動すると消えてしまうのか。  
３．上記それぞれブラウザに依存するのか、もしくは、ブラウザの設定等で変わるものなのか。デフォルトはあるのか。

* * *

● 簡単な条件：  
サーバー側はキャッシュに関して期限を定めません。キャッシュは残すものとします。サーバー側にもキャッシュがあり、コンテンツを更新すると自動でサーバー側のキャッシュがクリアされるように設定されています。  
（おそらくgithubページはこんな感じかな…と。間違ってたらすみません。ご指摘いただけると助かります。）

* * *

● なぜこの質問をしたのか：  
画像を多く含むサイトを作ろうと思っています。そこでなるべくユーザーにキャッシュを利用してもらいたいと思ったからです。もちろん最初は仕方ないのですが、次の日もう一度アクセスした時など、どうなのかな…と。

* * *

自分なりに調べてみたのですが、検索ワードが悪いのか、  
なかなか納得のいく説明が見つかっていない状況です。

どうかお力添えいただけると嬉しいです。  
よろしくお願いいたします。
CC BY-SA 4.0
2018-08-06T04:04:55.473
47271
2018-08-07T00:41:55.697
2018-08-07T00:41:55.697
3060
21211
question
http browser
ブラウザキャッシュの保持期間について
ブラウザーがどのようにキャッシュするかは、ブラウザーの設定とHTTPレスポンスヘッダーによって決まります。

一般的にはHTTPレスポンスヘッダーよりもブラウザーの設定が優先します。例えばシークレットモードするとウィンドウを閉じるとキャッシュは削除されてしまいます。

ブラウザーの設定は、既定では自動モードになっているので、通常はHTTPレスポンスヘッダーによってどのようにキャッシュするかが決まります。GitHub
Pages の場合は、HTTPレスポンスヘッダーをブラウザーで調べると以下のようになっていました。

```

    cache-control max-age=600
    date          Mon, 06 Aug 2018 09:15:03 GMT
    expires       Mon, 06 Aug 2018 08:07:43 GMT
    
```

キャシュされる時間は、`max-
age=600`となっているので600秒（10分）です。また、`expires`（有効期限）が過去に設定されているので、キャッシュされていても更新の確認が行われます。なお、HTTPキャシュの詳しい説明はMDNの[該当のページ](https://developer.mozilla.org/ja/docs/Web/HTTP/Caching)をみてください。

一般的には`max-age`を大きくすればキャッシュの時間を延長（推奨は1年まで）できるのですが、GitHub Pages で長くできるかというと、HTTP
ヘッダーを変更する機能がないので変更できないようです。（参考 英語版 [Github pages, HTTP
headers](https://stackoverflow.com/questions/14798589)）

最近のブラウザー（IE11を除く）では、HTTPキャッシュ以外にサービスワーカーを使うことでもキャッシュをすることができます。サービスワーカーを使えば、単にキャッシュするだけでなくオフラインでも動作させることができるようになったりキャッシュの仕方を細かく設定できるので、HTTPキャッシュよりも機能的にはずっと上になります。JavaScriptでscriptを書く必要がありますが、HTTPSに対応しているWebサーバーであればいいので
GitHub Pages でも使うことができます。慣れてきたら、サービスワーカーを勉強すればいいと思います。
CC BY-SA 4.0
2018-08-06T09:57:51.237
47280
2018-08-06T22:12:14.437
2018-08-06T22:12:14.437
15171
15171
47271
answer