多子域名指向同一网站时,Cookie是否可跨多个子域共享?
默认情况下Cookie会与设置时的精确子域名绑定,你在子域名A(比如a.example.com)下设置的Cookie,默认是无法在子域名C(比如c.example.com)下读取的。
如果你需要让多个同根域名的子域名共享同一份Cookie,可以在设置Cookie的时候主动指定Domain属性为根域名,示例配置如下:
Set-Cookie: key=value; Domain=example.com; Path=/
按上述方式设置后,所有属于example.com的子域名都可以正常读取该Cookie。
注意事项
- 该规则仅支持同根域名下的子域名共享,无法跨不同根域名生效,比如你在
a.site1.com下设置Cookie指定Domain=site2.com会被浏览器直接拒绝 - 现代浏览器中
Domain=.example.com和Domain=example.com效果完全一致,都会匹配所有子域名,仅部分旧版IE浏览器需要加前缀点 - 如果设置Cookie时不主动指定
Domain属性,浏览器会默认绑定当前精确子域名,完全隔离其他子域名的访问 - 路径也会影响Cookie的访问范围,如果设置时指定了
Path=/admin,则只有同域名下/admin路径下的页面可以访问该Cookie,全路径共享请设置Path=/
如果你的需求是让不同子域名的Cookie完全隔离,只需要在设置Cookie时不要主动填写Domain属性即可,浏览器会自动做好子域名层面的Cookie隔离。
内容的提问来源于stack exchange,提问作者birdemic
相关产品推荐
相关产品推荐

