HTTP協議中的COOKIE機制簡單理解
1、為什麼會有COOKIE這種機制
首先一種場景, 在一個網站上面, 我發起一次請求,那伺服器怎麼知道我是誰?是誰發起的這次請求呢, HTTP協議是無狀態的協議, 瀏覽器的每一次請求,伺服器都當做一次新請求, 但是在實際應用中我們需要知道這個請求來自於誰,需要查找哪些信息返回給訪問者,
這個時候就引入了COOKIE機制, COOKIE機制是什麼呢? 其實就是伺服器給客戶端返回數據的時候,中間加了一個標識, 然後客戶端再次請求數據的時候,數據中帶上這個標識, 那麼伺服器接收到請求消息時就知道這個請求來自於誰了(相當於伺服器接收到請求時,如果沒有帶識別碼,生成一個識別碼給客戶端, 如果有識別碼,就把這個識別碼需要的對應內容返回給客戶端)
COOKIE主要有哪些欄位呢:
1、name COOKIE的名字
2、value COOKIE對應的值
3、domain 域名 就是說這個COOKIE對應哪一個域名有效
4、path 路徑 , COOKIE對應的哪一個路徑才會有效
5、expires/Max-Age 欄位為此cookie超時時間。若設置其值為一個時間,那麼當到達此時間後,此cookie失效。不設置的話默認值是Session,意思是cookie會和session一起失效。當瀏覽器關閉(不是瀏覽器標籤頁,而是整個瀏覽器) 後,此cookie失效。
舉一個例子,看看我們的瀏覽器怎麼樣去決定要帶哪些COOKIE值,假設瀏覽器有如下COOKIE值
Set-Cookie: id=123456789; expires=Wed, 25-Apr-2018 06:04:48 GMT; domain = 119.29.100.135 path=/pro/
如下四個請求:
1、http://119.29.100.138:/pro/
2、http://119.29.100.135:/pro/
3、http://119.29.100.135:/pro/test/
4、http://119.29.100.135:/pro11/
結果:
2、3訪問的時候會帶上對應的COOKIE id =123456789
1、不會帶上因為域名不對
4、不會帶上因為路徑不對
推薦閱讀: