java - http服务器中的请求响应处理是异步完成的吗?

标签 java sockets http server

我正在尝试用 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/

相关文章:

sockets - 蓝牙:如何使用Bluez创建套接字以连接到具有特定UUID的服务?

java - 转到最后滚动的位置 java swing JScrollPane

java - 如何从包含重复值的多个列表中创建唯一数据列表

javascript - 在客户端 JavaScript 中创建 TCP/IP 套接字

http - 谷歌机器人会发出无效请求吗?

http - URL中的UTF8组件,是否应该区分大小写?

javascript - 如何获取 Facebook 好友的生日?

java - Jaxb 元素属性选择

java - 从注入(inject)的实例 CDI 获取准确的对象

security - 如何防止基于UDP的 channel 变成 “backdoor”?