2

任何人都知道网络服务器(apache,tomcat)如何维护会话?

我知道如何创建/处理和销毁会话。我需要知道的是服务器如何在内部维护会话。

即如果有 10 个用户连接到服务器,服务器如何识别哪个会话属于特定用户

4

2 回答 2

1

会话通常由具有每个用户唯一 ID 的 cookie 标识。ID 是在首次创建会话时生成并作为 cookie 发送的(即当用户还没有 cookie 时)。

有时看到的另一种方法是将会话 ID 保留在 URL 中,当客户端出于某种原因拒绝接受 cookie 时使用此方法。但是,这有许多缺点,例如如果用户将其 URL 粘贴到另一个用户时的安全问题,必须将 ID 添加到所有链接,以及丑陋的 URL。

于 2012-12-30T19:07:04.503 回答
1

严格来说,您的网络服务器(Apache)没有“会话”的概念;它只是根据 HTTP 协议理解请求

事实上,HTTP 以“无状态协议”而闻名——没有“会话”的概念。这是 HTTP 可扩展性的基础,但也使得构建需要状态的 Web 应用程序变得困难。

所以不同的web应用框架都引入了“session”的概念。

Tomcat 严格来说并不是一个 Web 服务器,它是一个 servlet 容器。

于 2012-12-30T19:12:09.797 回答