一个 Cookie 相关的问题

来源:互联网 发布:网络名誉侵权起诉状 编辑:程序博客网 时间:2024/05/21 14:52

  近来,在做项目的时候遇到了一个与 Cookie 有关的问题。

  情形是这样的:

1.  客户端访问后台的一个接口,假设是 A/B/C;

2.  后台对 cookie 设置了 Set-cookie ,假设名称是 token ;

3.  客户端得到返回后,访问了后台的另一个接口,假设是 D/B/E 。

  问题出现在第三步,在我的预期中,客户端访问接口 D/B/E 时,应该会带上第二步的 cookie ,也就是 token 。

  但是,抓取数据后发现并没有带上 token 。


  资料:

Set-Cookie 由服务器发送,它包含在响应请求的头部中。它用于在客户端创建一个 Cookie。

Cookie 头由客户端发送,包含在 HTTP 请求的头部中。

注意,只有 cookie 的 domain 和 path 与请求的 URL 匹配才会发送这个 cookie。



  问题到现在就比较明朗了,有可能是请求的path 不匹配。

  访问接口 D/B/E 时,没有带上 token 。

  但是,后台在 Set-Cookie 时,没有显示指定它的 path ,默认是如何操作的,只有做一下实验了。

  于是,我把第三步的接口改成了 A/B/E ,再次按步骤走了一遍。

  这次,在第三步的请求中,带上了 token 。这说明问题的原因是与 path 有关的。


  资料:

如果Path属性的值为“/”,那么该域名下的所有 URL 请求都会带上该 Cookie;

该项设置是可选的,如果缺省时,Path 的属性值为 Web 服务器传给浏览器的资源的路径名。

  

  在第一步由于没有指定 path ,所以默认把 path 设置成了 A/B/ ,只有当 URL 匹配 A/B/ 时,才会带上 token 。

  问题也就找到原因了。

0 0
原创粉丝点击