上下文:我正在制作网络服务器
示例:我们假设有一个文件 index.htm ,其中包含一些包含图片的标记。
首先,客户端向服务器发送 index.htm 的请求。然后服务器以标记响应。
问题1
在客户端发送第二个图像请求之前,服务器是否将所有标记发送到客户端?
OR
在从服务器收到所有标记之前,客户端是否发送了图像请求?
问题2
如果在进一步请求之前收到所有标记,是否关闭了连接并为图像打开了新连接?
答案 0 :(得分:1)
在客户端发送第二个图像请求之前,服务器是否将所有标记发送到客户端?
是。在完全接收并成功解析初始HTML文档之后,客户端将仅启动对HTML中提到的资源的请求。
这就是为什么性能意味着有必要尽快提供完整的DOM。
如果在进一步请求之前收到所有标记,是否关闭了连接并为图像打开了新连接?
这取决于。 HTTP支持持久连接,但浏览器也可以尝试打开多个同时连接。
答案 1 :(得分:0)
客户端(浏览器)需要获取HTML文档以确定接下来要加载的文件。这种设计有很多原因。我可以想到一些,但其他人可能会对此有所了解。
注意:某些Web服务器会处理JavaScript以进行文件预处理。并且有一些基于JavaScript的Web服务器体系结构(最重要的是,node.js)。但这与你的问题不同。
你的第二个问题更复杂。更高版本的HTTP允许为多个GET或POST事务重用相同的连接。我不是这里的专家。请在这里阅读:
http://en.wikipedia.org/wiki/HTTP_persistent_connection
希望有所帮助。