我正在用 scapy 制作一个网络服务器,进展顺利。然而,同时维护不同的连接对于scapy来说是一件很头疼的事情。因此,我希望客户端与为带有图像的 html 页面提供服务的网络服务器建立持久连接。
我的客户端成功启动了 TCP 握手并获取了 html 页面,但是,它打开了一个新的连接来下载图像。这是我不想要的。
我知道在 HTTP/1.1
中没有必要发送 keep-alive
header ,因为它是默认设置。为什么 Chrome 和 Firefox 仍然打开更多连接来下载单独的文件?
我没有发送 Connection: close
header ,所以我认为他们没有为网页上的所有文件保持相同的连接很奇怪。
编辑:尝试使用实际的 Keep-Alive: timeout=n, max = n
header 。仍然没有结果。
可能是什么问题?欢迎询问详情!
最佳答案
持久连接并不禁止使用并行连接,它们只允许对更多请求重复使用同一个连接。但是,对于持久连接,您只能在同一个连接中一个接一个地执行多个请求。这意味着要获得大量资源,并行打开多个连接并使用这些连接中的每一个来获得多个资源通常会更快,例如并行使用 4 个连接来获取 12 个图像(每个连接 3 个图像)比使用单个连接一个接一个地获取所有 12 个图像更快。
关于html - 持久连接根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286901/