cookie與session的區別與聯絡
為什麼會有Cookie和Session的出現: TCP是無狀態的,當我們在訪問瀏覽器時,伺服器不會為客戶端儲存它上一次訪問的內容,每一次訪問都是獨立的。為了方便使用者的訪問,所以就出現了這兩個機制,使訪問伺服器時可以儲存以前訪問的內容。
Cookie: 一般是由伺服器在http響應頭上加特殊的指令來使客戶端在本地生成cookie檔案。當客戶端再次訪問上次相同的頁面時,客戶端會檢查所有cookie檔案,然後找到與這個頁面相對應的cookie檔案,把它新增到http請求頭上,傳送給伺服器。 1、Cookie機制的安全性: Cookie機制沒有安全性,如果被人截獲,他只要把Cookie向伺服器提交,那麼就可以冒充別人訪問伺服器。 2、Cookie主要包括:值,名字,路徑,域,過期日期,安全。 path:指定與Cookie相關聯的頁面。 domain:指定相關聯的伺服器或域。 secure(安全):指定Cookie如何通過網路在使用者和伺服器之間傳遞。預設為NULL,如果標記為secure,則使用的是https傳遞資料。
Session 是一使用散列表結構把資料儲存在伺服器端。 當客戶進行訪問時,伺服器首先在客戶端的請求中檢查是否已經有一個session id。如果存在則在伺服器中把這個session檢索出來,如果沒有,則建立一個session 並生成相對應的session id,把這個session在響應時返回給客戶端儲存。 1、儲存session id的方式: (1)客戶端儲存session id的方式為cookie機制,但cookie可以被瀏覽器禁止。 (2)通過url重寫或表單隱藏欄位技術,把session id傳遞給伺服器。 總結 (1)cookie資料是存放在客戶端,session資料是存放在伺服器端。 (2)cookie不是很安全。 (3)採用session機制當訪問量增多時,會降低伺服器的效能。 注意: 一般採用cookie和session結合使用的方式,重要資訊採用session機制,一般資訊採用cookie機制。