我正在制作一个scapy的网络服务器,这很顺利。然而,同时保持不同连接的scapy是一种痛苦。所以我希望客户端与服务于带有图像的html页面的web服务器建立持久连接。
我让客户成功完成tcp握手并获取html页面然而,它会打开一个新连接来下载图像。我做的不想要。
我了解在HTTP/1.1
中,没有必要发送keep-alive
标头,因为它是默认标头。为什么 Chrome 和 Firefox 仍会打开更多连接来下载单独的文件?
我没有发送Connection: close
标题,所以我认为他们没有为网页上的所有文件保持相同的连接,这很奇怪。
编辑:尝试使用实际的Keep-Alive: timeout=n, max = n
标头。仍然没有结果。
可能是什么问题?随意询问详情!
答案 0 :(得分:1)
持久连接不禁止使用并行连接,它们只允许为更多请求重用相同的连接。但是,对于持久连接,您只能在同一个连接中依次执行多个请求。这意味着为了获得大量资源,通常可以更快地并行打开多个连接,并使用这些连接中的每一个来获得多个资源,例如:使用4个并行连接获得12个图像(每个连接3个图像)比使用单个连接一个接一个地获取所有12个图像更快。