HTTP协议解析之Cookie
“?Cookie與身份認證。”
提到HTTP協議,不可避免地都會牽涉到Cookie,可以說,Cookie作為HTTP的重要組成部分,促進了HTTP協議的發展壯大。
HTTP協議如果沒有了Cookie,將會是一個無狀態,無法便捷地進行用戶識別的協議。
通常,Cookie由服務端產生,然后在HTTP會話中發往客戶端,并在客戶端被維護,根據設置,一個Cookie將會有一定的作用域,通常會對一個或者多個域名起作用,一個HTTP請求將會攜帶屬于它的Cookie。同時,Cookie有生命周期,它由服務端下發時確定。
Cookie的作用是用于區分識別用戶身份,進行會話跟蹤、會話管理、個性化服務及行為跟蹤。
客戶端在發起HTTP請求時會根據客戶端的當前情況確定是否攜帶Cookie,如果攜帶,則在HTTP請求頭中表現為字段“Cookie:?”;服務器則在收到HTTP請求時根據具體情況確定是否要設置客戶端的Cookie,如果要設置,則在HTTP響應頭中表現為字段“Set-Cookie:”。
一個典型的HTTP會話如下:
會話中請求端攜帶了客戶端所存在的Cookie,服務端收到后,設置新的Cookie,將舊Cookie覆蓋。
在響應頭中,經常會有多個“Set-Cookie:”項,而在“Set-Cookie:”字段中,必要時會有“Expires”項,告知客戶端當前Cookie項的過期時間。
Cookie很簡單,但是,由于一些APP或者網站的低級設計,經常會有很多敏感信息在Cookie中被攜帶。
由于Cookie用來進行身份認證的特殊性,如果拿到了某個網站或APP的某個用戶的Cookie信息,基本上就可以冒充這個用戶,進行很多的操作和獲取很多重要的信息了,很多使用Cookie驗證用戶的網站,很少使用其它措施來進行用戶的二次驗證,歷史上很多的網站泄露事件都是通過Cookie的泄露來進行的。
Cookie還有一個重要的作用,就是用來精準推送廣告。
隨著時代的進步,網絡的發展,很多網站將HTTP升級為HTTPS,當然,Cookie作為HTTP的重要部分,在HTTPS中會繼續存在,可以在“Set-Cookie:”項中加入“Secure”參數,來表示該Cookie僅供HTTPS使用。
如果一個APP完全地使用HTTPS進行數據的傳輸,那自然問題不大,但現實是,很多的APP,HTTP和HTTPS混用,然后,二者的Cookie也混用,使HTTPS訪問敏感信息的Cookie能夠輕松地從HTTP會話中獲取到,最終導致信息的泄露,防不勝防。
去某咖啡廳,偽裝個熱點,你會獲取到大量泄露的Cookie,然后,別亂玩呀,看看就可以了,要做一個合法的公民。
長按進行關注。
總結
以上是生活随笔為你收集整理的HTTP协议解析之Cookie的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ProtoBuf格式详解
- 下一篇: 如何突破DNS报文的512字节限制