假设一个 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 中来解决它。