Http

HTTP 和 cookie 與多個伺服器一起工作

  • November 8, 2016

假設一個 HTTP/1.1 連接的簡化圖,其中客戶端發出一個頁面和一個帶有 cookie 分配的圖像請求,可以簡化為:

(第二個請求的時間傳輸並不是那麼微不足道,它取決於cookie的尺寸)

例如,當圖片保存在與保存頁面的伺服器不同的伺服器中時,有人可以解釋一下 cookie 技術的工作原理嗎?客戶端是否將之前分配的相同 cookie id 發送到第二台伺服器?還是取決於伺服器的實現方式?

讓我說,為了避免誤解,我很清楚,如果圖片保存在另一台伺服器中,客戶端必須建立另一個 TCP 連接。

我們顯然正在處理持久的 HTTP 會話,並且我們沒有考慮 C 和 S 之間的任何路由器。

看起來你把兩件事混合在一起了。

Cookie 儲存在客戶端。所有 cookie(取決於 URL)都隨客戶端請求發送,因此伺服器將所有數據保存在 cookie 中(它們保存在客戶端,沒有伺服器)。沒有 Cookie ID。

也許您正在考慮會話 ID。在這種情況下,只有會話 ID 儲存在客戶端的 cookie 中(名為 PHPSESSID 的 cookie 或具有會話 ID 值的類似名稱),所有會話數據都儲存在伺服器上。在這種情況下,當您想從不同的伺服器訪問會話時會出現問題。您可以通過將會話保存在某些共享儲存、數據庫或 memcache/redis 中來解決它。

引用自:https://serverfault.com/questions/813615