httpservletrequest 添加跨域cookie

本文详细阐述了在不同域名间设置共享cookie的方法,并通过实例解释了如何正确配置以实现跨域共享。包括理解cookie作用域规则、设置父级域名及路径等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天需要在用户登录后添加别的域的cookie,然后网上搜了一下,发现大多数写的都是一样,但是我测试就是不行。由于自己对cookie也不了解,所以只能接着看,然后发现了自己的cookie生成不了的原因。

下面的是我自己贴过来备用的, 原文地址请看[url]http://www.vinceruan.info/front/cross-domain-process-cookie-session/[/url]
看一下前面跨域共享cookie的介绍就行。我的设置不了的原因就是如下面所说:在blog.vinceruan.info域下面设置www.vinceruan.info下面的cookie,然后就生成不了,解决办法是将cookie设置到.vinceruan.info下面 .是一定要加的 去掉成功与否没测试过

浏览器提交的cookie需要满足以下两点:
1.当前域名或者父域名下的cookie
而且
2.当前路径或父路径下的cookie
要满足以上两个条件的cookie才会被提交.
有4个cookie:
cookie1:[name=value, domain=.vinceruan.info path=/]
cookie2:[name=value, domain=blog.vinceruan.info path=/java/]
cookie3:[name=value, domain=www.vinceruan.info path=/]
cookie4:[name=value, domain=blog.vinceruan.info path=/]
当我访问blog.vinceruan.info时,
cookie1可以被提交,因为.vinceruan.info是blog.vinceruan.info的父域名. path路径也一致.
cookie2不能被提交,因为虽然domain是保持一致的,但是path不一致,当前访问的是/, 但是cookie2的path是/java/
cookie3不能被提交,因为虽然path是一致的,但是www.vinceruan.info不是blog.vinceruan.info的父域名.
cookie4可以被提交,因为domain和cookie都严格保持一致.

这里需要注意的是, 在浏览器看来.www.vinceruan.info不是blog.vinceruan.info的父域名,而vinceruan.info才是blog.vinceruan.info的父域名,www.vinceruan.info也算是一个二级域名(这点如果你提交过域名到DNS服务器商的应该会知道,一般我们需要显式提交www.vinceruan.info和vinceruan.info, 否则www.vinceruan.info==vinceruan.info是不成立的).
所以如果我们需要在所有二级域名下共享islogin=1的cookie,用java代码如下:
Cookie c = new Cookie("islogin","1");
c.setDomain(".vinceruan.info");//注意是以点号开头的.
c.setPath=("/");
response.addCookie(c);

如果要在所有的二级域名下的/java/路径下共享silogin=1的cookie,用java代码如下:
Cookie c = new Cookie("islogin","1");
c.setDomain(".vinceruan.info");//注意是以点号开头的.
c.setPath=("/java/");
response.addCookie(c);

ok, 跨域共享cookie就完成了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值