關於《深入分析JavaWeb技術內幕》中 跨域名共享Cookie的筆記(第二次看還是需要花點時間,遂將自己的理解寫下來)

某工程師$發表於2019-01-07

圖取自《深入分析JavaWeb技術內幕》

事先應當知曉:a.com 中有會跳轉到 b.net的地方, 儲存session id的Cookie會受到域名的限制,跳轉到b.net之後仍然需要保持之前的登陸狀態(即 需要b.net訪問時也帶上 session id)

核心步驟:跳轉到b.net時會檢查是否存在session id,不存在的話,遵循既定的系統設計,要獲取到a.com下的session id。

首先,302跳轉到 jump.a.com target=b.net (這裡標記下是臨時跳轉,記錄最終目標是 b.net),因為之前訪問a.com時已經登陸過了,瀏覽器訪問 jump.a.com的時候 瀏覽器會帶上 含有session id 的 Cookie,這樣 跳轉系統獲取到了使用者的 session id

然後,再次 302通知瀏覽器跳轉 jump.b.net sessionId=xxx (這裡在url中帶上了 獲取到的 sessionId)  target=b.net(仍然記錄目標地址),瀏覽器訪問   jump.b.net sessionId=xxx  target=b.net 時,跳轉系統從 url中取得 sessionId,並將其寫到Cookie中返回,至此,b.net下也有了保持使用者登陸狀態的 Cookie

最後,再次通知瀏覽器302跳轉到  target地址 b.net,瀏覽器訪問時會自動帶上  相應的Cookie

相關文章