這兩種用來記錄client幹了啥事情,或者紀錄client的資料。
因為HTTP協議是無狀態的(stateless),
也就是伺服器不知道使用者上一次在同一網頁做了什麼事情,
如果沒有cookie或session在購物網站伺服器並不知道"哪位"使用者買了什麼"東西"。
cookie
為了辨別使用者身份而儲存在用戶端(Client Side)上的資料(ex:帳號密碼,通常經過加密)。存在客戶端硬碟裡,除非手動清除,儲存時間是長久的。
伺服器可以設定或讀取Cookies中包含訊息,藉此維護使用者跟伺服器會話中的狀態。
在剛才的購物場景中,當使用者選購了第一項商品,伺服器在向使用者發送網頁的同時,還發送了一段Cookie,記錄著那項商品的訊息。當使用者存取另一個頁面,瀏覽器會把Cookie發送給伺服器,於是伺服器知道他之前選購了什麼。使用者繼續選購飲料,伺服器就在原來那段Cookie里追加新的商品訊息。結帳時,伺服器讀取發送來的Cookie就行了。
Cookie另一個典型的應用是當登入一個網站時,網站往往會請求使用者輸入使用者名和密碼,並且使用者可以勾選「下次自動登入」。如果勾選了,那麼下次存取同一網站時,使用者會發現沒輸入使用者名和密碼就已經登入了。這正是因為前一次登入時,伺服器發送了包含登入憑據(使用者名加密碼的某種加密形式)的Cookie到使用者的硬碟上。第二次登入時,(如果該Cookie尚未到期)瀏覽器會發送該Cookie,伺服器驗證憑據,於是不必輸入使用者名和密碼就讓使用者登入了。
session
將client端的
沒有留言:
張貼留言