會話與 Cookie:用戶登錄的原理淺析

會話與 Cookie:用戶登錄的原理淺析

會話與 Cookie:用戶登錄的原理是什麼?

微博、 百度、天貓是我們每天都會用的網站。它們的共同點在於都需要你登錄進去後才能做進一步的操作。

會話與 Cookie:用戶登錄的原理淺析

那麼登錄的原理是什麼?網站是如何認證的?它怎麼知道是哪個用戶從哪兒登錄進來的?下面我們來對這些問題進行一一解答。

用戶登錄的原理是什麼?

每次你在網站的登錄頁面中輸入用戶名和密碼時,這些信息都會發送到服務器。服務器隨後會將你的密碼與服務器中的密碼進行驗證。如果兩者不匹配,則你會得到一個錯誤密碼的提示。如果兩者匹配,則成功登錄。

登錄時發生了什麼?

登錄後,web 服務器會初始化一個會話session並在你的瀏覽器中設置一個 cookie 變量。該 cookie 變量用於作為新建會話的一個引用。搞暈了?讓我們說的再簡單一點。

會話的原理是什麼?

服務器在用戶名和密碼都正確的情況下會初始化一個會話。會話的定義很複雜,你可以把它理解為“關係的開始”。

會話與 Cookie:用戶登錄的原理淺析

認證通過後,服務器就開始跟你展開一段關係了。由於服務器不能象我們人類一樣看東西,它會在我們的瀏覽器中設置一個 cookie 來將我們的關係從其他人與服務器的關係標識出來。

什麼是 Cookie?

cookie 是網站在你的瀏覽器中存儲的一小段數據。你應該已經見過他們了。

會話與 Cookie:用戶登錄的原理淺析

當你登錄後,服務器為你創建一段關係或者說一個會話,然後將唯一標識這個會話的會話 id 以 cookie 的形式存儲在你的瀏覽器中。

什麼意思?

所有這些東西存在的原因在於識別出你來,這樣當你寫評論或者發推時,服務器能知道是誰在發評論,是誰在發推。

當你登錄後,會產生一個包含會話 id 的 cookie。這樣,這個會話 id 就被賦予了那個輸入正確用戶名和密碼的人了。

會話與 Cookie:用戶登錄的原理淺析

也就是說,會話 id 被賦予給了擁有這個賬戶的人了。之後,所有在網站上產生的行為,服務器都能通過他們的會話 id 來判斷是由誰發起的。

如何讓我保持登錄狀態?

會話有一定的時間限制。這一點與現實生活中不一樣,現實生活中的關係可以在不見面的情況下持續很長一段時間,而會話具有時間限制。你必須要不斷地通過一些動作來告訴服務器你還在線。否則的話,服務器會關掉這個會話,而你會被登出。

會話與 Cookie:用戶登錄的原理淺析

不過在某些網站上可以啟用“保持登錄”功能,這樣服務器會將另一個唯一變量以 cookie 的形式保存到我們的瀏覽器中。這個唯一變量會通過與服務器上的變量進行對比來實現自動登錄。若有人盜取了這個唯一標識(我們稱之為 cookie stealing),他們就能訪問你的賬戶了。


分享到:


相關文章: