狀態保持: cookier及session簡介

狀態保持

  由於 http 是一種無狀態協議,瀏覽器請求服務器是無狀態的。

  無狀態:指一次用戶請求時,瀏覽器、服務器沒法知道以前這個用戶作過什麼,每次請求都是一次新的請求。

  無狀態緣由:瀏覽器與服務器是使用 socket 套接字進行通訊的,服務器將請求結果返回給瀏覽器以後,會關閉當前的 socket 鏈接,並且服務器也會在處理頁面完畢以後銷燬頁面對象。

  有時須要保持下來用戶瀏覽的狀態,好比用戶是否登陸過,瀏覽過哪些商品等

  實現狀態保持主要有兩種方式:

    在客戶端存儲信息使用  Cookie

    在服務器端存儲信息使用 Session

 

Cookie

 

  • Cookie:指某些網站爲了辨別用戶身份、進行會話跟蹤而儲存在用戶本地的數據(一般通過加密)。
    • Cookie是由服務器端生成,發送給客戶端瀏覽器,瀏覽器會將Cookie的key/value保存,下次請求同一網站時就發送該Cookie給服務器(前提是瀏覽器設置爲啓用cookie)。
    • Cookie的key/value能夠由服務器端本身定義。
  • 應用:
    • 最典型的應用是斷定註冊用戶是否已經登陸網站,用戶可能會獲得提示,是否在下一次進入此網站時保留用戶信息以便簡化登陸手續,這些都是Cookie的功用。
    • 網站的廣告推送,常常遇到訪問某個網站時,會彈出小窗口,展現咱們曾經在購物網站上看過的商品信息。
    • 購物車,用戶可能會在一段時間內在同一家網站的不一樣頁面中選擇不一樣的商品,這些信息都會寫入Cookie,以便在最後付款時提取信息。
  • 提示:瀏覽器

    • Cookie是存儲在瀏覽器中的一段純文本信息,建議不要存儲敏感信息如密碼,由於電腦上的瀏覽器可能被其它人使用
    • Cookie基於域名安全,不一樣域名的Cookie是不能互相訪問的
      • 如訪問sina.com.cn時向瀏覽器中寫了Cookie信息,使用同一瀏覽器訪問baidu.com時,沒法訪問到sina.com.cn寫的Cookie信息
      • 瀏覽器的同源策略
      • 當瀏覽器請求某網站時,會將本網站下全部Cookie信息提交給服務器,因此在request中能夠讀取Cookie信息
    • cookie的生成機制簡介

 

Session

  • 對於敏感、重要的信息,建議要存儲在服務器端,不能存儲在瀏覽器中,如用戶名、餘額、等級、驗證碼等信息
  • 在服務器端進行狀態保持的方案就是Session
  • Session依賴於Cookie
  • 舉個簡單的例子: session相似去快餐店點餐, 前臺只會給你說你是多好號, 你具體點餐的內容已經保存在後臺廚房了, 你只須要記住你的號碼到時候過來取餐便可
相關文章
相關標籤/搜索