type
Post
status
Published
date
Jul 19, 2025
slug
cookie-nodejs-browser
summary
本文介绍作者在开发中关于浏览器和 Nodejs 中 cookie 解析顺序规则的一些探索
tags
开发
前端
category
技术分享
icon
password

一、浏览器

RFC 6265: HTTP State Management Mechanism
document.cookie 会返回当前页面中的cookie信息,根据 RFC 6265 中第二点提到的 cookie的顺序问题:
所以总结下来:
  1. 路径更长的 Cookie 会排在路径短的 Cookie 前面。
  1. 如果 Cookie 的路径长度一样,那么创建时间更早的 Cookie 会排在创建时间晚的 Cookie 前面。
但是存在一些异常情况,包括在标准中也提到了:不是所有浏览器都按这个顺序排列 cookie 列表,但写这份文档的时候,这种顺序是比较常见的做法。而且,以前有些服务器(错误地)依赖于这个顺序。

二、nodeJS解析COOKIE

nodejs中,以express为例,使用 cookie(https://www.npmjs.com/package/cookie) 作为cookie的底层解析工具,针对同名cookie仅第一次进行赋值, 如果req.headers.cookie如下:

解析后的cookie为

参考一中浏览器的cookie策略,当浏览器中存在同名cookie时,node解析到的一定是 currentTime - lastModifyTime 最大的值
 
三、
todo cookie解析策略在java中的表现
 
参考文档: