Session和HTTP连接之间有什么区别?

6

我已经阅读了这篇文章这篇文章。阅读后,我发现自己的基础知识非常混乱。由于涉及到网络和JSPs&Servlets的基础知识,请帮助我理清思路。

考虑以下假设情况:

如果我在某个浏览器上打开了www.xyz.com并且在该页面上什么都没有做,一整天都没有动作。

问题1:如果保持连接(Connection: keep-alive),那么意味着同一连接是否仍然存在,如果第二天我从该页面请求某些内容。

问题2:在这种情况下,会话如何工作-我发现如果会话过期,则连接也将过期,那么HTTP连接和会话之间有什么区别?当我们在同一个浏览器中打开Facebook的多个标签时会发生什么(它是相同的会话但不同的连接?我正确吗?)

问题3:正如本文中所述:

HTTP 1.1标准的一个重大改进是持久连接。在HTTP 1.0中,Web客户端和服务器之间的连接在单个请求/响应周期后关闭。在HTTP 1.1中,连接保持活动状态并重复使用于多个请求。持久连接可以明显减少通信延迟,因为客户端不需要在每个请求之后重新协商TCP连接。

浏览器如何维护持久连接?

注意:如果有人能以这种方式回答此问题,那会更好。

1个回答

5
回答你的问题:
A1:不,下一天不会有连接。在HTTP中,Keep-Alive的值通常足够低,无法通过一整天。
A2:会话在服务器端进行维护。它与通信的Keep-Alive没有任何关系。它具有单独的过期时间值(取决于配置方式)。您是正确的:不同的选项卡,相同的会话,不同的连接。通常,会话使用公共Cookie粘合在一起。这就是为什么当你清理Cookie时,通常会丢失所有会话的原因。
A3:浏览器只是不关闭TCP/IP连接。这就是它的做法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接