cookie跨域共享的實現方案

2021-10-08 10:54:50 字數 1209 閱讀 1230

由於工作需要,花費了較多的時間處理跨域的問題,未避免遺忘,特此記錄。

第一種:協議不同

第二種:網域名稱不同

第三種:埠不同;

首先,跨域(cors)需要瀏覽器和伺服器同時支援;

其次,跨域的安全性,由瀏覽器全權負責

最後,跨域通訊如果需要帶cookie,需要雙方都同意;

基於springmvc的後台,在webmvchandleradapter設定cors放行;  實現方式可以用註解對單個請求處理,或者全域性配置的方式;

其它伺服器容器,在返回頭中設定 access-control-allow-origin: *  ;

本質也就是在響應頭裡面設定 access-control-allow-origin: * 字段;

1.預設情況下,某個源只能在當前域或者當前域的父級寫入cookie(同級與子級都不行);

比如, one.automannn.cn 可以 往 one.automannn.cn  和  automannn.cn寫入cookie記錄;

two.automannn.cn 可以讀取到  two.automannn.cn  和  automannn.cn 的cookie記錄;

因此,第一種共享方案: 通過**,將不同的關聯系統 設定成 父子域;(不適用於動態接入系統,以及 系統太多的情況,且耦合度很高);   (即,通過後台登陸其它系統的方式,進行瀏覽器共享;)

第二種共享方案: 通過瀏覽器+伺服器的方式,由於天生符合cors協議的要求,所以可以實現  類似於cookie共享(即需要將cookie儲存在不同的域下)的功能;

此外,同名的cookie不一定相互排斥,即某乙個請求可能包括多個jsessionid;cooke的唯一性還需要由 domain,path共同確定;

總結一下跨域的幾種情況

跨域資源共享 cors 詳解   -------->跨域必看文章

實現跨域cookie共享

cookie有三個屬性需要注意一下 1.domain 域 2.path 路徑 3.expires 過期時間 跨域操作需要設定域屬性 response.cookies mycookie domain cnblogs.com 這裡指的是泛網域名稱 這樣在其它二級網域名稱下就都可以訪問到了,asp 和 a...

跨域共享Cookie

cookie有三個屬性需要注意一下 1.domain 域 2.path 路徑 3.expires 過期時間 跨域操作需要設定域屬性 response.cookies mycookie domain cnblogs.com 這裡指的是泛網域名稱 這樣在其它二級網域名稱下就都可以訪問到了,asp 和 a...

跨域共享cookie和跨域共享session

的父網域名稱.cookie4可以被提交,因為domain和cookie都嚴格保持一致.這裡需要注意的是,在瀏覽器看來.www.vinceruan.info不是blog.vinceruan.info 的父網域名稱,而vinceruan.info才是blog.vinceruan.info的父網域名稱,w...