任何人都知道网络服务器(apache,tomcat)如何维护会话?
我知道如何创建/处理和销毁会话。我需要知道的是服务器如何在内部维护会话。
即如果有10个用户连接到服务器,服务器如何识别哪个会话属于特定用户
答案 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容器。