14

現在、Akamai を CDN として使用していますが、ブラウザもコンテンツをキャッシュしていることに気付きました。ブラウザが images/css/js をキャッシュするのは素晴らしいことですが、ブラウザにキャッシュせずに Akamai にキャッシュする方法があるかどうか知りたいです。

今、私の原点から、次のようなヘッダーを送信します。

Cache-Control: public, must-revalidate, max-age=300
Expires: Sun, 19 Feb 2012 19:04:30 GMT
Date: Sun, 19 Feb 2012 18:59:30 GMT

Akamai はこれらのヘッダーを尊重しますが、それらをユーザーに直接返します。これにより、ブラウザは実際にコンテンツもキャッシュします。

これはほとんどの場合うまく機能しますが、ユーザーがログインしている Cookie を持っている場合、CDN キャッシュをバイパスしてオリジンに直接アクセスする CDN ロジックもあります。

したがって、認証されていないユーザーが「ログイン」をクリックすると、ログイン プロセスに送られ、同じページに戻されます。CDN はオリジンからこのページをリクエストしますが、ブラウザは実際には同じページを再度リクエストし、ログインが機能していないように見えます。

これで、ログイン プロセスで ?l=1 などのクエリ パラメータを追加するように強制できますが、もっと良い方法が必要です。

Akamai が Cache-Control ヘッダーをハードコードされたキャッシュなしの値に上書きできるかどうかを確認したいのですが、元からこれを行う方法があるかどうか疑問に思っています。

ありがとう!

4

2 に答える 2

21

Akamai には、Cache-Control と同じ形式の「​​Edge-control」というヘッダーがあります。Edge-control に正の max-age を指定してから、Cache-Control を「no-cache, no-store」に設定できます。これはあなたが望むものを得るはずです。

キャッシュしたいページの Edge-control ヘッダーを送信するときは、常に値の前に「!no-store」を付けて、Akamai が確実にキャッシュするようにしています。したがって、形式はたとえば「!no-store,max-age=1234」になります。

于 2012-05-25T20:18:34.983 に答える
2

Akamai は、通常の Cache-Control: および Expires: ヘッダーに対して、Akamai サーバー内で異なるキャッシュ動作を設定する手段を提供します。オリジン サーバーから渡すことができるカスタム ヘッダーがあります。Akamai エッジ サーバーは、コンテンツをブラウザーに渡すときに理解し、従い、削除します。この情報は、Akamai ポータルのドキュメントで入手できます。

あなたの場合、ユーザーがログインしているかどうかに応じて動作を変更したいと考えています。オブジェクトがログインしているユーザーのためにブラウザーに配信されるときにオブジェクトがキャッシュをバイパスするように要求するか、Cookie 値を使用してキャッシュ キーを変更することができます (Akamai サーバーによるオブジェクトの参照方法)。ここで Akamai にお問い合わせください。

パーソナライズされたものが Akamai キャッシュの他のユーザーに表示されないように、ここでは十分に注意する必要があります。疑わしい場合は、注意を怠り、Akamai がオブジェクトをキャッシュすることを許可しないでください。

于 2012-03-23T03:43:49.097 に答える