如何由服务器维护会话

时间:2012-12-30 19:02:37

标签: apache session web-applications webserver

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

严格来说,您的网络服务器(Apache)没有“会话”的概念;它只是理解requests according to the HTTP protocol

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

因此,不同的Web应用程序框架引入了“会话”的概念 - 对于Java,this仍然是我发现的最好的文章之一。

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