CN-HTTP连接类型

Molaters Lv5
[[2023-09-17]] # HTTP连接

非持久性连接(Nopersistent HTTP)

  • 每个TCP连接最多允许传输一个`非持久性连接

持久性连接(Persitent HTTP)

  • 每个TCP连接允许传输多个对象
  • HTTP 1.1 版本默认使用持久性连接

非持久性连接

Pasted image 20230917102927
Pasted image 20230917102939

www.someSchool.edu/someDepartment/home.index $\rightarrow$ (包含文本和指向10个jepg图片的链接)

1
2
3
4
5
6
7
graph TB
1A("1a:HTTP客户端向地址为\nwww.someSchool.edu/someDepartment/home.index\n的服务器上的HTTP服务器进程(端口80)\n发起TCP连接请求")-->1B("1b:HTTP服务器在端口80等待TCP连接请求,接受链接并通知客户端")
1B--> 2("2:HTTP客户端将HTTP请求消息(包含URL地址)\n通过TCP链接的套接字发出,\n消息中所含有的URL表明客户端需要对象\n someDepartment/home.index")
2-->3("3:HTTP服务器收到请求消息,\n 解析,产生包含所需要对象的相应消息,\n并通过套接字发送给客户端")
3-->4("4:HTTO服务器关闭TCP连接")
4-->5("5:HTTP客户端收到响应消息,\n解析html文件,发现有10个指向jepg对象的超链接")
6("对每个jepg对象重复步骤1-5")

响应时间分析和建模

RTT(Round Trip Time)

  • 从客户端发送一个很小的数组包到服务器并返回所经历的时间

响应时间(Response time)

  • 发起、建立TCP连接:一个RTT

  • 发送HTTP请求消息到HTTP响应消息的前几个字节到达:一个RTT

  • 响应消息中所含有的文件/对象传输时间

  • Total = 2RTT + 文件发送时间

    image-20230911205654485

持久性HTTP

非持久性连接的问题

  • 每个对象都需要2个RTT

  • 操作系统需要为每个TCP连接开销资源(overhead)

  • 浏览器会怎么做:

    • 打开多个并行的TCP连接以获取网页所需要的对象
    • 给服务器端造成什么影响?
      • 会造成很大的负担(是有代价的,TCP很宝贵

持久性连接

  • 发送响应后,服务器保持TCP连接的打开

  • 后续的HTTP消息可以用通过这个直接连接发送

无流水的持久性连接

  • 客户端只有收到前一个响应之后才发送新的请求

  • 每个被应用对象耗时1RTT

带有流水机制的持续性连接

  • HTTP 1.1的默认选项
  • 客户端只要遇到一个应用对象就会尽快发出请求
  • 理想情况下,收到所有应用对象只需要耗时大约一个RTT
    [[CourseNotes/计算机网络/CN-No.5 计算机网络的体系结构]]
  • 标题: CN-HTTP连接类型
  • 作者: Molaters
  • 创建于 : 2023-11-24 10:14:50
  • 更新于 : 2023-10-12 17:05:34
  • 链接: https://molaters.github.io/2023/11/24/计算机网络/CN-HTTP连接类型/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论