session與cookie的作用和區別

2021-09-25 06:43:27 字數 1959 閱讀 2945

作為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中如果...