瀏覽器發送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的使用

相關文章
相關標籤/搜索