浏览器发送cookie规则

1、场景再现

当前一个需求,前端不一样的域名去请求同一个后端域名服务,致使cookie共用相互影响。前端

例子:后端

http://m.test1.com、http://m.test2.com、http://m.test3.com跨域

用户访问以上3个连接时,后端请求访问的服务为同一个:http://meng.test.com缓存

解决方案:cookie

跨域过程当中要尽可能避免多对一的映射,采用一对一的方式。dom

将每个前端域名都对应惟一一个后端服务域,分别映射:工具

http://meng.test1.com、http://meng.test2.com、http://meng.test3.comspa

后续:3d

再解决互斥cookie的问题以后,又出现了传多个同名cookie的状况,如图:server

缘由是因为以前 http://m.test2.com、http://m.test3.com 登陆过的cookie仍旧存在本地,当用户再次请求原后端URL

http://meng.test.com 此时会把不一样前端URL所保留的cookie 一并传给后端。

有一点须要注意,设置了widthCredentials为true的请求中会包含远程域的全部cookie,但这些cookie仍然遵循同源策略,因此你是访问不了这些cookie的。

 

2、Cookie介绍

Cookie是用于维持服务端会话状态的,一般由服务端写入,在后续请求中,供服务端读取。

HTTP请求,Cookie的使用过程:

一、server经过HTTP Response中的"Set-Cookie: header"把cookie发送给client

二、client把cookie经过HTTP Request 中的“Cookie: header”发送给server

三、每次HTTP请求,Cookie都会被发送。

HTTP请求发送Cookies的条件:

一、本地已经缓存有cookies

二、根据请求的URL来匹配cookies的domain、path属性,若是都符合才会发送。

举个例子:访问www.baidu.com时,就不发送www.qq.com的cookies.

Cookies查看:

你们可使用抓包工具,这种工具就很少说,网上搜索出不少。使用这些工具中能够清晰的看到Http Request 中的Cookie, 和Http Response中的cookie

 

参考文献:HTTP请求中cookies的使用

相关文章
相关标签/搜索