深入理解session和cookie

2021-07-10 02:49:01 字數 839 閱讀 7038

理解乙個東西首先要知道它的由來,也就是為什麼會需要它,它的作用是什麼。

cookie

隨著web的不斷發展,需求也在不斷的變化,從最初的全靜態頁面到後面的動態頁面。因為http協議是乙個無狀態的協議,當使用者的一次訪問結束後,後端伺服器就無法知道下一次來訪問的還是不是上一次訪問的使用者。由此w3c組織設計了cookie來記錄使用者的訪問行為。

優點:能夠通過cookie來跟蹤記錄使用者的訪問行為,由此可以對使用者進行個性化推薦。

通過cookie能夠劃分訪問使用者,針對不同訪問使用者的資料做快取,大大提高資料的訪問效能。

缺點:cookie通過把所有儲存的資料通過http的頭部從客戶端傳遞到服務端,又從服務端再傳回到客戶端 ,隨著cookie個數的增加和訪問量的增加,它占用的網路頻寬也很大。

由於cookie通過http頭部來傳遞到服務端,服務端又傳回客戶端,所有的資料都儲存在客戶端瀏覽器裡,所以可以很容易的利用一些外掛程式檢視和修改cookie,所以cookie的安全性受到了很大的挑戰。

session

由於cookie存在缺點,所以就有了session。

session基本思路:

同乙個客戶端每次和服務端互動式,不需要每次都傳回所有的cookie值,而是只要傳回乙個id,這個id是客戶端第一次訪問伺服器時生成的,而且每個客戶端是唯一的。這樣每個客戶端就有了乙個唯一的id,客戶端只要傳回這個id就行了,這個id通常是name為jsesionid的乙個cookie。

通過session進行互動時傳遞的只是乙個id,所以也就不會增加網路頻寬。

通過session進行互動時,資料都儲存在後端伺服器,所以安全性也得到了保障。

深入理解session過期機制

首先得明白 session的過期時間由兩方面決定的 1儲存在客戶端的 cookie phpsessid 的過期時間 預設cookie名稱為phpsessid,可通過php.ini中的session.name修改。2.儲存在伺服器端的相對應的session檔案 session檔名和上述cookie的值...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...