{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

PHP與NodeJS如何共用Session?

dreamGongdreamGong 回答1 收藏1
收藏問題

1條回答

dongxiawu

dongxiawu

回答于2022-06-22 19:22

隨著項目的發展,技術架構方案也是會慢慢演變的。比如說淘寶最早期是由單純的PHP開發的站點,到現在單一架構模式已滿足不了其發展需要,于是乎演變成了異構模式(即:多種技術的混合架構模式)。

現在市面上的開發語言眾多,同一個產品線的多個子項目采用不同的編程語言開發也是很常見的。但對于不同語言開發的站點默認情況下Session是無法共用的,那么在異構模式下如何實現Session互通呢?下面給大家具體分析一下。

Session運行原理

要想弄清楚不同語言間的Session互通問題,我們就要先了解Session的實現機制原理是什么。

大家都知道,HTTP協議本身是無狀態的,客戶端每次發出的請求在服務器端看來都是獨立的,服務器端也無法得知哪些請求是同一個用戶發出的。在這種機制下,有些需要狀態保持的場景(如登錄)就存在一些問題,于是就有了Cookie和Session。

舉個例子來幫助大家理解一下:

因為HTTP協議無狀態的特性,如果服務器端要辨識用戶請求就需要給用戶發一個“通行證”,拿到通行證的用戶每次請求服務器時都會把這個通行證帶上,這樣一來服務器就知道拿著這個通行證的用戶發出了哪些請求。那服務器是不是看到用戶的“通行證”就直接放行呢?自然不是,對于某些操作,服務器端也要驗證用戶的“通行證”是否和服務器端存儲的“用戶檔案”對得上。在這里,服務器端存儲的用戶檔案就是Session,檔案上的用戶唯一編號就是SessionID,用戶的唯一編號也會作為用戶“通行證”的一部分發放給用戶存儲(存儲在瀏覽器Cookie中)。

總結來說,Cookie是為了解決HTTP協議無狀態的缺陷而推出的,而Session是一種在客戶端和服務器端保持狀態的解決方案

PHP與Node.js如何實現Session共用?

在這種異構模式下要實現Session共用,那就需要保證各自的SessionID是共用的,所以我給的解決方案如下:

1、PHP與Node.js客戶端要保證存儲SessionID的Cookie Name一致,如果Cookie的名稱不統一也沒關系,但要保證對于同一個客戶的SessionID要一致

2、服務器端的Session要集中到一處管理,這樣PHP和Node.js都能獲取到Session。比如說可以把Session存儲在數據庫中或者Redis中。

3、如果給Cookie作了加密,那要保證PHP與Node.js兩端的加解密規則一致。

以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我了解更多科技知識!

評論0 贊同0
  •  加載中...

相關問題

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<