作為web開發者,我們經常會使用到
session
和cookie,
而且在面試的時候,面試官也會提到這兩者的區別是什麼?使用了那麼多次,我希望從使用到本質,**一下它們的情況。
我們來思考這樣乙個場景,如果在網頁開發中,有個變數我們需要長時間使用,可能在下次登入到這個頁面的時候還能使用,那麼它們的價值就體現出來了,他們能夠儲存我們所需要的資料而不需要經常性呼叫資料庫去獲取。
cookie以文字格式儲存在瀏覽器上,儲存量有限
,只允許4kb;而會話儲存在服務端,可以無限量儲存多個變數
因此,session比cookie更安全。
session在**關閉後就表示會話結束,因此無法做到長時間儲存;而
cookie
由於儲存在瀏覽器上,則可以做到長時間的儲存,但是需要注意的是,使用者能夠在瀏覽器上禁用和編輯
cookie
,因此一定不要將敏感資訊存放,以防洩露;當
cookie
被瀏覽器禁用,可以通過
url引數形式傳遞
cookie。
除了(2)中談到的使用者可對
cookie
編輯和禁用外,還用一點就是
session
在與客戶端連線時會生成對應的
session-id,
而cookie
則沒有,但是客戶端獲取
session
需要通過
cookie
裡面的sessionid
,cookie
就是客戶端與
session
的中間橋梁。
作為web開發者,我們經常會使用到
session
和cookie,
而且在面試的時候,面試官也會提到這兩者的區別是什麼?使用了那麼多次,我希望從使用到本質,**一下它們的情況。
我們來思考這樣乙個場景,如果在網頁開發中,有個變數我們需要長時間使用,可能在下次登入到這個頁面的時候還能使用,那麼它們的價值就體現出來了,他們能夠儲存我們所需要的資料而不需要經常性呼叫資料庫去獲取。
cookie以文字格式儲存在瀏覽器上,儲存量有限
,只允許4kb;而會話儲存在服務端,可以無限量儲存多個變數
因此,session比cookie更安全。
session在**關閉後就表示會話結束,因此無法做到長時間儲存;而
cookie
由於儲存在瀏覽器上,則可以做到長時間的儲存,但是需要注意的是,使用者能夠在瀏覽器上禁用和編輯
cookie
,因此一定不要將敏感資訊存放,以防洩露;當
cookie
被瀏覽器禁用,可以通過
url引數形式傳遞
cookie。
除了(2)中談到的使用者可對
cookie
編輯和禁用外,還用一點就是
session
在與客戶端連線時會生成對應的
session-id,
而cookie
則沒有,但是客戶端獲取
session
需要通過
cookie
裡面的sessionid
,cookie
就是客戶端與
session
的中間橋梁。
cookie與session的關聯
前提 cookie沒有被禁用。當用瀏覽器登入到某 伺服器時,先找對應的cookie檔案,當首次訪問是當然沒有cookie檔案,所以在請求頭部中沒有cookie的內容,即在請求頭部中沒有類似cookie jsessionid 的內容,這時當請求到達伺服器後,伺服器看請求頭中沒有jsessionid值,...
session與cookie的區別
讓我們用幾個例子來描述一下cookie和session機制之間的區別與聯絡。筆者曾經常去的一家咖啡店有喝5杯咖啡免費贈一杯咖啡的優惠,然而一次性消費5杯咖啡的機會微乎其微,這時就需要某種方式來紀錄某位顧客的消費數量。想象一下其實也無外乎下面的幾種方案 1 該店的店員很厲害,能記住每位顧客的消費數量,...
session與cookie的區別
1 session儲存在伺服器,客戶端不知道其中的資訊 cookie儲存在客戶端,伺服器能夠知道其中的資訊。2 session中儲存的是物件,cookie中儲存的是字串。3 session不能區分路徑,同乙個使用者在訪問乙個 期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果...