持久连接根本不起作用
Persistent connection not working at all
我正在用 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 个图像更快。
我正在用 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 个图像更快。