網(wǎng)站建設(shè)制作設(shè)計(jì)營(yíng)銷公司四川/寧波seo網(wǎng)絡(luò)推廣優(yōu)質(zhì)團(tuán)隊(duì)
在http訪問請(qǐng)求中,web服務(wù)器會(huì)自動(dòng)為同一個(gè)瀏覽器的訪問用戶自動(dòng)創(chuàng)建唯一的session,提供數(shù)據(jù)存儲(chǔ)功能。最常見的,會(huì)把用戶的登錄信息、用戶信息存儲(chǔ)在session中,以保持登錄狀態(tài)。
只要用戶不重啟瀏覽器,每次http短連接請(qǐng)求,理論上服務(wù)端都能定位到session,保持會(huì)話。
當(dāng)只有一臺(tái)web服務(wù)器提供服務(wù)時(shí),每次http短連接請(qǐng)求,都能夠正確路由到存儲(chǔ)session的對(duì)應(yīng)web服務(wù)器。
多臺(tái)web服務(wù)器來保證高可用時(shí),每次http短連接請(qǐng)求就不一定能路由到正確的session了。假設(shè)用戶包含登錄信息的session記錄在第一臺(tái)web服務(wù)器上,而反向代理將之后的請(qǐng)求路由到另一臺(tái)web服務(wù)器上了,這樣就找不到已登錄的session相關(guān)信息,而導(dǎo)致用戶需要重新登錄。
可以用以下幾種方法處理:
1、session同步法
多個(gè)web服務(wù)器之間相互同步session,這樣每個(gè)web服務(wù)器之間都包含全部的session。
問題:session的同步需要數(shù)據(jù)傳輸,占內(nèi)網(wǎng)帶寬,有時(shí)延
2、客戶端存儲(chǔ)法
服務(wù)端存儲(chǔ)所有用戶的session,內(nèi)存占用較大,可以將session存儲(chǔ)到瀏覽器cookie中,每個(gè)端只要存儲(chǔ)一個(gè)用戶的數(shù)據(jù)了。
問題:數(shù)據(jù)存儲(chǔ)在端上,并在網(wǎng)絡(luò)傳輸,存在泄漏、篡改、竊取等安全隱患
3、反向代理hash一致性
反向代理層使用用戶ip來做hash,以保證同一個(gè)ip的請(qǐng)求落在同一個(gè)web服務(wù)器上。
4、后端統(tǒng)一存儲(chǔ)
采用redis、memcache、mysql統(tǒng)一存儲(chǔ)session.