Http请求和TCP连接

Http请求和TCP连接,http,networking,https,tcp,ip,Http,Networking,Https,Tcp,Ip,到目前为止,我的理解是,当有人试图访问网页时,会发生以下情况: HTTP请求已形成 新插座已打开 发送HTTP请求 如果一切正常,web浏览器将接受HTTP响应并用收到的HTML构建DOM树。如果缺少任何资源,则需要分别为每个资源发出新的HTTP请求 每个HTTP请求都需要打开另一个套接字(与服务器建立新的虚拟连接) Q:效率如何?我知道这些资源可能位于另一台主机上(这确实需要新的TCP连接),但如果它们都位于同一台主机上,在单个TCP连接中传输所有数据不是更有效吗 每个HTTP请求都需要打开另

到目前为止,我的理解是,当有人试图访问网页时,会发生以下情况:

  • HTTP请求已形成
  • 新插座已打开
  • 发送HTTP请求
  • 如果一切正常,web浏览器将接受HTTP响应并用收到的HTML构建DOM树。如果缺少任何资源,则需要分别为每个资源发出新的HTTP请求

    每个HTTP请求都需要打开另一个套接字(与服务器建立新的虚拟连接)

    Q:效率如何?我知道这些资源可能位于另一台主机上(这确实需要新的TCP连接),但如果它们都位于同一台主机上,在单个TCP连接中传输所有数据不是更有效吗

    每个HTTP请求都需要打开另一个套接字(与服务器建立新的虚拟连接)

    不,没有。HTTP 1.1默认使用持久连接,而HTTP 1.0在拥有非官方的
    连接:keep-alive
    头之前使用了持久连接,该头在近二十年前完成了同样的任务

    问:效率如何

    事实并非如此,这就是为什么它没有发生

    我知道这些资源可能位于另一台主机上(这确实需要新的TCP连接),但如果它们都位于同一台主机上,在单个TCP连接中传输所有数据不是更有效吗

    是的,这就是默认情况下发生的情况

    每个HTTP请求都需要打开另一个套接字(与服务器建立新的虚拟连接)

    不,没有。HTTP 1.1默认使用持久连接,而HTTP 1.0在拥有非官方的
    连接:keep-alive
    头之前使用了持久连接,该头在近二十年前完成了同样的任务

    问:效率如何

    事实并非如此,这就是为什么它没有发生

    我知道这些资源可能位于另一台主机上(这确实需要新的TCP连接),但如果它们都位于同一台主机上,在单个TCP连接中传输所有数据不是更有效吗

    是的,这就是默认情况下发生的情况