cookie共享于二级域名

来源:互联网 发布:cube escape 知乎 编辑:程序博客网 时间:2024/04/30 02:29


cookie

纠结了半天,终于搞定了cookie在主域名下各个二级域名可共享问题.

 

对于任何web 前端技术,都可以对创建cookie并且可以修改同域下cookie的数据.

一个cookie是一个K-V的字符串,同时可以传递一些属性.

 

Java代码  收藏代码
  1. Cookie cookie = new Cookie("key","value");  
  2. cookie.setMaxAge(-1);  
  3. cookie.setDomain("abc.com");  
  4. cookie.setSecure(false);  
  5. cookie.setPath("/")  

 

一个cookie如上4个重要的属性:

1)maxAge:cookie被客户端保持的时间,单位为(秒),正数表示在指定的秒数后过期被客户端删除,0表示删除此cookie(置空),负数则表示此cookie不会被客户端存储,将在浏览器关闭后清除.

2)domain:cookie可被有效操作的域,可以为ip/hostname等,不过需要声明:*.abc.com,.abc.com,abc.com这三种方式会有区别,客户端会做简单的匹配.多数情况下直接使用abc.com可以接受多级子域名.只有正确匹配domain的cookie才会被发送给server.

3)secure:是否只允许安全加密url访问,默认为false,如果为true,那么cookie只对https/SSL等加密连接才会发送给server.

4)path:cookie对domain何路径下访问有效,"/"表示domain下根目录中所有请求有效,"/open"表示只对domain/open目录下请求有效,如果此path忘记设置,你将遇到一个很尴尬的问题:明明在其他页面设置了cookie输出,但是换个页面却死活不行..

 

domain和path是决定可跨域的2个参数.

对于domain,"abc.com"则可以在abc.com主域名之下的多级子域名有效,".abc.com"只能在二级域名以及"www.abc.com"下有效,其实客户端只是做了简单的匹配..你可以在此基础上做更多的分级控制..

path是个有参考意义的属性,对于部分路径下开放访问的系统有意义,比如:abc.com/open下的程序和登录是开放给特殊开发者接入的,这里的数据活着cookie需要做一些另类的处理..

0 0