あまり知られていないがCookieにはPriority属性がある。
Chromeでは2013年に実装が入っている(該当コミット)、また提案仕様「A Retention Priority Attribute for HTTP Cookies」も2016年に提出されているが標準化には至ってない。
ここらへんの議論は当時の"メーリングリスト"を参照してください。
そんなPriority属性は、長年動きが無かったが、最近ChromeがデベロッパーツールでPriority属性を表示するようになった( Chrome Canary 81)。
(JavaScriptからPriority属性を指定して、Cookieを設定した例)
超簡単にだが仕様を紹介する。
Priority Attribute
CookieのPriorityは保持優先度です。ブラウザが保存容量(ドメイン毎)の都合でCookieを消す場合はPriorityの低いCookieから消していきます。
値としては下記の3つです。それ以外の値が指定された場合はMediumとして扱われます。
- High
- Medium
- Low
消す際は、LowとMediumごとにLデータ量・Mデータ量ふるい方から消されていきます。細かいところは実装依存になりそうです。
Priorityが指定された場合の、具体的な削除順番は仕様中の例を参照
https://tools.ietf.org/html/draft-west-cookie-priority-00#section-3.1