【发布时间】:2016-02-14 13:58:42
【问题描述】:
当我从浏览器读取请求时,HTTP 连接标头始终带有 Keep-Alive 值,因此我在向流写入响应后保持连接套接字描述符打开。我听说这会导致客户端(浏览器)将重用相同的连接来发送下一个请求。
但是客户端发送另一个connect()请求来创建一个新的连接来发送下一个请求。
为什么浏览器会在每个标头中发送keep-alive 选项?
【问题讨论】:
-
确保你的所有响应要么有
Content-Length:,要么使用分块编码,这样客户端就可以知道响应何时完成,而无需等待你关闭连接。 -
客户端可以打开多个连接,以便他们可以同时下载多个项目。例如,当它正在下载主 HTML 页面时,如果它看到
<img>,它将同时打开另一个连接来下载它,而不是等到它下载完所有 HTML。
标签: c http server connection keep-alive