2012-02-22 111 views
2

我對使用Cookie時的事件順序有點不確定。下面是如果客戶端應用程序反覆向服務器請求相同的頁面,我認爲會發生什麼:HTTP Cookie請求頭部事件序列

  1. 客戶端應用程序的請求與一個Set-Cookie響應頭
  2. 客戶端發出另一個請求
  3. 服務器端返回,將在步驟2中返回該cookie在HTTP請求「曲奇」頭
  4. 服務器端返回,但沒有設置Cookie在響應頭

是正確的序列uence? (我特別感興趣的是第4步 - 服務器是否響應已提供cookie的請求返回Set-Cookie)

有問題的cookie實際上是JSESSIONID cookie,如果這有所幫助。

感謝

戴夫

回答

1

是的,這是正確的順序。但是,我已經看到許多應用程序發送具有相同值的「Set-Cookie」標題。它不會損害流程,因爲值是相同的,即使客戶端更新cookie仍然是相同的值(因此,同一個會話)。

+0

感謝Piotrek - 什麼我發現是我的Web /應用服務器是「有時」在第4步發送的Set-Cookie,但改變的是我在別人傳遞值。如果傳入「cook123_node01」,我有時沒有得到Set-Cookie,但有時會得到Set-Cookie「cook123_node02」 - 即與Cookie相同的前綴,但是不同的後綴。該後綴用於將流量路由到JBOSS集羣內的節點,因此當該值發生更改時,我們的會話親緣關係也會中斷。我認爲這是一個服務器配置錯誤,但在我發起惡臭之前需要一點確認。 – DaveH 2012-02-22 12:39:33

+0

不客氣;)通常新的Set-Cookie標頭設置有兩種情況:前一個會話已過期(超時)或用戶已成功認證(爲了防止會話固定) – 2012-02-22 12:51:04