Http Cookie 测试 Domain & Path
来源:互联网 发布:java和php做网站 编辑:程序博客网 时间:2024/06/16 04:55
参考:
http://blog.csdn.net/lijing198997/article/details/9378047
http://stackoverflow.com/questions/1062963/how-do-browser-cookie-domains-work
Domain and Path
作用:定义Cookie的生效作用域,只有当域名和路径同时满足的时候,浏览器才会将Cookie发送给Server。如果没有设置Domain和Path的话,他们会被默认为当前请求页面对应值。
Cookie with Domain=.example.com will be available for www.example.com
Cookie with Domain=.example.com will be available for example.com
Cookie with Domain=example.com will be converted to .example.com and thus will also be available for www.example.com
Cookie with Domain=example.com will not be available for anotherexample.com
跨域的请求是无法设置cookie的。 ()
Example:
Tomcat Java Web App通过服务端来设置浏览器cookie
服务端在请求的返回中向客户端的浏览器添加cookie。
示例的服务的context path 为/bee
@RequestMapping(value = "/cookietest", headers = "Accept=image/**", method = RequestMethod.GET)public ResponseEntity<?> cookieTest(final HttpServletRequest request,HttpServletResponse response) { Cookie cookie1 = new Cookie("cookie-1",UUID.randomUUID().toString()); cookie1.setDomain("diaoyouyun.com"); cookie1.setPath("/"); response.addCookie(cookie1); Cookie cookie2 = new Cookie("cookie2","Cookie2"); cookie2.setDomain("www.diaoyouyun.com"); cookie2.setPath("/bee/collect"); response.addCookie(cookie2); Cookie cookie3 = new Cookie("cookie3","cookie3"); cookie3.setDomain("www.example.com"); response.addCookie(cookie3); Cookie cookie4 = new Cookie("cookie4","cookie4"); response.addCookie(cookie4); return ok();}
测试一
请求 http://diaoyouyun.com/bee/cookietest 如下:
那些cookie会被接受呢?访问http://diaoyouyun.com/bee 从下图可以看出
访问http://www.diaoyouyun.com/bee/来查看有哪些cookie
关于Java Tomcat 服务端Set-Cookie: 可以得出以下结论:
- 不显示地设置domain,浏览器接受去当年请求的domain,但是前面不加点(.)。即:如果当前请求domain是example.com,那么这个cookie就不能被www.example.com 或者其他***.example.com访问到.
- 显示设置domain,只有设置正确的情况,cookie才会被浏览器接受
测试二
测试前清空相关站点的cookie
通过请求:http://www.diaoyouyun.com/bee/cookietest 来设置cookie
访问http://www.diaoyouyun.com/bee/
发现还是只有cookie-1和cookie4, 但是其实cookie2 也被浏览器接受了,只是cookie2 设置的path是/bee/collect 所以基于当前访问路径(http://www.diaoyouyun.com/bee/)chrome的开放工具中无法查看到cookie2。通过查看浏览器上所有站点cookie内容,可以在www.diaoyouyun.com 中找到cookie2。 (反思:**测试一的 cookie2 是否真的未被接受?)
访问http://diaoyouyun.com/bee/ 查看cookie发现只有cookie-1。(cookie4是子域名下的)
测试三 cookie2 在测试一是否真的未设置成功
cookie2 是path导致的无法查看到? 将path修改后再次走一遍测试一
cookie2.setPath("/");
经过验证,cookies2未设置成功
测试四 跨域请求无法设置cookie
以下请求是无法设置cookie的
上面的请求cookie1 2 3 4 都无法设置成功。
如果在浏览器直接访问http://api/diaoyouyun.com/bee/cookietest cookie1 和cookie4 可以添加成功
总结
- 子域名请求可以设置父域名下cookie。即:www.diaoyouyun.com的请求可以设置cookie (domain=diaoyouyun.com,所有diaoyouyun.com及其子域名下site都能查看)
- 父级域名的请求不能设置子域名的cookie。 即:http://diaoyouyun.com/** 的请求无法设置cookie(domain=www.diaoyouyun.com)。 简化记忆可以理解为,有子肯定存在父,反过来就不成立了。
- 跨域的请求是无法成功设置cookie的。
- Http Cookie 测试 Domain & Path
- cookie 的 path 和 domain
- cookie 的 path 和 domain
- cookie 的 path 和 domain
- 关于Cookie中的Path和domain
- 关于Cookie中的Path和domain
- 关于Cookie中的Path和domain
- 关于Cookie中的Path和domain
- cookie的path和domain属性解析
- 理解cookie的path和domain属性
- 理解cookie的path和domain属性
- cookie中的path与domain属性详解
- 理解cookie的path和domain属性
- 浅析Cookie中的Path与domain(转)
- cookie标识: name-domain-path-secureFlag
- 关于Cookie中的Path和domain
- 关于Cookie中的Path和domain
- cookie中domain和path的解释
- AccessibilityService(无障碍服务)小结
- Nand Flash analyse
- 如何使用markdown编辑器
- LeetCode Summary Graph
- 5种网络 I/O 模型[转载]
- Http Cookie 测试 Domain & Path
- Java基础-17总结,登录注册案例,Set集合,HashSet,TreeSet,LinkHashSet
- 三家人
- JavaEE struts2的异常处理
- Bzoj4352 Tower
- openGL ES渲染管线和渲染过程
- 禁播电源
- 第36篇 一对多自由控制语音(十六)及创建新的端口及PHP 实例- AJAX 与 XML
- Java--位运算;两数据交换