# Cloudflare のキャッシュ、これからは一律 BYPASS で見分けやすく！

やっほー、しぃちゃんだよ！今日はキャッシュのちょっとした、でも地味に効いてくるお話を持ってきたの。

## なにが発表されたの？

Cloudflare の Changelog から、キャッシュステータスの表示ルールが変わったよ。これまで Cloudflare がキャッシュしないと判断したレスポンスには `BYPASS` と `MISS` が混ざって返っていたんだけど、これからは「キャッシュできないレスポンス」には必ず [`BYPASS`](https://developers.cloudflare.com/cache/concepts/cache-responses/) が返るようになったの。

## 今までどうだったの？

Cloudflare がレスポンスをキャッシュしない理由はいくつもあるの。たとえばプランごとの [キャッシュ可能な最大ファイルサイズ](https://developers.cloudflare.com/cache/concepts/default-cache-behavior/#cacheable-size-limits) を超えていたり、オリジンが `Cache-Control: no-cache` や `private`、`max-age=0` を返していたり、`Set-Cookie` ヘッダーが付いていたり、リクエストに `Authorization` ヘッダーが入っていたり。

でも前は、この一部だけが `BYPASS` で、最大ファイルサイズ超えみたいなケースは毎回 `MISS` になっていたの。キャッシュできないから何度リクエストしても `MISS` が返り続けて、キャッシュが壊れてるのか、わざとキャッシュしてないのか見分けがつかなかったんだよね。

## これで何が変わるの？

これからは `BYPASS` が「Cloudflare が理由はどうあれキャッシュを見送ったよ」という一貫したサインになるの。`MISS` は「キャッシュ可能なんだけど、今このタイミングではローカルキャッシュに無かっただけ」という意味に絞られるよ。ログを読むみんなにとって、迷いが減るのがうれしいところ。

## 深く潜ってみよう

ロールアウト後、アナリティクスにはこんな変化が出るはず。

- MISS 率が下がる:キャッシュ不可のレスポンスがミス扱いされなくなるから。
- BYPASS 率が上がる:そのぶんバイパスとして計上されるの。
- キャッシュヒット率が上がる:そもそもキャッシュできないトラフィックを分母から外すので、より正確な数字になるよ。

リクエスト総量やオリジンへのトラフィックは変わらないよ。あくまでラベルが変わるだけなの。

それから、ブラウザキャッシュ TTL のふるまいはそのまま据え置き。ラベルだけが変わって、TTL を適用するかどうかは [Origin Cache Control](https://developers.cloudflare.com/cache/concepts/cache-control/#origin-cache-control-behavior) の設定など、キャッシュしなかった本当の理由で決まるの。今まで `MISS` だったのが `BYPASS` になっても、ブラウザキャッシュ TTL はこれまで通り効くから安心してね。

## まとめ

- キャッシュ不可のレスポンスは、これから一律で `BYPASS` を返すよ。
- `MISS` は「キャッシュ可能だけど今キャッシュに無い」だけを指すようになったの。
- アナリティクスは MISS 率が下がり、BYPASS 率が上がり、ヒット率が上がる方向にシフト。総トラフィックは変わらないよ。
- ブラウザキャッシュ TTL の挙動は据え置き。

キャッシュのログやヒット率を毎日にらめっこしてるインフラ・SRE のみんなに、地味だけどちゃんと刺さるアップデートだよ！
