domain
属性
作用
定义 Cookie 的有效域名,浏览器仅在请求该域名或其子域名时发送 Cookie。
语法
http
ini
Set-Cookie: cookieName=cookieValue; Domain=example.com
规则
- 默认值 :若未指定
Domain
,Cookie 仅在当前域名下有效。 - 子域名继承 :设置
Domain=example.com
后,所有子域名(如www.example.com
、mail.example.com
)均可访问该 Cookie。 - 跨域限制 :不能设置为其他网站的域名(如
Domain=google.com
无效)。
典型场景
- 多子域名共享用户信息 :如主站
example.com
和子站blog.example.com
共享用户登录状态。 - 单点登录(SSO) :多个子系统通过相同
Domain
的 Cookie 实现统一认证。
2. path
属性
作用
定义 Cookie 的有效 URL 路径,浏览器仅在请求路径匹配时发送 Cookie。
语法
http
ini
Set-Cookie: cookieName=cookieValue; Path=/admin
规则
- 路径匹配 :路径需完全匹配或为父路径。例如,
Path=/admin
时,/admin
和/admin/settings
路径会携带 Cookie,但/user
路径不会。 - 默认值 :若未指定
Path
,默认使用当前页面的路径。 - 路径优先级:同名 Cookie 中,路径更具体的优先级更高。
典型场景
- 限制管理后台 Cookie :将管理后台的敏感 Cookie 设置为
Path=/admin
,避免普通页面泄露。 - 分离功能模块 :不同业务模块(如
/api
和/web
)使用独立的 Cookie 路径。
3. 组合使用
示例配置 | 有效范围 |
---|---|
Domain=example.com; Path=/ |
所有子域名的所有路径 |
Domain=example.com; Path=/pay |
*.example.com/pay 及子路径 |
Domain=www.example.com; Path=/ |
仅www.example.com 的所有路径 |
4. 注意事项
- 安全性 :避免设置过大的
Domain
或Path
(如Domain=.com
),防止 Cookie 被其他网站滥用。 - 跨域问题 :若前端与后端部署在不同子域名,需通过
Domain
配置共享 Cookie。 - 与
SameSite
的协同 :SameSite
控制跨站请求是否携带 Cookie,而domain
和path
控制同一站的不同子域名 / 路径的可见性。
5. 最佳实践
-
最小化作用域:仅将 Cookie 暴露给必要的域名和路径。
-
敏感 Cookie 的隔离 :如管理后台的 Cookie 设置
Path=/admin
,并配合Secure
和HttpOnly
。 -
跨子域名共享 :通过
Domain
配置实现单点登录,但需谨慎评估风险。