跨域和session共享

2021-08-28 23:33:16 字數 954 閱讀 7885

負載均衡:主要是將大量的併發請求按照一定的規律分發給不同的伺服器處理,減少某台伺服器的瞬間壓力

分配演算法:輪詢,權重,ip雜湊演算法

跨域:是指a頁面想獲取b頁面資源,如果a、b頁面的協議、網域名稱、埠、子網域名稱不同,所進行的訪問行動都是跨域的,而瀏覽器為了安全問題一般都限制了跨域訪問,也就是不允許跨域請求資源。注意:跨域限制訪問,其實是瀏覽器的限制。

跨域問題:

1. jsonp可以解決

2. cors設定access-control-allow-origin頭

3. nginx解決,搭建乙個中轉nginx伺服器,用於**請求

如何實現session共享

1. session共享(主要同時使用redis和cookies):redis的方案是,重寫伺服器中的httpsession和httpservletrequest,首先實現httpsession介面,重寫session的所有方法,將session以hash值的方式存在redis中,乙個session的key就是sessionid,setatrribute重寫之後就是更新redis中的資料,getattribute重寫之後就是獲取redis中的資料,等等需要將httpsession的介面一一實現;

在filter中將伺服器原生的request(也有可能是框架封裝過的request),當做引數new出來乙個myrequest,並且myrequest也實現了httpservletrequest介面,其實就是對原生request的乙個增強,主要重寫了幾個request的方法,但是最重要的是重寫了request.getsession(),為了獲取mysession,於是這樣就在filter中,偷偷的將原生的request換成myrequest了,然後再將替換過的request傳入chan.dofilter(),這樣filter時候的**都使用的是myrequest了。

2. 粘性session:ngnix每次都將同一使用者的所有請求**至同一臺伺服器上,即將使用者與伺服器繫結(ip雜湊演算法)

跨域共享cookie和跨域共享session

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

Session跨域問題

session主要分兩部分 乙個是session資料,該資料預設情況下是存放在伺服器的tmp檔案下的,是以檔案形式存在,而非儲存在伺服器的記憶體中 另乙個是標誌著session資料的session id,session id,就是那個 session 檔案的檔名,session id 是隨機生成的,...

SESSION 跨伺服器共享session

首先,建立儲存session的表sessions createtablesessions sidchar 32 notnull,expiryint 11 unsignednotnull,valuetextnotnull,primarykey sid 註冊session的頁面session reg.p...