回覆列表
  • 1 # 網路圈

    Cookie和Session都是會話跟蹤方案,這兩者通常都是配合使用的,簡單說就是:Cookie是儲存在客戶端來確認使用者身份的,Session是根據在伺服器端標識來確定使用者身份的。

    什麼是會話?為什麼需要會話?Cookie和Session的技術背景

    我們知道,訪問網站時用的協議是HTTP或者HTTPS,HTTP協議本身是無狀態的協議,HTTPS是在HTTP協議基礎上加了SSL層(HTTPS是有狀態元件的)。在HTTP協議通訊下,伺服器是無法確認使用者身份的!怎麼理解呢?比如你多次向伺服器發出請求,伺服器預設情況下是無法區分這幾個請求都是來自於你的。這樣就會出現很多問題,比如商城平臺,你添加了購物車,伺服器如何知道哪個使用者把哪件商品加進購物車了呢?

    為了解決這個問題,我們就必須給客戶端頒發一個“通行證”,以後使用者的每次請求都把這個“通行證”給帶上,這樣伺服器就能確認使用者身份了。Cookie機制就是客戶端的“通行證”,但是伺服器商拿到客戶端的“通行證”之後,是不是就直接放行了呢?肯定不行,伺服器端必須要對使用者的“通行證”進行確認,判斷使用者是否合法,所以伺服器上就需要儲存一份使用者的“檔案”,如果客戶端通行證和伺服器上的使用者檔案能匹配上,就代表使用者是合法的,伺服器上的“檔案”其實就是Session。

    Cookie和Session的應用場景

    上面的例子已經很詳細的介紹了Cookie和Session的技術背景,它們都是為了解決HTTP協議無狀態的一種技術方案,都是為了保持會話的。

    所以Cookie和Session的應用場景就是:需要保持使用者狀態的地方,通俗說就是:使用者登入時需要使用Cookie和Session。

    Cookie和Session的區別與聯絡

    1、兩者區別是:

    Cookie儲存在客戶端,適合儲存小容量資料、安全性低;

    Session儲存在伺服器端,可以儲存大量資料,安全性高。

    2、兩者聯絡是:

    Session預設情況下是依懶Cookie的,Session中的SessionID是儲存在客戶端Cookie中的。所以當Cookie被禁用後,Session也就無法跟蹤使用者了。

    但可以透過技術手段使得Cookie禁用後也能正常使用Session,比如將SessionID透過GET引數傳遞給伺服器端。

  • 中秋節和大豐收的關聯?
  • 秦始皇嬴政手下的大將?