ネットワークが落ちている間にプロキシキャッシュから読む
オフライン閲覧に必要な再利用可能なレスポンスの実際の集合を、依存関係と鮮度の振る舞いを含めて用意します。
ネットワークが使える間にページは開きますが、その後オフラインになるとスタイルと画像を失います。HTML は閲覧セッションが必要としたオブジェクトの一つにすぎませんでした。
フォワードキャッシュは、そこを通る適格なレスポンスを保持します。将来のすべてのリンクを発見するわけでも、HTML で言及されただけのリソースを取得するわけでも、オリジンで動くアプリケーションを再現するわけでもありません。
閲覧セットを用意する
読者が必要とする文書、その画像、スタイルシート、その他の依存関係を列挙します。次に三つの場合を区別します。
| レスポンスの状態 | オフラインでの結果 |
|---|---|
| 保存済みで再利用可能 | キャッシュが要求を満たせる可能性がある |
| 保存済みだが検証が必要 | オリジンが欠けると再利用できないことがある |
| 一度も保存されていない、またはキャッシュにない | 提供できるレスポンスのバイトがない |
切断前に一つのページを開いても、すべての依存関係がこの共有キャッシュに到達したことは証明できません。ブラウザが一部のリソースを独自のローカルキャッシュから提供した可能性があります。
ケーブルを抜いても鮮度は残る
オフライン運用には古いコンテンツに対する明示的な方針が必要です。only-if-cached の要求は、協調するキャッシュに保存済みの応答を求める別の方法です。HTTP には、古い応答をいつ使ってよいかという制限があり、該当する再検証の要件も含まれます。保存されたオブジェクトは、無期限に提供してよいという無条件の許可ではありません。
Squid 7 の offline_mode は、通常の検証の試みを止める特定の配備オプションです。検証の振る舞いを変えるだけで、欠けたオブジェクトを作り出したり、生きたログインの流れを再構築したりはできません。このディレクティブは Squid 8 では利用できません。
通常の HTTPS CONNECT もページ内容を TLS の内側に保ちます。トンネルプロキシはそれらの暗号化されたバイトから再利用可能な HTML や画像のオブジェクトを得ません。
定義された公開閲覧コレクションでは、完全な作業セットとその更新方針を計画し確認してください。任意の対話的ブラウジングでは、キャッシュだけでは利用者が次に要求する可能性のあるものの完全なオフラインコピーを約束できません。