1. 程式人生 > >58同城網站在登入後,最近幾天都不需要重新登入,這個功能是如何實現的

58同城網站在登入後,最近幾天都不需要重新登入,這個功能是如何實現的

     這個最典型的就是用到了cookie技術。

    Cookie,有時也用其複數形式Cookies,指某些網站為了辨別使用者身份、進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密)。定義於RFC2109和2965都已廢棄,最新取代的規範是RFC6265[1] 。(可以叫做瀏覽器快取)

   按照Netscape官方文件中的定義,Cookie是指在HTTP協議下,伺服器或指令碼可以維護客戶端計算機上資訊的一種方式 。通俗地說,Cookie是一種能夠讓網站Web伺服器把少量資料儲存到客戶端的硬碟或記憶體裡,或是從客戶端的硬盤裡讀取資料的一種技術。 Cookie檔案則是指在瀏覽某個網站時,由Web伺服器的CGI指令碼建立的儲存在瀏覽器客戶端計算機上的一個小文字檔案,其格式為:使用者名稱@網站地址 [數字].txt。

     通俗的理解:cookie就是伺服器端為了儲存某些資料,或實現某些必要的功能,當用戶訪問伺服器時,從伺服器回傳到客戶端的一個或多個數據,這些資料因設定的儲存時間不同,故儲存在瀏覽器記憶體中或寫入使用者PC的硬碟當中,當下次使用者再次訪問伺服器端時,則帶著這些檔案去與伺服器端進行聯絡,這些資料或寫入硬碟當中的資料檔案就是cookie。

    Cookie檔案記錄了使用者的有關資訊,如身份識別號碼ID、密碼、瀏覽過的網頁、停留的時間、使用者在Web站點購物的方式或使用者訪問該站點的次數等,當用戶再次連結Web伺服器時,瀏覽器讀取Cookie資訊並傳遞給Web站點。 

    cookie的應用場景有很多,最具代表性的當屬網站的記錄使用者賬號和密碼的功能了,大家可能經常看到登入某某論壇,某某網站時,下面有個選項為N天內自動登入,其實這就是cookie的應用。當用戶第一次輸入賬號密碼時給伺服器傳送請求時,伺服器會根據賬號密碼回寫一個字串cookie,當用戶下次再向該伺服器傳送登入請求時,則帶著這個字串cookie一起去訪問伺服器,這時,伺服器只需要對比次字串和資料庫中儲存的字串是否相同,則可以達到使用者自動登入功能。         

cookie的工作原理:

(1)客戶端在瀏覽器的位址列中鍵入Web伺服器的URL,瀏覽器傳送讀取網頁的請求。 

(2)伺服器接收到請求後,產生一個Set-Cookie報頭,放在HTTP報文中一起回傳客戶端,發起一次會話。 

(3)客戶端收到應答後,若要繼續該次會話,則將Set-Cook-ie中的內容取出,形成一個Cookie.txt檔案儲存在客戶端計算機裡。

(4)當客戶端再次向伺服器發出請求時,瀏覽器先在電腦裡尋找對應該網站的Cookie.txt檔案。如果找到,則根據此Cookie.txt產生Cookie報頭,放在HTTP請求報文中發給伺服器。

(5)伺服器接收到包含Cookie報頭的請求,檢索其Cookie中與使用者有關的資訊,生成一個客戶端所請示的頁面應答傳遞給客戶端。 瀏覽器的每一次網頁請求,都可以傳遞已存在的Cookie檔案,例如,瀏覽器的開啟或重新整理網頁操作。

                                                         

      Cookie的主要功能是實現使用者個人資訊的記錄,它最根本的用途是幫助Web站點儲存有關訪問者的資訊。更概括地說,Cookie是一種保持Web應用程式連續性(即執行狀態管理)的方法。

     HTTP協議是一種無狀態、無連線的協議,不能在伺服器上保持一次會話的連續狀態資訊。隨著WWW的不斷髮展,HTTP的無狀態性不能滿足某些應用的需求,給Web伺服器和客戶端的操作帶來種種不便。在此背景下,提出HTTP的狀態管理機制———Cookie機制,它是對HTTP協議的一種補充,以保持伺服器和客戶端的連續狀態。