k-tokitoh

2025-11-15

cookie

ブラウザは cookie をたくさんもっている。

「あるリクエストに cookie が付加されるかどうか」は、以下で判断される。

基本的な条件

domain

リクエストの送信先 domain と、cookie の domain 属性を照合して判断する。

domain とはスキーマやポートを含まない情報(ex. foo.com)である。

path

追加的な条件

⚠️ secure, samesite は、「リクエストの送信において cookie を参照/付加するか」という点だけでなく、そもそも「ブラウザに cookie を保存するか」という点にも影響する。 条件としては同等で読み替えれば解釈可能なので、前者のみを記述する。

secure 属性

リクエストのスキームが https である場合のみ cookie を付加する。

samesite 属性

前提 1

前提 2

あるリクエストの送信元とは以下。

種類

その他

httponly 属性

js からその cookie を read/write できるかということ。

httponly だと js からは write もできず、削除するにはサーバからのレスポンスで以下のいずれかが必要。

chrome devtools での表示

chrome devtools での表示について。 application タブの Storage > Cookie の項目はそれぞれ、オリジン(ex. https://localhost:4200)で表記される。 しかしその内容としては、ブラウザがもつ cookie 全体のうち、その項目に当てはまる domain(ex. localhost)のものを全て表示する。

そのため、例えば以下のようなことが起こる。

補記

個人的なメモという側面が強いことを踏まえて、RFC 等の典拠は最小限に留めています。