CookieのPriority属性の仕様

あまり知られていないがCookieにはPriority属性がある。

Chromeでは2013年に実装が入っている(該当コミット)、また提案仕様「A Retention Priority Attribute for HTTP Cookies」も2016年に提出されているが標準化には至ってない。

ここらへんの議論は当時の"メーリングリスト"を参照してください。

そんなPriority属性は、長年動きが無かったが、最近ChromeデベロッパーツールでPriority属性を表示するようになった( Chrome Canary 81)。
(JavaScriptからPriority属性を指定して、Cookieを設定した例)
f:id:ASnoKaze:20191219011406p:plain

超簡単にだが仕様を紹介する。

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