【WEB】淺談網站開發瀏覽器中的 Session 和 Cookie
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
為什么我們要討論 Session 和 Cookie?想象一下,我們日常使用的具有“會員登錄”或者“網上購物”功能的網站,服務器需要識別這些不同的請求是否來自同一個客戶端。但是在 HTTP 設計中,每個請求都是相互獨立的,即使是同一個用戶連續操作瀏覽器發送多個請求,前一個請求也不會認識后一個請求。因此,開發者需要利用 Session 和 Cookie 機制來幫助服務器識別特定的客戶端。 餐館和顧客在討論技術內容之前,我們先來聊聊你附近的餐館。餐館和消費者的關系就像 Session 和 Cookie 一樣。你每次去餐館消費都是獨立的事件,交易完成后,老板通常不會記得你上次點了什么。但是,假設你是老板,你希望記住每位客戶的購買記錄,讓他們一進門,你就能知道他們的喜好,你會怎么做呢?答案就是會員卡! 通過每一張獨一無二的會員卡,用會員編號綁定每一位消費者,當客戶上門時,只需要出示卡片,你就能從客戶管理系統中調出該會員過往所有的消費記錄。而這個“會員編號”,就相當于網絡世界中的session id。 什么是 SessionSession就像是你的會員編號,當你需要追蹤同一個用戶通過瀏覽器發出的一系列請求時,可以通過創建一組憑證來記錄設備間的交互過程,這種機制稱為Session。就像餐飲店通過會員編號查找顧客的歷史購買信息一樣,服務器也會通過 session id查找到對應的用戶數據。 什么是 CookieCookie 就像是你手中的會員卡,卡片上有客戶的專屬會員編號,也就是 session id。Cookie 是瀏覽器內置的功能,通過這個功能,瀏覽器讓服務器能夠把 session 的信息(包括 session id)保存在瀏覽器的 Cookie 上。當瀏覽器每次向服務器發送請求時,都會附帶一組 Cookie 信息,因此,服務器就能通過 Cookie 中的 session id 追蹤到瀏覽器那頭的用戶是誰。 Session 與 Cookie 如何運作?我們通過用戶登錄的案例來進一步討論這兩者是如何運作的。開發者會使用 session 與 cookie 來實現用戶認證系統。無論是登錄微博還是淘寶,即便關閉了窗口又重新回到這些網站,我們通常不需要重新登錄,但如果換了一臺電腦,或者使用“無痕模式”操作,就必須重新登錄。 我們把登錄這個動作拆分成“如何登錄”和“登錄后發生了什么”來討論。 用戶如何登錄?以淘寶為例,當我們在登錄頁面輸入用戶名或電話號碼時,你所輸入的數據就會被傳送到淘寶的服務器,驗證此賬號是否存在。如果賬號通過驗證,下一步你需要輸入賬號密碼進行登錄,然后服務器會驗證你輸入的數據是否與用戶數據庫的內容一致。最后,如果判定結果為用戶數據一致的話,你就能成功登錄了! 登錄后瀏覽器與服務器如何交互?在你成功登錄的時候,也就是瀏覽器對服務器發送第一次請求時,服務器端會建立一個 session,并在你的瀏覽器 cookie 里存儲一個 session id 變量。以后服務器通過這個 session id 就知道你曾經成功登錄過,而之后瀏覽時就能通過 cookie 里的 session id 直接對應服務器上的 session 數據,直接尋找有關你的數據,后續就不需要你重新登錄了。 Session 會失效嗎?你可能會想,如果我把瀏覽器關掉,session 是不是就會失效了。或者說,有時候明明也沒有退出登錄,但系統又要求我再次登錄,這究竟是怎么一回事? 如果用“會員卡”的比喻來解釋,“關掉瀏覽器”就像把會員卡放回錢包里一樣,會員記錄還是會在。因此,要取消 session,一般來說有三個方法:
結語通過本次的學習分享,我們不僅對于 Cookie 與 Session 有了更進一步的認識,也知道它們如何幫助開發者完成用戶認證系統。特別是這些過程都是生活中不會留意到的小細節,也充滿了許多的學問,我相信這就是網絡世界有趣的地方吧。 該文章在 2024/3/30 13:25:59 編輯過 |
關鍵字查詢
相關文章
正在查詢... |