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

文章目录

  • 1. Web和HTTP
    • 1.1 HTTP概况
    • 1.2 持续连接和非持续连接
      • 1.2.1 往返时间
      • 问题:非持续连接HTTP的缺点
    • 1.3 HTTP报文格式
      • 1.3.1 请求报文
      • 1.3.2 响应报文
    • 1.4 用户与服务器的交互:cookie
    • 1.5 Web缓存
      • 问题:Web缓存器的优点

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页面的方式。
计算机网络(五)——应用层协议HTTP_第1张图片

  • 选择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响应报文。

计算机网络(五)——应用层协议HTTP_第2张图片
其中①②占用了一个RTT时间,③、2、3占用一个RTT时间。
因此总的响应时间为:2*RTT + HTML文件传输时间。

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

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

(2)持续连接的HTTP
定义

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

1.3 HTTP报文格式

HTTP报文有两种:请求报文和响应报文。

1.3.1 请求报文

计算机网络(五)——应用层协议HTTP_第3张图片
(1)通用格式
计算机网络(五)——应用层协议HTTP_第4张图片

  • 报文是用ASCⅡ码文本编写的。
  • 每行有一个回车和换行符结束。最后一行再附加一个回车换行符。

请求行

  • 方法字段
    包括GET, POST, HEAD, PUT, DELETE。绝大部分HTTP请求报文使用GET方法。
    ①当浏览器请求一个对象时,使用GET方法,在URL字段中带有请求对象的标识。
    ②当用户向搜索引擎提供搜索关键词时,使用POST报文和实体体。
  • URL字段
  • HTTP版本字段

首部行
常见的首部行如下:

  • Host:指明对象所在主机。其提供的信息是Web高速缓存所要求的。
  • Connection:close / keep-alive,标识非持续连接和持续连接。
  • User-agent:指明用户代理,即向服务器发送请求的浏览器类型。

实体体

  • 当使用POST方法字段时,用户像搜索引擎提供搜索关键词。实体体包含的就是用户在表单字段的输入值。

1.3.2 响应报文

计算机网络(五)——应用层协议HTTP_第5张图片
(1)通用格式
计算机网络(五)——应用层协议HTTP_第6张图片
状态行

  • HTTP版本字段
  • 状态码
  • 短语
    ①200 OK:请求成功,信息在返回的响应报文中。
    ②404 Not Found:被请求的文档不再服务器上。

首部行

  • Connection:close / keep-alive,标识非持续连接和持续连接。
  • Date:指示服务器产生并发送响应报文的日期和时间。(时间:服务器检索到对象,并插入报文,到最终发送的时间)
  • Sever:指示发送响应报文的服务器类型。
  • Content-type:指示实体对象类型。

实体体

  • 是响应报文的主要部分,包含了所请求对象本身。

问题:浏览器和服务器如何决定报文中的首部行呢?

  • 类型
  • 协议版本
  • 当前是否有一个缓存等。

1.4 用户与服务器的交互:cookie

HTTP服务器是无状态的,而一个Web站点通常希望能够识别用户。
(1)目的
限制用户访问或把内容与用户身份联系起来,对用户进行跟踪。

(2)4个组件

  • HTTP响应报文中的一个cookie首部行。
  • HTTP请求报文中的一个cookie首部行。
  • 在用户端系统中保留一个cookie文件,并由用户的浏览器进行管理。
  • Web站点的一个后端数据库。

计算机网络(五)——应用层协议HTTP_第7张图片
理解: Web站点能为访问服务器的用户创建唯一识别码ID,并在后端数据库中存储ID对应的内容信息。如此,在下一次相同ID进行访问时,Web服务器能为它提供相同的内容。

(3)问题
cookie被认为是对用户隐私的一种侵害。

1.5 Web缓存

(1)定义
Web缓存器也称代理服务器,它是能够代表初始服务器来满足HTTP请求的网络实体。

  • Web缓存器有自己的磁盘存储空间,并保存最近访问对象的副本。
  • 需要配置用户的浏览器,使用户的所有HTTP请求首先指向Web缓存器。

(2)客户通过Web缓存器请求对象的过程
假设用户与Web缓存器、Web缓存器与初始服务器之间已经建立起TCP连接。

  • 浏览器向Web缓存器发送一个HTTP请求。
  • Web缓存器检查是否存储了该对象的副本,若有,就向浏览器发送HTTP响应报文。
  • 若Web缓存器没有该对象,则向初始服务器发送HTTP请求报文。
  • 初始服务器收到请求后,向Web缓存器发送HTTP响应报文。
  • Web缓存器接收到对象后,在本地存储空间存储一份备份。然后向浏览器发送HTTP响应报文。

(3)举例
有两个网络,即机构网络和公共因特网的一部分。
计算机网络(五)——应用层协议HTTP_第8张图片

  • 机构网络是一个高速的局域网, 它的一台路由器与因特网上的一台路由器通过一条15Mbps的链路连接。
  • 假设对象的平均长 度为1Mb,从机构内的浏览器对这些初始服务器的平均访问速率为每秒15个请求。
  • 假设HTTP请求报文小到可以忽略。
  • 假设从因特网一侧的路由器转发HTTP请求报文开始,到它收到响应报文为止的平均时间为2秒。

总的响应时间: 局域网时延 + 接入时延 + 因特网时延

  • 局域网时延:局域网内部传输时延。局域网的流量强度为 15 × 1 M / 100 M = 0.15 15 \times 1M / 100M=0.15 15×1M/100M=0.15,因此局域网时延忽略不计。
  • 接入时延:路由器推入链路的时延。接入链路上的流量强度为 15 × 1 M / 15 M = 1 15 \times 1M / 15M =1 15×1M/15M=1,因此链路上的时延会很大且会无限增长。

因为接入链路的流量强度接近为1,需要采取方法缓解此问题:

  1. 增加接入链路的速率
    增加接入链路带宽为100M,此时链路的流量强度为 15 × 1 M / 100 M = 0.15 15 \times 1M / 100M=0.15 15×1M/100M=0.15,总的响应时延大约为2秒。
  2. 安装一个Web缓存器
    计算机网络(五)——应用层协议HTTP_第9张图片

在局域网内部增加一个Web缓存器,假设命中概率为0.4.则响应时延约为 0.6 ∗ 2 = 1.2 S 0.6*2=1.2S 0.62=1.2S

问题:Web缓存器的优点

  • 大大减少用户请求的访问时间。
  • 大大减少一个机构接入链路到因特网的通信量。
    从而不必急于增加带宽,降低了成本。

你可能感兴趣的:(计算机网络,网络协议,网络,http)