CloudFrontのForward Cookiesの設定を色々試してみた

CloudFrontのForward Cookiesについて実際どの様に動作するのか調べてみました。以下一定時間のキャッシュ設定をしてcURLを使用して検証しています。

Forward CookiesをAllに設定

Forward Cookies All

最もキャッシュが効きにくい設定です。

Cookieにkey1=aaaを設定してキャッシュ作成後、下記のCookieを設定してアクセスすると以下のようになります。

設定したCookie キャッシュ オリジンに渡されたCookie
key1=aaa Hit -
key1=bbb Miss key1=bbb
key2=aaa Miss key2=aaa
key2=bbb Miss key2=bbb

Forward CookiesをWhitelistに設定

Whitelistに指定したCookieのみキャッシュ対象から除外する設定です。

Whitelistにkey1を設定

Forward Cookies whitelist key1

Cookieにkey1=aaaを設定してキャッシュ作成後、下記のCookieを設定してアクセスすると以下のようになります。

設定したCookie キャッシュ オリジンに渡されたCookie
key1=aaa Hit -
key1=bbb Miss key1=bbb
key2=aaa Miss Cookieなし
key2=bbb Miss Cookieなし
key1=aaa; key2=aaa Hit -
key1=bbb; key2=aaa Miss key1=bbb
key2=aaa; key1=aaa Hit -

key2については設定されていないのと同じような動作になります。また、クエリストリングのキャッシュ設定の場合は順番も影響したのですがCookieの場合は影響しないようです。

Whitelistにkey1/key2を設定

Forward Cookies whitelist key1 key2

Cookieにkey1=aaaを設定してキャッシュ作成後、下記のCookieを設定してアクセスすると以下のようになります。

設定したCookie キャッシュ オリジンに渡されたCookie
key1=aaa Hit -
key1=bbb Miss key1=bbb
key2=aaa Miss key2=aaa
key2=bbb Miss key2=bbb
key1=aaa; key2=aaa Miss key1=aaa; key2=aaa
key1=bbb; key2=aaa Miss key1=bbb; key2=aaa
key2=aaa; key1=aaa Miss key1=aaa; key2=aaa

アプリケーションなどでは影響でることはないと思いますが、keyの順番を逆順にした最後のリクエストでオリジンに渡ってきたリクエストのCookieの順番が変わっていました。

また、Cookieにkey1=aaa; key2=bbbを設定してキャッシュ作成後Cookieの値を逆にしてどうなるかも検証してみました。

設定したCookie キャッシュ オリジンに渡されたCookie
key2=aaa; key1=aaa Hit -

Forward CookiesをNone (Improves Caching)に設定

Forward Cookies None

Cookieにkey1=aaaを設定してキャッシュ作成後、下記のCookieを設定してアクセスして確認しました。

Cookieの値が削除されたリクエストがオリジンにいきます。最もキャッシュが利用されやすいです。

設定したCookie キャッシュ オリジンに渡されたCookie
key1=aaa Hit -
key1=bbb Hit -
key2=aaa Hit -
key2=bbb Hit -