對於很多使用者而言,分不清什麼是會話,在日常使用流覽器上網的過程中,很多使用者會發現使用同一個瀏覽器開啟多個Tab標籤頁後,絕大多數只能登入一個帳號(使用一個會話,後登入的使用者資訊會覆蓋之前的登入資訊),這是為什麼呢?其實這種表現是因為會話機制導致的。
我們說的網站都是透過HTTP協議或者HTTPS協議進行訪問的,要知道,HTTP協議本身是無狀態的協議,說得通俗點就是伺服器端是無法辨別多個請求中哪些是來源於同一個使用者發出的。為了解決這個問題,就有了會話保持機制,也就是Cookie和Session。
對於Cookie和Session的區別,很多人都知道。Cookie是儲存在客戶端的,而Session是儲存在伺服器端的。但是對於兩者的聯絡很多有四五年開發經驗的開發人員也未必知道。Session雖說是儲存在伺服器端的,但是它的唯一識別符號(即:SessionID)是儲存在Cookie中的(伺服器端要根據客戶端傳遞過來的SessionID然後找到對應的Session),如果Cookie中的SessionID變了,那會話狀態自然也就跟著改變了。
而我們每次登入操作生成的會話,伺服器端的SessionID都會重新寫入客戶端Cookie中,原來的SessionID會被覆蓋。
弄清楚會話保持機制的原理,那我們透過技術手段就可以使同一個瀏覽器支援多個使用者同時登入使用了。大概實現思路就是:客戶端的Cookie中儲存多個伺服器端的SessionID,然後伺服器端在獲取到客戶端傳遞過來的SessionID集合時進行拆分,找到各自對應的Session即可。
但我們並不建議這樣做,因為這樣會讓會話變得複雜,而且存在一定的安全性。
對於很多使用者而言,分不清什麼是會話,在日常使用流覽器上網的過程中,很多使用者會發現使用同一個瀏覽器開啟多個Tab標籤頁後,絕大多數只能登入一個帳號(使用一個會話,後登入的使用者資訊會覆蓋之前的登入資訊),這是為什麼呢?其實這種表現是因為會話機制導致的。
網站會話機制原理我們說的網站都是透過HTTP協議或者HTTPS協議進行訪問的,要知道,HTTP協議本身是無狀態的協議,說得通俗點就是伺服器端是無法辨別多個請求中哪些是來源於同一個使用者發出的。為了解決這個問題,就有了會話保持機制,也就是Cookie和Session。
對於Cookie和Session的區別,很多人都知道。Cookie是儲存在客戶端的,而Session是儲存在伺服器端的。但是對於兩者的聯絡很多有四五年開發經驗的開發人員也未必知道。Session雖說是儲存在伺服器端的,但是它的唯一識別符號(即:SessionID)是儲存在Cookie中的(伺服器端要根據客戶端傳遞過來的SessionID然後找到對應的Session),如果Cookie中的SessionID變了,那會話狀態自然也就跟著改變了。
而我們每次登入操作生成的會話,伺服器端的SessionID都會重新寫入客戶端Cookie中,原來的SessionID會被覆蓋。
同瀏覽器如何允許多使用者登入?弄清楚會話保持機制的原理,那我們透過技術手段就可以使同一個瀏覽器支援多個使用者同時登入使用了。大概實現思路就是:客戶端的Cookie中儲存多個伺服器端的SessionID,然後伺服器端在獲取到客戶端傳遞過來的SessionID集合時進行拆分,找到各自對應的Session即可。
但我們並不建議這樣做,因為這樣會讓會話變得複雜,而且存在一定的安全性。