请求响应处理是否在http服务器中异步完成?

时间:2015-07-22 09:07:46

标签: java sockets http server

我正在尝试用Java实现一个http服务器,我有一个非常基本的(愚蠢的)怀疑。请求响应处理是否异步发生?如果是这样,那么客户如何决定哪个响应针对哪个请求? 假设客户端在收到响应时触发3个单独的GET请求,它如何确定此响应是针对哪个请求的呢?我是否需要在客户端和服务器端管理会话/状态?任何指针都非常感激。

1 个答案:

答案 0 :(得分:1)

使用HTTP 1.x很简单:TCP连接中的第一个响应是第一个请求,第二个响应是第二个请求。如果您有多个并行的TCP连接,则每个连接都会发生,即无法在一个连接上发送请求并在另一个连接上接收响应。

对于SPDY或HTTP 2.0,它略有不同,因为请求/响应可以在同一TCP连接内交错。但这完全由协议处理,因此它看起来更像是同一TCP连接中的几个虚拟连接,其中所有虚拟连接都禁止与HTTP 1.x中描述的相同的行为。