• 一个TCP 连接可以发多少个 HTTP 请求呢?


    一个 TCP 连接可以发多少个 HTTP 请求呢?

    1. 打开网址的过程

    1. DNS服务器请求解析(检查host文件)
    2. 建立TCP连接,三次握手
    3. 发送HTTP请求,请求行、请求头部、空行和请求数据4部分组
    4. 服务器返回,服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成
    5. 主动释放or延时释放
    6. 浏览器进行渲染

    2. 问题:

    1. 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?

      HTTP/1.0中,一个HTTP响应后会断开TCP连接

      HTTP/1.1中默认情况下建立 TCP 连接不会断开,只有在请求报头中声明 Connection: close 才会在请求完成后关闭连接。

    2. 一个 TCP 连接可以对应几个 HTTP 请求?

      在维持连接的情况下,一个 TCP 连接是可以发送多个 HTTP 请求的。

    3. 一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个请求,再三个响应一起接收)?

      HTTP/1.1 存在一个问题,单个 TCP 连接在同一时刻只能处理一个请求,意思是说:两个请求的生命周期不能重叠,任意两个 HTTP 请求从开始到结束的时间在同一个 TCP 连接里不能重叠。

      1.1通过维持长连接或者多个连接解决问题。

      在 HTTP2 中由于 Multiplexing 特点的存在,多个 HTTP 请求可以在同一个 TCP 连接中并行进行。

    4. 为什么有的时候刷新页面不需要重新建立 SSL 连接?

      TCP 连接有的时候会被浏览器和服务端维持一段时间。TCP 不需要重新建立,SSL 自然也会用之前的。

    5. 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?

      有。Chrome 最多允许对同一个 Host 建立六个 TCP 连接。不同的浏览器有一些区别。

  • 相关阅读:
    MYSQL函数 Cast和convert的用法详解
    MySQL5.7.9(GA)的安装
    TMS Scripter importtool的使用
    MySQL 高可用架构在业务层面的应用分析
    UNIGUI:How to redirect and close session?
    HTML URL 编码:请参阅:http://www.w3school.com.cn/tags/html_ref_urlencode.html
    js 解决函数加载的问题
    必备函数
    Action 分离
    JavaScript.Remove
  • 原文地址:https://www.cnblogs.com/punnpkin/p/13583368.html
Copyright © 2020-2023  润新知