2012-02-19 18 views
13

私は現在、アカマイをCDNとして使用していますが、ブラウザがコンテンツをキャッシュしていることに気づきました。ブラウザがimages/css/jsをキャッシュするのはすばらしいことですが、にはブラウザではなくキャッシュではなく、アカマイでキャッシュする方法があるかどうかを知りたいと思います。今、私の原点から、私はこのようなヘッダを送信今すぐCDNのキャッシュではなくブラウザで

、:

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 

アカマイはこれらのヘッダを尊重するだけでなく、右に戻るユーザーに渡します。これにより、ブラウザは実際にコンテンツもキャッシュするようになります。

これはほとんどの場合非常にうまくいきますが、ユーザーがログインしたクッキーを持っていれば、CDNキャッシュをバイパスして原点に行くというCDNロジックもあります。

こうすると、未承認のユーザーがクリック「ログイン」にいるとすると、それらはログインプロセスを通じて送信され、同じページに戻されます。 CDNがこのページの原点から要求しても、ブラウザは実際に同じページを再度要求し、ログインが機能していないかのように見えます。

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

アカマイがCache-Controlヘッダーをハードコーディングされたno-cache値に上書きできるかどうかを知りたいのですが、これを元にする方法があるかどうか疑問です。

ありがとうございます!

+1

なぜブラウザがコンテンツをキャッシュしないようにしたいのですか? –

+2

彼は、ユーザーがログインしたときにブラウザがページを再ダウンロードすることを望んでいるので、おそらくユーザーにはパーソナライズされたページが表示され、他のユーザーと同じHTMLは表示されません。 –

答えて

1

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

あなたの場合、ユーザーがログインしているかどうかによって動作を変更する必要があります。オブジェクトがログインしているユーザーのブラウザに配信されているときにオブジェクトがキャッシュをバイパスしているか、またはクッキー値を使用してキャッシュキー(Akamaiサーバーによってオブジェクトが参照される方法)を変更することができますここでアカマイと話をしてください。

パーソナライズされたものがAkamaiキャッシュの他のユーザーによって表示されないように、ここでは非常に注意する必要があります。疑義がある場合は、注意の欄に誤りがあり、Akamaiがオブジェクトをキャッシュできないようにしてください。

19

Akamaiには、Cache-Controlと同じ形式の「​​Edge-control」というヘッダーがあります。エッジコントロールを正の最大有効期間で指定し、Cache-Controlを「no-cache、no-store」に設定することができます。これはあなたが望むものを得るはずです。

私がキャッシュしたいページにEdge-controlヘッダーを送るときは、値の前に常に "!no-store"を付けてAkamaiがキャッシュしていることを確認します。たとえば、フォーマットは "!no-store、max-age = 1234"となります。

+0

関連するユースケース - https://community.akamai.com/thread/2704 –

関連する問題