會話與 Cookie:使用者登入的原理是什麼?
Facebook、 Gmail、 Twitter 是我們每天都會用的網站(LCTT 譯註:才不是呢)。它們的共同點在於都需要你登入進去後才能做進一步的操作。只有你通過認證並登入後才能在 twitter 發推,在 Facebook 上評論,以及在 Gmail上處理電子郵件。
那麼登入的原理是什麼?網站是如何認證的?它怎麼知道是哪個使用者從哪兒登入進來的?下面我們來對這些問題進行一一解答。
使用者登入的原理是什麼?
每次你在網站的登入頁面中輸入使用者名稱和密碼時,這些資訊都會傳送到伺服器。伺服器隨後會將你的密碼與伺服器中的密碼進行驗證。如果兩者不匹配,則你會得到一個錯誤密碼的提示。如果兩者匹配,則成功登入。
登入時發生了什麼?
登入後,web 伺服器會初始化一個會話並在你的瀏覽器中設定一個 cookie 變數。該 cookie 變數用於作為新建會話的一個引用。搞暈了?讓我們說的再簡單一點。
會話的原理是什麼?
伺服器在使用者名稱和密碼都正確的情況下會初始化一個會話。會話的定義很複雜,你可以把它理解為“關係的開始”。
認證通過後,伺服器就開始跟你展開一段關係了。由於伺服器不能象我們人類一樣看東西,它會在我們的瀏覽器中設定一個 cookie 來將我們的關係從其他人與伺服器的關係標識出來。
什麼是 Cookie?
cookie 是網站在你的瀏覽器中儲存的一小段資料。你應該已經見過他們了。
當你登入後,伺服器為你建立一段關係或者說一個會話,然後將唯一標識這個會話的會話 id 以 cookie 的形式儲存在你的瀏覽器中。
什麼意思?
所有這些東西存在的原因在於識別出你來,這樣當你寫評論或者發推時,伺服器能知道是誰在發評論,是誰在發推。
當你登入後,會產生一個包含會話 id 的 cookie。這樣,這個會話 id 就被賦予了那個輸入正確使用者名稱和密碼的人了。
也就是說,會話 id 被賦予給了擁有這個賬戶的人了。之後,所有在網站上產生的行為,伺服器都能通過他們的會話 id 來判斷是由誰發起的。
如何讓我保持登入狀態?
會話有一定的時間限制。這一點與現實生活中不一樣,現實生活中的關係可以在不見面的情況下持續很長一段時間,而會話具有時間限制。你必須要不斷地通過一些動作來告訴伺服器你還線上。否則的話,伺服器會關掉這個會話,而你會被登出。
不過在某些網站上可以啟用“保持登入”功能,這樣伺服器會將另一個唯一變數以 cookie 的形式儲存到我們的瀏覽器中。這個唯一變數會通過與伺服器上的變數進行對比來實現自動登入。若有人盜取了這個唯一標識(我們稱之為 cookie stealing),他們就能訪問你的賬戶了。
結論
我們討論了登入系統的工作原理以及網站是如何進行認證的。我們還學到了什麼是會話和 cookies,以及它們在登入機制中的作用。
我們希望你們以及理解了使用者登入的工作原理,如有疑問,歡迎提問。
via: http://www.theitstuff.com/sessions-cookies-user-login-work
作者:Rishabh Kandari 譯者:lujun9972 校對:wxy
相關文章
- ssl會話建立的過程(原理)是什麼?會話
- Windows檢視登入使用者會話Windows會話
- 二維碼掃碼登入是什麼原理
- 什麼是Cookie、令牌與JWT?CookieJWT
- Cookie 是什麼?從儲存登入到廣告追蹤的那些事Cookie
- 什麼是cookie,什麼是sessionCookieSession
- cookie之登入使用者憑證Cookie
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- 什麼是單點登入(SSO)
- 火幣網是用什麼記住使用者登入狀態的?
- 什麼是 cookie 的 httponly 屬性CookieHTTP
- linux中什麼是使用者組?使用者與組的關係是什麼?Linux
- NLA是什麼?NLA的原理是什麼?
- 什麼是透明屏,其工作原理與優勢是什麼
- ElasticSearch寫入資料的工作原理是什麼?Elasticsearch
- 會話技術之Cookie會話Cookie
- 會話層技術-cookie會話Cookie
- 直接登入資料庫使用drop table tablename;會是什麼情況?資料庫
- 如何登入 oss 的賬號密碼是什麼密碼
- 什麼是單點登入?如何實現?
- cookie是什麼?和session有什麼區別?CookieSession
- 與ChatGPT的有趣對話|Adobe是什麼軟體?ChatGPT
- 什麼是CDN?CDN的技術原理是什麼?
- 為什麼sleeping的會話會造成阻塞會話
- HTML5入門教程 :Cookie會話跟蹤技術HTMLCookie會話
- 【學習】介面是什麼?實現原理的是什麼?
- 交換機是什麼,它的工作原理是什麼
- 【Linux分享】什麼是CDN?CDN加速的原理是什麼?Linux
- 蜘蛛池的原理是什麼
- 為什麼sleeping的會話會造成阻塞(2)會話
- 令牌Token和會話Session原理與攻略會話Session
- 【與ChatGPT的有趣對話】什麼是Adobe國際認證?ChatGPT
- 什麼是爬蟲?爬蟲的工作原理是什麼呢爬蟲
- PHP 會話(Session)如何實現使用者登陸功能PHP會話Session
- 系統登入認證流程對比(cookie方式與jwt)CookieJWT
- NLA有什麼用?原理是什麼?
- Cookie&Session,登入的那些小事兒~CookieSession
- 記一次COOKIE的偽造登入Cookie
- 區塊鏈的原理是什麼?區塊鏈