html - 持久连接根本不起作用

标签 html http tcp scapy keep-alive

我正在用 scapy 制作一个网络服务器,进展顺利。然而,同时维护不同的连接对于scapy来说是一件很头疼的事情。因此,我希望客户端与为带有图像的 html 页面提供服务的网络服务器建立持久连接。

我的客户端成功启动了 TCP 握手并获取了 html 页面,但是,它打开了一个新的连接来下载图像。这是我想要的。

我知道在 HTTP/1.1 中没有必要发送 keep-alive header ,因为它是默认设置。为什么 ChromeFirefox 仍然打开更多连接来下载单独的文件?

我没有发送 Connection: close header ,所以我认为他们没有为网页上的所有文件保持相同的连接很奇怪。

编辑:尝试使用实际的 Keep-Alive: timeout=n, max = n header 。仍然没有结果。


可能是什么问题?欢迎询问详情!

最佳答案

持久连接并不禁止使用并行连接,它们只允许对更多请求重复使用同一个连接。但是,对于持久连接,您只能在同一个连接中一个接一个地执行多个请求。这意味着要获得大量资源,并行打开多个连接并使用这些连接中的每一个来获得多个资源通常会更快,例如并行使用 4 个连接来获取 12 个图像(每个连接 3 个图像)比使用单个连接一个接一个地获取所有 12 个图像更快。

关于html - 持久连接根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286901/

相关文章:

jquery - 在滚动中将类事件添加到导航选项卡 li

http - 如何在 CardDAV (WebDAV) REPORT 请求中进行高级过滤

java - 将 HttpPost 发送到服务器和服务器响应之间的延迟是多少

node.js - 使用 TCP 进行跨进程内存共享

java - 通过 tcp 套接字从 java 服务器向 Android 客户端返回消息

android - 安全的 TCP 套接字和信任

javascript - 当一个输入与另一个输入的 ID 具有相同名称时的含义

html - 在 Dart 中管理浏览器历史记录

html - CSS 动画不工作

http - 使用 Golang Gorilla 包设置回调