关于《深入分析JavaWeb技术内幕》中 跨域名共享Cookie的笔记(第二次看还是需要花点时间,遂将自己的理解写下来)
图取自《深入分析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