Session跨域
所謂Session跨域就是摒棄了系統(tǒng)(Tomcat)提供的Session,而使用自定義的類似Session的機(jī)制來保存客戶端數(shù)據(jù)的一種解決方案。
如:通過設(shè)置cookie的domain來實(shí)現(xiàn)cookie的跨域傳遞。在cookie中傳遞一個自定義的session_id。這個session_id是客戶端的唯一標(biāo)記。將這個標(biāo)記作為key,將客戶端需要保存的數(shù)據(jù)作為value,在服務(wù)端進(jìn)行保存(數(shù)據(jù)庫保存或NoSQL保存)。這種機(jī)制就是Session的跨域解決。
什么跨域: 客戶端請求的時候,請求的服務(wù)器,不是同一個IP,端口,域名,主機(jī)名的時候,都稱為跨域。
什么是域:在應(yīng)用模型,一個完整的,有獨(dú)立訪問路徑的功能集合稱為一個域。如:百度稱為一個應(yīng)用或系統(tǒng)。百度下有若干的域,如:搜索引擎(www.baidu.com),百度貼吧(tie.baidu.com),百度知道(zhidao.baidu.com),百度地圖(map.baidu.com)等。域信息,有時也稱為多級域名。域的劃分: 以IP,端口,域名,主機(jī)名為標(biāo)準(zhǔn),實(shí)現(xiàn)劃分。
localhost / 127.0.0.1
使用cookie跨域共享,是session跨域的一種解決方案。
jsessionid是和servlet綁定的http session的唯一標(biāo)記。
cookie應(yīng)用 - new Cookie("", "").
request.getCookies() -> cookie[] -> 迭代找到需要使用的cookie
response.addCookie().
cookie.setDomain() - 為cookie設(shè)定有效域范圍。
cookie.setPath() - 為cookie設(shè)定有效URI范圍。
總結(jié)