http - http 客户端如何将 http 响应与请求(使用 Netty)或一般情况相关联?

标签 http nio netty

HTTP 端点是否应该响应来自特定客户端的请求以便接收它们?

如果在代理后面的集群处理的请求或使用 NIO 处理的请求中一个请求比另一个请求完成得更快的情况下没有意义怎么办?

是否有一种标准方法可以将唯一 ID 与每个 http 请求相关联以与响应相关联?这在 http componenets httpclient 或 curl 等客户端中是如何处理的?

问题归结为以下情况:

假设,我正在从服务器下载文件,但请求尚未完成。客户端是否能够在同一个保持连接上完成其他请求?

最佳答案

无论何时打开 TCP 连接,都会通过源端口和目标端口以及 IP 地址来识别连接。因此,如果我在目标端口 80(HTTP 的默认端口)上连接到 www.google.com,我需要一个操作系统将生成的免费源端口。

然后将 Web 服务器的回复发送到源端口(和 IP)。这也是 NAT 的工作方式,记住哪个源端口属于哪个内部 IP 地址(传入连接反之亦然)。

至于您的编辑:不,单个 http 连接可以同时执行一个命令(GET/POST/等)。如果您在从先前发出的命令中检索数据时发送另一个命令,则结果可能因客户端和服务器实现而异。我猜想,比如Apache,在第一个请求的数据发送完之后,会把第二个请求的结果发送出去。

关于http - http 客户端如何将 http 响应与请求(使用 Netty)或一般情况相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7306497/

相关文章:

http - 根据golang中的字节长度拆分字符串

java - 为什么 Java NIO 可以优于标准的 Java 套接字?

java - 使用 Java 8 处理和拆分大文件

java - 字节缓冲区 View

java - 如何关闭 Netty 库调试输出?

java - 在java中X时间后调用方法

http - 解析 HTTP header - 编码问题

c# - 使用 jQuery.ajax() 时,HttpListener 仅获取 InputStream 的前 900 个字节

angular - 使用 RxJS 从多个 API 调用构建数据

java-8 - Java 检查平台是否支持 sctp,否则使用 tcp