Cookie 的規範介紹

2021-08-31 10:32:55 字數 1347 閱讀 9337

cookie 的規範介紹

目前有以下幾種 cookie 規範:

rfc2965 規範的使用,目前並不多。rfc2109 規範相應要嚴格得多,在實際應用上,並不是所有的瀏覽器和 web 伺服器都嚴格遵守。因此相比較而言,netscape cookie 草案倒是乙個比較簡潔和被廣泛支援的 cookie 規範,因此我們在這裡以 netscape cookie 草案為基礎進行討論,對於其他兩種規範,我們的討論和**具有相同的意義。關於 netscape cookie 草案的細節,大家可以參照 netscape 官方站點,這裡我們列舉一些和我們討論有關的內容。

根據 netscape cookie 草案的描述,cookie 是 web 伺服器向使用者的瀏覽器傳送的一段 ascii 碼文字。一旦收到 cookie,瀏覽器會把 cookie 的資訊片斷以"名 / 值"對 (name-value pairs) 的形式儲存儲存在本地。這以後,每當向同乙個 web 伺服器請求乙個新的文件時,web 瀏覽器都會傳送之站點以前儲存在本地的 cookie。建立 cookie 的最初目的是想讓 web 伺服器能夠通過多個 http 請求追蹤客戶。有些複雜的網路應用需要在不同的網頁之間保持一致,它們需要這種會話狀態的保持能力。

瀏覽器與 web 伺服器通過 http 協議進行通訊,而 cookie 就是儲存在 http 協議的請求或者應答頭部(在 http 協議中,資料報括兩部分,一部分是頭部,由一些名值對構成,用來描述要被傳輸資料的一些資訊。一部分是主體 (body),是真正的資料(如 html 頁面等))進行傳送的。

在 html 文件被傳送之前,web 伺服器通過傳送 http 包頭中的 set-cookie 訊息把乙個 cookie 傳送到使用者的瀏覽器中。下面是乙個遵循 netscape cookie 草案的完整的 set-cookie 頭:

set-cookie:customer=huangxp; path=/foo; domain=.ibm.com; 

expires= wednesday, 19-oct-05 23:12:40 gmt; [secure]

set-cookie 的每個屬性解釋如下:

一旦瀏覽器接收了 cookie,這個 cookie 和對遠端 web 伺服器的連續請求將一起被瀏覽器傳送。例如 前乙個 cookie 被存入瀏覽器並且瀏覽器試圖請求 url 時,下面的 http 包頭就被傳送到遠端的 web 伺服器。

一次典型的網路瀏覽過程

在了解了 cookie 協議的一些基本內容之後,讓我們看看一次典型的網路瀏覽過程中瀏覽器如何識別和處理 cookie:

Cookie的規範介紹

目前有以下幾種cookie規範 rfc2965規範的使用,目前並不多。rfc2109規範相應要嚴格得多,在實際應用上,並不是所有的瀏覽器和web伺服器都嚴格遵守。因此相比較而言,netscape cookie草案倒是乙個比較簡潔和被廣泛支援的cookie規範,因此我們在這裡以netscape coo...

Cookie 的規範介紹

目前有以下幾種 cookie 規範 rfc2965 規範的使用,目前並不多。rfc2109 規範相應要嚴格得多,在實際應用上,並不是所有的瀏覽器和 web 伺服器都嚴格遵守。因此相比較而言,netscape cookie 草案倒是乙個比較簡潔和被廣泛支援的 cookie 規範,因此我們在這裡以 ne...

Cookie 的規範介紹

目前有以下幾種 cookie 規範 rfc2965 規範的使用,目前並不多。rfc2109 規範相應要嚴格得多,在實際應用上,並不是所有的瀏覽器和 web 伺服器都嚴格遵守。因此相比較而言,netscape cookie 草案倒是乙個比較簡潔和被廣泛支援的 cookie 規範,因此我們在這裡以 ne...