我正在尝试用 Java 实现一个 http 服务器,我有一个非常基本的(愚蠢的)疑问。请求响应处理是否异步发生?如果是这样,那么客户端如何决定哪个响应针对哪个请求? 假设客户端发出 3 个单独的 GET 请求,当它收到响应时,它如何确定该响应是针对哪个请求的?我是否需要管理客户端和服务器端的 session /状态?非常感谢任何指点。
最佳答案
对于 HTTP 1.x,情况很简单:TCP 连接内的第一个响应针对第一个请求,第二个响应针对第二个请求。如果您有多个并行 TCP 连接,每个连接都会发生这种情况,即不可能在一个连接上发送请求并在另一个连接上接收响应。
对于 SPDY 或 HTTP 2.0,情况略有不同,因为请求/响应可以在同一 TCP 连接内交错。但这都是由协议(protocol)处理的,因此它看起来更像是同一个 TCP 连接内的多个虚拟连接,其中所有连接都抑制与 HTTP 1.x 中描述的相同行为。
关于java - http服务器中的请求响应处理是异步完成的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31558702/