HTTP筆記(四)Cookie

HTTP是無狀態協議,它不對之前發生過得請求和響應的狀態進行保存管理。也就是說,無法根據之前的狀態進行本次的請求處理。

Cookie狀態管理

Web本身無法進行狀態的管理(不會記錄已登錄的狀態),那麼每次跳轉新頁面不是要再次登錄,就是要在請求報文中附加參數管理登陸狀態。

保留無協議特徵,同時又要解決類似的矛盾問題,於是引入了Cookie技術。Cookie技術通過在請求和響應報文中寫入Cookie信息來控制客戶端的狀態。

Cookie會根據從服務器端發送的響應報文內的一個叫Set-Cookie的首部字段信息,通知客戶端保存Cookie。當下次客戶端再次往服務器發送請求時,客戶端會自動在請求報文中加入Cookie值發送過去。

服務器發現客戶端發送過來的Cookie後,回去檢查究竟從哪個客戶端發送過來的鏈接請求,然後與服務器數據對比,最後得到之前的狀態信息。

第一次網絡請求

Created with Raphaël 2.1.0客戶端客戶端服務器服務器1.請求生成Cookie記住向誰發送的在響應中添加Cookie後返回,響應+Cookie保存Cookie

第二次以後

Created with Raphaël 2.1.0客戶端客戶端服務器服務器請求中添加Cookie後發送檢查Cookie響應對應Cookie的客戶端數據

1.請求報文如下

GET /index.htm/ HTTP/1.1
Host: www.xxx.com

請求的首部字段內並沒有Cookiede的相關信息
2.響應報文(服務端生成Cookie信息)

HTTP/1.1 200 OK
Date: Thu, 12, 2015 10:10 GMT
Server: Apache
<Set-Cookie: sid=3124113412312; path=/; expires=Wed,=>10-Oct-15 10:10:10 GMT>
Content-Type: text/plain; charset=UTF-8

3.請求報文(自動發送保存着的Cookie信息)

GET /image/ HTTP/1.1
Host: www.xxx.com
Cookie: sid=3124113412312
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章