1. 程式人生 > >【WEB前端】COOKIES與SESSION的區別

【WEB前端】COOKIES與SESSION的區別

寫在前面的

   對WEB前端的知識回顧的當中,覺得COOKIES和SEESION的應用層面有些相似,但是具體怎樣卻不是很清楚,下面就來總結一下這兩個東西的共同點和區別,幫助自己能夠更好的掌握這些基礎知識。

概念

   對於COOKIES來講,通常理解為本地的一些加密的資料,用於識別使用者的身份一些基本資訊等,是某些網站為了提高或者方便使用者進行訪問而產生的特定的終端資料。

SESSION

   對於SESSION來說,通常我們理解為與使用者的WEB行為有關,就是指使用者在對網站系統及進行訪問時,從登入到登出退出的整個過程的一個時間過程。這個過程我們稱之為:時間域


   從這裡不難看出,SESSION的一些記錄資訊和COOKIES的位置就有了區別,SESSION的位置應該是屬於伺服器的。

區別

  • 位置:剛才也說到了,COOKIES存放於終端,SEESION存放於伺服器端。
    (這裡需要說明一下,所有存放於終端 的資訊都存在安全風險,不論應用什麼加密,所以安全風險是COOKIES不能避免的。)

  • 時間:COOKIES在終端的存放時間通常來講要長於SESSION的存放時間,有些COOKIES如果使用者樂意的話,基本可以實現永久存放。而SESSION則是在一定的時間記憶體放在伺服器上,因為基本不會有使用者永久的訪問你的網頁,況且,大量的SESSION在伺服器端產生的壓力,至少我認為是很恐怖的。

  • 空間:這個就要單個對於COOKIES來講了(SESSION的限制主要在時間),不同瀏覽器對於COOKIES的個數有所不同,但單個COOKIES大小在4KB左右。

應用

COOKIES

   可以這樣說,COOKIES就是為了HTTP誕生的。由於HTTP協議的進行是即時性的,所以當會話或者訪問結束時,那麼終端與伺服器之間的連結就斷掉了,不會留有任何痕跡。當兩者再次產生互動時,則一切從頭再來。所以,HTML技術的早期,訪問一個稍微大一點的網站是一個非常蛋疼事情,首先是網速,其次就是每次訪問網站想保留點歷史是一件幾乎不可能事情。
   在這種情況下,COOKIES就誕生了,它的作用就是用來跟蹤終端和伺服器之間的互動記錄,從而在一定程度上減輕伺服器壓力,並且重要的是可以對會話進行追蹤。


   瞭解了概況,我們再來具體說一說,使用者在訪問伺服器的時候,伺服器會給每一個使用者發放一個COOKIE來標識身份,客戶端瀏覽器會將這個COOKIE儲存起來,當用戶向伺服器請求資料的時候,瀏覽器會將網址和COOKIES一起提交,伺服器通過COOKIE來核實使用者身份,並且如果有需要也可以對提交的COOKIES進行一些修改或者刪除的操作。

  • 具體流程如下:
    這裡寫圖片描述

SESSION

   與COOKIES功能相似,SESSION也是用於記錄使用者資訊而產生的伺服器端的資料。如果說COOKIES是使用者手裡的門票的話,那麼SESSION就相當於使用者檔案了。這樣一個比方恰到好處的闡明瞭COOKIES與SESSION的關係,下面來看一下具體的過程。
   終端瀏覽器在訪問伺服器的時候,伺服器會將客戶的相關資訊記錄在伺服器上面,形成一份類似於“表單”的資料,提供驗證依據。由於SESSION本身的特性,也可以將本次連結產生的一些資訊,經由SESSION存放在COOKIES裡面,為下一次連結提供驗證資訊。

總結

   對於這兩者的區別在實際應用中也還存在著其他方面的限定,也可以根據自己業務的不同分別來進行相關應用,總之,前端這些不起眼的知識點在自己的日常積累中也是非常重要的,不僅要知其然,也還要知其所以然,慢慢進步吧~!