Cookie
意為“甜餅”,是由W3C組織提出,最早由Netscape社區發展的一種機制,目前Cookie已經成為標準,所有的主流瀏覽器如IE、Netscape、Firefox、Opera等都支持Cookie
Cookie的作業原理
由于HTTP是一種無狀態的協議,服務器單從網路連接上無從知道客戶身份,怎么辦呢?就給客戶端們頒發一個通行證吧,每人一個,無論誰訪問都必須攜帶自己通行證,這樣服務器就能從通行證上確認客戶身份了
實際應用
- Cookie實際上是一小段的文本資訊,客戶端請求服務器,如果服務器需要記錄該用戶狀態,就使用response向客戶端瀏覽器頒發一個Cookie,客戶端瀏覽器會把Cookie保存起來,當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器,服務器檢查該Cookie,以此來辨認用戶狀態,服務器還可以根據需要修改Cookie的內容
Session
是另一種記錄客戶狀態的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務器上,客戶端瀏覽器訪問服務器的時候,服務器把客戶端資訊以某種形式記錄在服務器上,這就是Session,客戶端瀏覽器再次訪問時只需要從該Session中查找該客戶的狀態就可以了
- 如果說Cookie機制是通過檢查客戶身上的“通行證”來確定客戶身份的話,那么Session機制就是通過檢查服務器上的“客戶明細表”來確認客戶身份,Session相當于程式在服務器上建立的一份客戶檔案,客戶來訪的時候只需要查詢客戶檔案表就可以了
兩者的區別
- 資料存放位置不同:
cookie資料存放在客戶的瀏覽器上,即網頁快取
session資料放在服務器上,即key-value形式,如redis 和mongoDB - 安全程度不同:
任何人可分析存放在本地的cookie,進行cookie欺騙,所以不是很安全,出于安全考慮的話選擇session - 性能使用程度不同:
session會在一定時間內保存在服務器上,訪問增多時,會比較占用服務器的性能,考慮到減輕服務器性能方面,應當使用cookie【適具體使用場景而定!】 - 資料存盤大小不同:
單個cookie保存的資料不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie,而session則存盤于服務端,瀏覽器對其沒有限制
cookie 和session 的聯系:
-
session是通過cookie來作業的
-
session和cookie之間是通過$_COOKIE[‘PHPSESSID’]來聯系的
-
通過$_COOKIE[‘PHPSESSID’]可以知道session的id,從而獲取到其他的資訊

- 謝謝閱讀,感恩有你
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/199242.html
標籤:其他
