http - 不同的 HTTP 主机通过相同的 TCP 连接

标签 http tcp connection host multiplexing

HTTP 服务器是否应该期望在同一 TCP 连接上接收具有不同 Host 字段的请求?尽管与直觉相反,RFC 2616 似乎并未明确禁止客户端在认为合适的情况下将请求多路复用到同一连接上的不同主机。

有没有相关文件的规范性规定禁止这样做?如果没有,是否有任何实际考虑可以有效地防止这种情况,从而允许服务器不检查每个请求的主机?

最佳答案

引用 Chromium 的 William Chan:

Beyond SPDY, this doesn't happen, except for proxy servers.

We've actually discussed reusing TCP connections to different hosts if the ip addresses overlap, but were considered about security and broken HTTP server implementations (let's say you have a reverse proxy HTTP server that has different application server backends, perhaps with different owners...a broken reverse proxy may just assume all connection reuse will be to the same application server backend, which would be bad).

所以这是很有可能的,尽管 Chromium 不这样做。

关于http - 不同的 HTTP 主机通过相同的 TCP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790440/

相关文章:

c++ - 将 C++ TCP/IP 应用程序从 IPv4 转换为 IPv6。难的?值得麻烦吗?

c# - TCP 传输文件在服务器和客户端在 1 台 PC 上运行时有效,但在 2 台 PC 上运行时损坏

c# - 如何使用 .Net 套接字重用 TCP 端点地址

java - Http 响应内容类型为 json。 "Invalid mime type"错误

android - 是否可以从网络服务器上的目录加载图像?

django - 我可以放慢 Django 的速度吗

database - 在 Go 中为 SQL 连接设置 TCP 超时

带有用于本地安装的监视器 UI 的 HTTP 代理

java - Tomcat Web 应用程序中与 Java 和 MySQL 的连接池

php - laravel动态连接多个数据库