计算机网络(五)——应用层协议HTTP

1. Web和HTTP

1.1 HTTP概况

(1)定义
Web的应用层协议是超文本传输协议(HTTP)。

  • HTTP由一个客户程序和一个服务器程序实现。
  • HTTP定义了报文的结构以及客户和服务器进行报文交换的方式。

Web页面
Web页面是由对象组成,一个对象只是一个文件。

  • Web页面包含HTML基本文件和其他对象。
    ①HTML基本文件通过对象的URL地址引用页面中的其他对象。
    ②URL由主机名和路径名组成。

Web浏览器实现HTTP的客户端,Web服务器实现HTTP的服务端,用于存储Web对象。

(2)功能
HTTP定义了Web客户项Web服务器请求Web页面的方式。
在这里插入图片描述

  • 选择TCP作为它的运输层协议
    ①客户向套接字发送HTTP请求报文,并从它的套接字接收HTTP响应报文。
    ②服务器从它的套接字接收HTTP请求报文,向套接字发送HTTP响应报文。
  • HTTP是无响应协议
    服务器向客户发送被请求文件,但不会存储任何关于客户的信息。(即及时在很短时间内,客户多次向服务器发出请求,服务器仍能回复客户端所请求文件)

1.2 持续连接和非持续连接

  • 持续连接:所有请求和响应经相同TCP连接发送。
  • 非持续连接:每个请求和响应经单独的TCP连接发送。

(1)非持续连接的HPPT
过程

  1. HTTP客户向服务器www.someSchool.edu发送一个TCP连接请求。
  2. HTTP服务器向客户发送TCP连接确认和响应。
  3. HTTP客户向服务器发送返回确认,并经套接字发送HTTP请求报文,报文包含路径名/someDepartment/abc.index。
  4. HTTP服务器从套接字接收到请求报文,从存储器中检索出对象,在HTTP响应报文中封装对象,并通过套接字向客户发送响应报文。
  5. 客户端接收到响应报文,TCP连接关闭。
    (三次握手 + HTTP请求和响应报文的发送和接收)

特点

  • 每个TCP连接在服务器发送一个对象后关闭。
    (每个TCP连接只传输一个请求报文和一个响应报文)
  • 每个对象经受两倍的RTT交付时间。

1.2.1 往返时间

定义
往返时间(RTT):一个短报文从客户到服务器再返回客户端所花费的时间。

接收一个HTML文件的时间估算

  1. 客户和Web服务器之间发起一个TCP连接,这涉及三次握手过程:
    ①客户向服务器发送小的TCP报文段。
    ②服务器用小的TCP报文段做出确定和响应。
    ③客户向服务器返回确认
  2. 客户向Web服务器发送HTTP请求报文。
  3. 服务器从套接字接收到请求报文,并向客户发送HTTP响应报文。

在这里插入图片描述
其中①②占用了一个RTT时间,③、2、3占用一个RTT时间。
因此总的响应时间为:2*RTT + HTML文件传输时间。

问题:非持续连接HTTP的缺点

  • 对Web服务器带来严重负担。
    必须为每个对象建立和维护一个全新的连接。对于每个这样的连接,客户端和服务器都要分配TCP缓冲区和保持TCP变量。
  • 每个对象经受两倍的RTT时间。
    三次握手+HTTP请求响应。

(2)持续连接的HTTP
定义

  • 服务器在发送响应后保持TCP连接打开。
  • 在相同的客户和服务器之间,后续请求和响应报文能通过相同的连接进行传送。
  • 如果一条连接经过一定时间间隔仍未被使用,HTTP服务器就得关闭连接。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冠long馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值