Cookie的setPath(),和setDomain()方法

“Cookies是一个很少的信息片段,可以自动地在浏览器与Web服务器间进行交互,因此Cookie可存储在多个页面间传递的信息”

正常的Cookie只能在一个应用中访问,即cookie只能由创建他的应用访问要实现跨应用访问cookie或者跨域访问cookie就得使用到cookie的setPath()和setDomain()方法。

1.同一服务器内的cookie共享方法:setPath()
eg:本机的tomcat/webapp下面有俩个应用webapp_a和webapp_b
1)webapp_a应用下设置的cookie,在webapp_b应用中是访问不到的,因为webapp_a的cookie默认的应用路径是webapp_a。
2)如果在webapp_a设置cookie时增加一条setPath(“/webapp_b/”)就能够在webapp_b中获取到webapp_a中所设置的cookie了。
3)要注意的是:在webapp_a的cookie中设置了setPath(“/webapp_b/”),虽然是webapp_a应用产生的cookie但是作用路径是webapp_b,则webapp_a就不能获取cookie,只有webapp_b才能获取。
4)推而广之,如果在webapp_a设置cookie时增加一条setPath(“/”),即能实现webapp_a设置的cookie在webapp这个根目录下的共享。
5)ps:”/”指的是相对路径,本例中即是应用部署路径,tomcat/webapp。
6)以此类推,增加了setPath(“/webapp_b/jsp”)语句后,cookie只能在webapp_b/jsp目录下获取,同在webapp_b文件夹下的其他文件则不能获取。
7)某应用下设置cookie路径时,同时有多条setPath(“XXX”)语句时,最后一条语句才起作用。

2.跨域共享cookie的方法:setDomain()
eg:A机器所在域为:www.lizhiyu.com,有应用webapp_c
B机器所在域为: csdn.com,有应用webapp_d
1)在webapp_c设置cookie时,增加一条setDomain(“.csdn.com”),这样以后,在webapp_d下就能够取到webapp_c所产生的cookie了,同理,这样做了webapp_c就不能获取到他自己所产生的cookie了。
2)setDomain(“.xxx.xx”),这个方法必须以“.”开头。
3)输入url访问webapp_d时,必须url和在webapp_c中设置的url相同才能获取cookie。例如:在A机器上面输入url: http://csdn.com:8080/webapp_d,能够获取到webapp_c产生的cookie,但是在B机本地测试时候,输入url: http://localhost:8080/webapp_d,就不可以获取到cookie。
4) 设置了setDomain(“.csdn.com”)的cookie,在原来默认域下”www.lizhiyu.com”下共享。

问题两个:
?如何设置能够让A机器的www.lizhiyu.com和B 机器的csdn.com以及更多的域都能获取到www.lizhiyu.com所产生d的cookie?
?如何设置一个cookie,多条指定路径的方法还不清楚。?

以上就是我学习cookie所做的一些总结,学了的东西过了脑袋,再写篇博客整理思路,这样的方法还是能有效降低遗忘率。还剩下两个问题没有解决,希望有前辈指点一二。

你可能感兴趣的:(后端开发)