會(huì)話(huà)與Cookie:用戶(hù)登錄的原理是什么?
Facebook、 Gmail、 Twitter 是我們每天都會(huì)用的網(wǎng)站(LCTT 譯注:才不是呢)。它們的共同點(diǎn)在于都需要你登錄進(jìn)去后才能做進(jìn)一步的操作。只有你通過(guò)認(rèn)證并登錄后才能在 twitter 發(fā)推,在 Facebook 上評(píng)論,以及在 Gmail上處理電子郵件。
gmail, facebook login page
那么登錄的原理是什么?網(wǎng)站是如何認(rèn)證的?它怎么知道是哪個(gè)用戶(hù)從哪兒登錄進(jìn)來(lái)的?下面我們來(lái)對(duì)這些問(wèn)題進(jìn)行一一解答。
用戶(hù)登錄的原理是什么?
每次你在網(wǎng)站的登錄頁(yè)面中輸入用戶(hù)名和密碼時(shí),這些信息都會(huì)發(fā)送到服務(wù)器。服務(wù)器隨后會(huì)將你的密碼與服務(wù)器中的密碼進(jìn)行驗(yàn)證。如果兩者不匹配,則你會(huì)得到一個(gè)錯(cuò)誤密碼的提示。如果兩者匹配,則成功登錄。
登錄時(shí)發(fā)生了什么?
登錄后,web 服務(wù)器會(huì)初始化一個(gè)會(huì)話(huà)并在你的瀏覽器中設(shè)置一個(gè) cookie 變量。該 cookie 變量用于作為新建會(huì)話(huà)的一個(gè)引用。搞暈了?讓我們說(shuō)的再簡(jiǎn)單一點(diǎn)。
會(huì)話(huà)的原理是什么?
服務(wù)器在用戶(hù)名和密碼都正確的情況下會(huì)初始化一個(gè)會(huì)話(huà)。會(huì)話(huà)的定義很復(fù)雜,你可以把它理解為“關(guān)系的開(kāi)始”。
session beginning of a relationship or partnership
認(rèn)證通過(guò)后,服務(wù)器就開(kāi)始跟你展開(kāi)一段關(guān)系了。由于服務(wù)器不能象我們?nèi)祟?lèi)一樣看東西,它會(huì)在我們的瀏覽器中設(shè)置一個(gè) cookie 來(lái)將我們的關(guān)系從其他人與服務(wù)器的關(guān)系標(biāo)識(shí)出來(lái)。
什么是 Cookie?
cookie 是網(wǎng)站在你的瀏覽器中存儲(chǔ)的一小段數(shù)據(jù)。你應(yīng)該已經(jīng)見(jiàn)過(guò)他們了。
theitstuff official facebook page cookies
當(dāng)你登錄后,服務(wù)器為你創(chuàng)建一段關(guān)系或者說(shuō)一個(gè)會(huì)話(huà),然后將唯一標(biāo)識(shí)這個(gè)會(huì)話(huà)的會(huì)話(huà) id 以 cookie 的形式存儲(chǔ)在你的瀏覽器中。
什么意思?
所有這些東西存在的原因在于識(shí)別出你來(lái),這樣當(dāng)你寫(xiě)評(píng)論或者發(fā)推時(shí),服務(wù)器能知道是誰(shuí)在發(fā)評(píng)論,是誰(shuí)在發(fā)推。
當(dāng)你登錄后,會(huì)產(chǎn)生一個(gè)包含會(huì)話(huà) id 的 cookie。這樣,這個(gè)會(huì)話(huà) id 就被賦予了那個(gè)輸入正確用戶(hù)名和密碼的人了。
facebook cookies in web browser
也就是說(shuō),會(huì)話(huà) id 被賦予給了擁有這個(gè)賬戶(hù)的人了。之后,所有在網(wǎng)站上產(chǎn)生的行為,服務(wù)器都能通過(guò)他們的會(huì)話(huà) id 來(lái)判斷是由誰(shuí)發(fā)起的。
如何讓我保持登錄狀態(tài)?
會(huì)話(huà)有一定的時(shí)間限制。這一點(diǎn)與現(xiàn)實(shí)生活中不一樣,現(xiàn)實(shí)生活中的關(guān)系可以在不見(jiàn)面的情況下持續(xù)很長(zhǎng)一段時(shí)間,而會(huì)話(huà)具有時(shí)間限制。你必須要不斷地通過(guò)一些動(dòng)作來(lái)告訴服務(wù)器你還在線(xiàn)。否則的話(huà),服務(wù)器會(huì)關(guān)掉這個(gè)會(huì)話(huà),而你會(huì)被登出。
websites keep me logged in option
不過(guò)在某些網(wǎng)站上可以啟用“保持登錄”功能,這樣服務(wù)器會(huì)將另一個(gè)唯一變量以 cookie 的形式保存到我們的瀏覽器中。這個(gè)唯一變量會(huì)通過(guò)與服務(wù)器上的變量進(jìn)行對(duì)比來(lái)實(shí)現(xiàn)自動(dòng)登錄。若有人盜取了這個(gè)唯一標(biāo)識(shí)(我們稱(chēng)之為 cookie stealing),他們就能訪(fǎng)問(wèn)你的賬戶(hù)了。
結(jié)論
我們討論了登錄系統(tǒng)的工作原理以及網(wǎng)站是如何進(jìn)行認(rèn)證的。我們還學(xué)到了什么是會(huì)話(huà)和 cookies,以及它們?cè)诘卿洐C(jī)制中的作用。
我們希望你們以及理解了用戶(hù)登錄的工作原理,如有疑問(wèn),歡迎提問(wèn)。