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、119.29.100.138:/pro/

2、119.29.100.135:/pro/

3、119.29.100.135:/pro/test/

4、119.29.100.135:/pro11/

結果:

2、3訪問的時候會帶上對應的COOKIE id =123456789

1、不會帶上因為域名不對

4、不會帶上因為路徑不對


推薦閱讀:

TAG:軟體測試 | Web測試 |