session和cookie的內部原理
阿新 • • 發佈:2018-12-13
cookie的工作流程:
客戶端訪問伺服器,伺服器呼叫response.addCookie()方法,產生響應時,會產生set-cookie響應頭,將cookie文字傳送給客戶端,客戶端會將cookie文字儲存起來,當客戶端再次請求伺服器時,會產生cookie請求頭,將之前伺服器傳送的cookie資訊,再發送給伺服器,伺服器就可以根據cookie資訊跟蹤客戶端的狀態。
cookie的工作原理:
a.伺服器通過隨著響應傳送一個http 的Set-Cookie 頭,在客戶機中設定一個cookie(多個cookie 要多個頭)。
b.客戶端自動向伺服器端傳送一個http 的cookie 頭,伺服器接收讀取。
C.如果是持久化cookie,瀏覽器將在客戶端的磁碟上建立一個cookie 檔案,並在裡面寫入:
TestCookie=something from somewhere;
這一行就是我們用 setcookie('TestCookie','something from somewhere','/'); 的結果。也可以用
header('Set-Cookie: TestCookie=something from somewhere; path=/');的結果。
cookie的分類:
1 存放在客戶端瀏覽器的快取中,當瀏覽器不關閉,cookie資訊一起存在,瀏覽器一關閉,cookie消失
2 存放在客戶端的檔案中,並可以設定cookie過期時間,過期時間之內,即使瀏覽器關閉,也可以將cookie資訊傳送給伺服器,超過過期時間,cookie消失。
cookie資訊是以文字方式(不一定是txt檔案,大多是二進位制檔案)存放在客戶端的,所以容易引起一些安全隱患,所以不要把隱祕資訊以cookie方式儲存。
cookie相關操作(新建+讀取+刪除)
設定cookie:
a.可以用 setcookie()