2024考研408-计算机网络 第六章-应用层学习笔记

news2024/11/19 2:06:30

文章目录

  • 前言
  • 一、网络应用模型
    • 1.1、认识应用层功能和特点
    • 1.2、网络应用层模型:
      • 1.2.1、客户/服务器(C/S)模型
      • 1.2.2、P2P模型
  • 二、DNS系统
    • 2.1、认识DNS与IP地址的关系
    • 2.2、DNS解析的大致流程
    • 2.3、域名的分类
    • 2.4、域名服务器的分类
    • 2.5、域名解析过程(递归、迭代)
  • 三、文件传输协议(FTP)
    • 3.1、认识FTP文件传输协议和TFTP协议
    • 3.2、FTP服务器和用户端
    • 3.3、FTP工作原理
      • 3.3.1、FTP的登录条件以及服务器端两大部分组成
      • 3.3.2、控制进程与数据传送进程传输
    • 3.4、FTP传输模式
  • 四、电子邮件
    • 4.1、电子邮件系统概述
      • 4.1.1、电子邮件的信息格式
      • 4.1.2、电子邮件系统概述:组成结构
    • 4.2、电子邮件的发送过程
    • 4.3、电子邮件协议
      • 4.3.1、简单邮件传送协议SMTP
        • 4.3.1.1、认识SMTP协议
        • 4.3.1.2、SMTP通信的三个阶段
      • 4.3.2、因特网邮件扩充MIME协议(解决SMTP只能传送7位ASCII码,工作原理)
      • 4.3.3、邮局协议POP3(接收协议)
      • 4.3.4、网际报文存取协议IMAP(接收协议)
    • 4.4、基于万维网的电子邮件(目前普遍使用)
    • 脑图时刻
  • 五、万维网和HTTP协议
    • 5.1、认识万维网www
    • 5.2、超文本传输协议HTTP
      • 5.2.1、认识HTTP请求协议以及详细流程
      • 5.2.2、HTTP的特点
      • 5.2.3、HTTP协议的两种连接方式(非持久、持久)
        • 非持久连接
        • 持久连接(包含流水线式、非流水线)
      • 5.3.4、HTTP协议的报文结构
        • 5.3.4.1、HTTP请求报文
        • 5.3.4.2、HTTP响应报文
        • HTTP请求报文与响应报文相同点与不同点

前言

目前正在备考24考研,现将24计算机王道的408学习整理的知识点进行汇总整理。

博主博客文章目录索引:博客目录索引(持续更新)

image-20230808162520372


一、网络应用模型

1.1、认识应用层功能和特点

应用层概述

image-20230808163009285

**为什么会有这样的层次?**传输层它可以为应用进程提供一种端到端之间的通信服务,但是不同的网络应用的应用进程中,还需要有不同的一些通信规则,此时就会在传输层协议之上再建立这样的一个应用层层次,并且规定了一些协议。

  • 简单说:应用层,是对于应用程序的通信来提供服务的。

应用层协议定义

1、应用进程交换的报文类型,请求还是响应?

2、各种报文类型的语法,如报文中的各个字段及其详细描述。

3、字段的语义,即包含在字段当中的信息含义。

4、进程合适、如何发送报文,以及对报文进行响应的规则。

应用层的功能

1、文件传输、访问和管理。

2、电子邮件。

3、虚拟终端。

4、查询服务和远程作业登录。

应用层的重要协议

  • FTP
  • SMTP、POP3
  • HTTP
  • DNS

1.2、网络应用层模型:

客户/服务器模型(Client/Server)

P2P模型(Peer-to-peer)


1.2.1、客户/服务器(C/S)模型

image-20230808164350359

服务器:提供计算服务的设备。

特点:

  1. 永久提供服务。
  2. 永久性访问地址/域名。

客户机:请求计算服务的主机。

特点:

  1. 与服务器通信,使用服务器提供的服务。
  2. 间歇性接入网络。
  3. 可能使用动态IP地址。(可能使用的是一个动态IP地址,也就是说这个客户IP地址是不限制的,这个服务器并不会平白无故的就给客户机发送一个消息,只会等地啊客户的请求)
  4. 不予其他客户机直接通信。

应用:Web、文件传输FTP、远程登录、电子邮件。


1.2.2、P2P模型

描述:整个网络当中的传输内容都不会保存到一个中心的服务器上,而是每一个节点都具有上传以及下载数据的功能。不存在永远在线的服务器,每个主机既可以提供服务,也可以请求服务

image-20230808164824511

特点

  1. 任意段系统/接地那之间可以直接通讯。
  2. 节点间歇性接入网络。(每一台都是主机,该主机可以随时进入网络,也可以随时退出)
  3. 节点可能改变IP地址。
  4. 可扩展性好。(可以应对大量主机涌入的情况,主机增多的同时,提供服务的也更多了)
  5. 网络健壮性强。(网络不容易瘫掉,不容易全部坏掉)

二、DNS系统

2.1、认识DNS与IP地址的关系

访问网站需要通过IP地址,但是IP地址都是由数字组成,不容易记住,此时就使用域名来进行映射相应的IP地址,我们只需要访问域名就能够去访问对应的网站系统。

域名如下,通过下面的域名就能够访问相应的网站服务

image-20230808170658020

最终我们可以通过DNS来进行访问IP地址

image-20230808170728707


2.2、DNS解析的大致流程

首先访问的是域名,接着通过DNS服务器可以将我们要访问域名的IP地址给浏览器,接种者浏览器就拿着这个IP地址进行访问请求与获取响应:

image-20230808170925610


2.3、域名的分类

域名

image-20230808171354983

逗号来进行分隔标号,其中www是一个 标号,cskaoyan、com都是一个标号,在标号中不能够超过63个字符,建议不超过12字符,不区分大小写,对于取名中可以使用-,但是其他的符号是不能够使用的。

对于域名自左向右,级别由低到高

image-20230808171342535

实际在域名的末尾还有一个.,这个.用来表示是

顶级域名:上图中最右边的com就是顶级域名。

常见的顶级域名如下:

image-20230808171531653

二级域名:主要包含类别域名、行镇区域域名

image-20230808171620555

重复情况说明:可以看到二级域名中有和顶级域名中重复的,实际在顶级域名中经常使用的是国际域名,接着二级域名使用类似于com、gov之类的。

注意:自己申请的域名一定需要是全球唯一的。

三级域名:例如pku.edu.cn其中的pku申请的三级域名。

域名系统的树图如下,是从根开始的,接着是顶级域名、二级域名、三级、四级:

image-20230808172020326


2.4、域名服务器的分类

域名服务器也分为好几类:分别为根域名服务器、 顶级域名服务器、权限域名服务器、本地域名服务器。

  • 其实只有上面三层,也就是说本地域名服务器不属于层次结构,但是其对域名系统非常重要。

本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。

  • 当一台主机发送一个DNS查询请求,首先就会先发给本地域名服务器,实际域名服务武器离主机的距离非常近。
  • 例如:每一个因特网服务的提供者,大学甚至是大学的一个系都可以拥有一个本地域名的服务器,这种域名服务器,有时候称之为默认域名服务器

对于根域名、顶级域名、权限域名服务器的树形图如下图所示:当本地域名访问不到的时候,此时就会区访问根域名,接着依次向下进行访问

image-20230808181743090

  • 可以看到在权限域名服务器当中包含有2级、3级权限域名服务器,它们是对等的关系。

根域名服务器:通常情况下对于根域名服务器并不能够直接将查询的域名转换为IP地址,它只知道接下来应该寻找哪一个顶级域名服务器。

  • **何时回查询根域名服务器?**当本地域名服务器中找不到相对应域名的IP地址时,会到根域名服务器中当中进行查询,在根域名服务器当中往往会根据域名的所属顶级域名来查询指定的顶级域名服务器IP地址,接着去相对应的顶级域名服务器当中再去查询。
  • 因特网上共有13个不同IP地址的根域名服务器,分别是a…m英文字母命名,其中第一个示例为:a.rootservers.net,在2012年,全世界已经在312个地点安装了根域名服务器,但是它们的分布并不合理,北美平均时300多万个网名分摊一个根域名服务器,亚洲则是2000多万网民分摊一个,此时就会导致亚洲上网速度低于北美。

顶级域名服务器:管理该顶级域名服务器注册的所有二级域名。

权限域名服务器:负责一个区的域名服务器。

示例:此时有一个服务器abc,由两个部门,每个部分都有几个小组

image-20230808181116547

当只有一个域名abc.com的时候,此时其域名是属于com域名服务器的下一个区(圈圈):

image-20230808181140169

当我们设置了y.abc.com域名服务器的时候,此时区域分为了两部分,分别对应y.abc.com(右部分)以及abc.com(左部分):

image-20230808181432107


2.5、域名解析过程(递归、迭代)

主要分为两种解析过程递归查询迭代查询

递归查询:这个过程是在不断的委托域名服务器来进行一个查询,主机—>本地域名服务器—>根域名服务器—>顶级域名服务器—>权限域名服务器,最终若是查询得到之后进行一步步返回给主机

image-20230808182559349

递归与迭代结合查询:首先主机向本地域名服务器来进行查询(递归,后面都是迭代),接着都是通过本地域名服务器来不断的向不同域名服务器发起请求,而不是委托的形式一级级递归向下,可以看到下图中本地域名服务器首先去查询了根域名服务器,根域名服务器返回了顶级域名服务器的地址,接着再次拿着顶级域名服务器地址去向他查询, 之后的过程都是如此都是由本地服务器来发起请求查询,迭代的方式。

image-20230808182614167

当通过DNS服务器查询得到域名的IP地址时,就会使用一个高速缓存来进行存储其映射关系。

对于高速缓存中会进行定时更新,不仅仅本地域名服务器当中有该缓存,我们的电脑主机本身也回有域名的缓存,所以查询流程:本机的域名缓存—>本地域名服务器—>根域名服务器—>顶级域名服务器—>…


三、文件传输协议(FTP)

3.1、认识FTP文件传输协议和TFTP协议

包含两个:文件传输协议FTP(File Transfer Protocol)、简单文件传输协议TFTP(Trivial File Transfer Protocol)

文件传输协议FTP:提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力,可以实现拷贝上传、下载的功能。

image-20230808190113269

简单文件传输协议TFTP:是一个很小且非常容易实践的一种文件传送协议,其优点是非常适用于UDP环境的,当需要将程序或者文件同时向许多机器下载的时候,经常会使用到这个TFTP,因为TFTP的代码块所占的内存比较小,对于一些较小的计算机或者某些特殊用途设备非常重要。


3.2、FTP服务器和用户端

FTP是基于客户/服务器(C/S)的协议

FTP服务器:依照FTP协议提供服务,进行文件传送的计算机。

FTP客户端:连接FTP服务器,遵循FTP协议与服务器传送文件的电脑。

过程:用户通过一个客户机程序连接到远程计算机上运行的服务器程序。

实战:我们首先在服务器中搭建FTP服务,接着我们在自己的windows电脑上可以通过ftp的协议来进行文件传输访问

image-20230808190431272


3.3、FTP工作原理

3.3.1、FTP的登录条件以及服务器端两大部分组成

登录条件:需要有ftp地址、用户名与密码。

  • 支持匿名登录:互联网中很大一部分FTP服务器被称为"匿名"(Anonymous)FTP服务器。这类服务器目的是向公众提供文件拷贝服务,不要求用户事先在该服务器上进行登录注册,也不用取得FTP服务的授权。
  • Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户,用户使用特殊的用户名"anonymous"登录FTP服务器,就可访问远程上主机上公开的文件。

FTP使用TCP来实现可靠传输

FTP常用端口为21

一个FTP服务器的进程可以同时为客户进程来提供服务,FTP服务器进程主要有两大部分组成

image-20230808191343386

第一部分主进程:用于负责接收新的请求。

  • 工作步骤:首先要打开服务器的端口号21,接着打开之后就能够使客户进程成功的连接上。之后就是等地啊客户进程发起一个连接请求,再进行数据的连接和传送。

第二部分从属进程:完成数据的传送,也就是有n个从属进程,每一个从属进程都可以处理单个的客户请求。

通俗易懂案例:例如有一个理发店它提供理发服务(FTP服务),那么里面有老板(主进程),当有客人来由需求时,那么老板就会进行分配员工(从进程)来进行相应的剪发、染发业务。


3.3.2、控制进程与数据传送进程传输

image-20230808192859139

其中服务器端的控制进程、数据传送进程都是属于从进程,并不是主进程。

两端的控制进程建立一个连接,是用于传输用户在发出的命令传输请求。

  • 简洁:传输请求。

两端的数据传送进程也建立一个TCP连接来进行文件数据传输。

  • 简洁:传输文件。

特点

1、控制连接始终打开,只要会话还没有结束,那么这个控制连接始终保持。

2、数据连接保持一会,若是文件传输完了,那么就可以关闭数据连接并且运行结束。

  • 对于控制、数据连接是分开的,端口号也各不相同,会说FTP的控制信息是带外传送的。

3、对于数据连接并不是都是20端口,一般多少端口号是与传输模式有关。

  • 主动方式:使用TCP 20端口。
    • 过程:当客户进程向服务器进程发出建立连接请求的时候,会寻找21端口,接着通过PORT命令给出客户端进程的数据端口,此时服务器就会自己选中20号端口来与客户进程提供的一个端口号码来建立数据传送连接。
  • 被动方式:由服务器和客户端自行协商决定,端口>1024。
    • 过程:客户进程会与服务端建立一个控制连接,接着客户端会给服务器端发送一个PASV命令,相当于请求询问服务端要给我一个什么端口号,此时服务器端在收到这个命令时,就会返回一个>1024的端口号码。

3.4、FTP传输模式

文本模式:ASCII模式,以文本序列传输数据。

Binary模式:以二进制序列传输数据。


四、电子邮件

4.1、电子邮件系统概述

image-20230808210800489

在以前我们与远方朋友同时都是通过写书信形式,随着科技发展,对于写书信变得越来越少,此时我们就诞生出了电子邮件,通过电子邮件,我们可以在有时间处理信息的时候通过打开邮箱查阅电子邮件即可。


4.1.1、电子邮件的信息格式

电子邮件由信封与内容组成,信封指的是发送方邮箱地址,首部则指的是接收方、主题,可以看到对于相应的头部信息最终组成有:发送方目标邮箱主题日期,对于主体信息则是邮件中的内容。

image-20230808210927453


4.1.2、电子邮件系统概述:组成结构

整个邮件系统包含:两个用户代理、两个邮件服务器、协议

image-20230808212106102

用户代理:用户和电子邮件系统的接口,通常情况下就是运行在电脑中的一个程序,也可以成为是电子邮件的客户端软件。

  • 提供四个功能:1、撰写。2、显示。3、处理。4、通信(自己电脑发送给邮件服务器)。

邮件服务器:作为服务器,24h待机,会有大容量的一个邮件信箱,容纳大量的信件。

  • 主要功能:1、发送&接收邮件。对于这个发送指的是从邮件服务器的发送到接收方的邮件服务器。2、向发件人报告邮件传送结果。

采用C/S模式,对于邮件服务器与服务器之间可以进行发送方与接收方的转变,如下图左边发送方中的SMTP协议在座位发送邮件方时,此时是客户端,若是当右边的邮件服务器发送邮件到左边服务器时,那么就使用SMTP服务器来进行接收。

协议:采用SMTP协议。对于收发都是采用这个协议完成。

  • 发送采用SMTP协议
  • 接收采用POP3协议或者IMAP。(如收件人向邮件服务器读取邮件就是采用的POP3服务

4.2、电子邮件的发送过程

发送过程如下

发送方法发送邮件是使用的SMTP协议,发送端邮件服务器接着去发送邮件到接收端邮件服务器时同样也是使用的SMTP协议

此时邮件会放到接收端邮件服务器的缓存当中,当接收方想要读取邮件时,此时用户方通过用户代理来进行使用POP3进行读取邮件。

image-20230808212319349


4.3、电子邮件协议

4.3.1、简单邮件传送协议SMTP

4.3.1.1、认识SMTP协议

SMTP规定了两个相互通信的SMTP进程之间应该如何进行交换信息

  • 包含有两种身份:负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器
  • 每个邮件服务器都可以作为客户端,也可以成为服务器端。

SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。

SMTP采用的是TCP连接,端口号是25,是C/S模式(客户端/服务器模式)


4.3.1.2、SMTP通信的三个阶段

image-20230808212724091

1、连接建立

①发送方首先先写邮件,如果这个邮件写好那么就会发送给发送方的邮件服务器,接着放到这个邮件服务器的邮件缓存中。

②SMTP客户(现在的发送方邮件服务器)每隔一段时间就会对这个邮件缓存里面的邮件进行一个扫描,若是发现有邮件,那么就会使用SMTP协议通过25端口来与接收方的这个邮件服务器的SMTP服务器建立一个TCP连接。

  • 当TCP连接建立好之后,邮件服务器会发出一个应答信息,220 Service ready,告诉发送方现在已经准备接收了服务就绪。

③此时SMTP客户就会向SMTP服务器来发送一个hello的命令,并且会附上发送方的主机名,此时SMTP服务器若是有能力接收邮件,那么就会返回一个应答:250 OK,表示目前可以接受邮件;若是返回了421 service not available,那么表示服务不可用。

image-20230808213333040

2、邮件发送

首先客户端邮件服务器会告知服务器邮件服务器发送方信息了,此时SMTP服务器就会给出应答250表示准备好,451表示还没有。

image-20230808213528943

当客户端邮件服务器收到250 ok以后,会发送一个或者多个RCPT命令,其是收件人的缩写,若是收件人地址正确,那么会返回250 OK,若是返回了550,那么表示是没有这个用户。

image-20230808213715567

接着客户端服务器就要开始传输数据了,若是服务器端返回354…的命令,那么SMTP服务器表示同意传输。

image-20230808213833441

当传输邮件内容完后成,服务器端会返回一个250 OK,那么此时就表示传输结束。

3、连接释放

邮件发完之后,SMTP客户会发送QUIT命令,SMTP服务器返回"221",表示同意释放TCP连接。


4.3.2、因特网邮件扩充MIME协议(解决SMTP只能传送7位ASCII码,工作原理)

SMTP的缺点

1、SMTP不能够传送可执行文件或者其他二进制对象。

2、SMTP仅限于传送7位ASCII码,不能够传送其他非英语国家的文字(如汉语、日语)。

3、SMTP服务器会拒绝超过一定长度的邮件。

对于这个长度有限制的问题,此时可以采用通用因特网邮件扩充MIME来解决。

  • 可以将MIME理解为一个协议,也可以理解为SMTP协议在上面进行扩充的一种手段。

好处:使电子邮件系统可以支持声音、图像、视频、多种国家语言等等,可以让传输的内容变得更加丰富多彩,种类更加多种多样。

工作原理
就是可以通过将用户的传输文件使用MIME协议来转为7位ASCII码,接着在服务器端我们同样将7位ASCII码来转为MIME内容。

image-20230808214448963

说明:对于MIME这种多用途的互联网邮件扩展,实际是一个互联网的标准,最早应用于这个电子邮件系统,目前逐步应用在浏览器,服务器会将他们发送的一些多媒体数据类型告诉这个浏览器(通过说明这个多媒体数据的MIME类型),此时浏览器就能够直到接收到的消息哪些是MP3、MP4文件还是JPG。


4.3.3、邮局协议POP3(接收协议)

我们目前使用的第三版的POP协议

POP3:采用TCP连接,端口号是110,是C/S架构。

  • 提供服务的是接收端服务器程序,其作为POP3的服务器,对于用户代理就是接收方可以作为POP3的用户。

image-20230808215126560

场景:在最后一个环节,用户通过使用POP3来从接收端的邮件服务器当中读取邮件,最终交付给用户代理,此时接收方就可以查阅这个邮件了。

当接收方将邮件从接收端的邮件服务器中读取出来之后,处理方式有两种:

  • 第一种:下载并保留(在服务器)
  • 第二种:下载并删除

可以看到对于第二种方式下载并删除对于我们是十分不方便的,此时POP3在之后做了一些功能扩充,由于邮件协议POP3时一个非常简单,功能有限的一种邮件读取协议,此时就有有一种新的读取邮件的协议就是IMAP协议


4.3.4、网际报文存取协议IMAP(接收协议)

介绍:IMCP协议比POP协议复杂, 当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。

场景举例:点开了一个邮件之后,其中若是有视频,并不会立马下载,而是选择先看正文,接着在网络条件允许的情况下,再下载这个附件,此时就会给用户省下一部分的流量。

同样也是在下图中的接收阶段采用IMAP协议,已画圈:

image-20230808215803664


4.4、基于万维网的电子邮件(目前普遍使用)

1、更加便捷,方便。

  • 目前我们可以直接通过浏览器中访问到对应邮件网址,如163.com或者直接进入QQ的邮件管理台,我们可以直接进行编辑电子邮件发送出去。

2、对于接收方、发送方的邮件服务器可以是不同企业的邮件服务器。

image-20230808215956711

3、在协议的使用上,从用户代理到发送方邮件服务器的过程,使用HTTP协议,对于发送方的邮件服务器到接收方的邮件服务器,还是使用的SMTP协议。对于读取文件这里就不是POP3,而是使用的HTTP协议。

  • 只要是与用户代理接触的两个环节,都是使用的HTTP协议,但是对于中间发送的环节则是采用的SMTP协议

脑图时刻

image-20230808220218309


五、万维网和HTTP协议

5.1、认识万维网www

万维网www(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。

  • 将全球的所有网站,统一在一起称为万维网。

如何获取到资源?

  • 通过使用统一资源定位符URL来进行唯一标识资源(文字、视频、音频…)。

URL一般形式<协议>://<主机>:<端口>/<路径>

  • 协议包含有:http、ftp。
  • 主机:域名、IP地址。
  • 端口、路径有时候可以进行省略。

如何定位到资源?

  • 用户通过点击超链接(或者超为本文、超媒体等)(http://www.baidu.com)来获取资源,这些资源通过超文本传输协议(HTTP)来传送给使用者。

万维网采用客户/服务器方式工作,用户使用的浏览器就是万维网客户端程序,万维网文档所驻留在主机运行服务器程序当中。

万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。

综上,主要使用URLHTML及HTTP来进行解决大部分问题所使用的规定。


5.2、超文本传输协议HTTP

5.2.1、认识HTTP请求协议以及详细流程

HTTP协议定义了**浏览器(万维网客户进程)**怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

HTTP协议:规定你如何上网以及这个服务器如何提供你请求资源的这样一个过程。

用户请求的整个流程

image-20230808235426682

首先,一个服务器进程监听TCP的80端口,对于用户来说浏览页面的方法有两种

1、输入URL。

2、点击超链接。

此时我们进行的具体过程如下

1、浏览器分析URL。

2、浏览器向DNS请求解析IP地址。

3、DNS解析出IP地址。

4、浏览器与服务器建立TCP连接。

5、浏览器发出取文件命令(图中的HTTP请求报文)

6、服务器响应。

7、释放TCP连接。

8、浏览器显示。

:浏览器可以只下载文本部分。对于一些音频、视频等其他资源,我们可以选择进行下载。


5.2.2、HTTP的特点

HTTP协议的特点:

HTTP协议是无状态的,但是在实际工作中,一些万维网站点常常希望能够识别用户,通常采用如Cookie等技术。

Cookie:存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如"123456")的访问记录。

  • 使用Cookie的功能有:提供个性化服务。

HTTP采用TCP作为运输层协议时,由于HTTP协议本身是无连接的(通信双方在交换HTTP报文之前并不需要先建立HTTP连接)

HTTP的连接方式包含有持久化连接(keep-alive)、非持久化连接(close)。

  • 持久化连接(keep-alive):非流水线、流水线。

5.2.3、HTTP协议的两种连接方式(非持久、持久)

非持久连接

万维网客户每发送一个HTTP请求,都会有一次TCP连接:

image-20230809000408706

缺陷:由于每次HTTP请求都需要建立TCP连接,此时时间消耗会特别长。


持久连接(包含流水线式、非流水线)

特点:在服务器发送响应之后,在一段时间内仍然保持着这条连接,这样可以使得客户也就是这个浏览器和服务器,可以继续在这条连接上传送后续的一些HTTP请求以及响应报文。

也就是当发送第一个请求时需要首先建立TCP连接,之后请求则可以通过第一次请求的连接直接发送请求报文:

image-20230809000658849

对于持久化连接中包含有两种方式流水线式非流水线

对于上图中就是非流水线的发送,你可以看到在发送第二个请求时首先需要需要等待第一个请求收到响应之后才能够继续发起,这种请求方式都是类似于同步方式:

image-20230809001010590

流水线式就类似于GBR、SR协议,可以进行连续发送,如当前有多个请求要进行发送,那么此时就会连续的发出多个请求,当服务器收到请求后,会依次返回相应的请求,如下图红色自己画的多条线:

  • 类似于滑动窗口学习时一个窗口中多个报文会同时发送。
  • 特点:采用流水线方式,客户访问所有的对象,只需要花费大概一个RTT时间,可以使得这个TCP连接它的空闲时间比较少(由于一个TCP连接会有时间限制,若是之前非流水线一个请求发出需要等待之前的请求响应,那么不久延长了等待时间),不需要等待太久。

image-20230809001337569


5.3.4、HTTP协议的报文结构

在HTTP中包含有两种报文:HTTP请求报文HTTP响应报文

  • HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串。

image-20230809001443647


5.3.4.1、HTTP请求报文

image-20230809002318983

请求行

  • 方法:增、删、改、查。
  • URL:资源定位符。
  • 版本:什么版本的HTTP协议。
  • 回车换行:必备,请求行结束,首部行的开始。

首部行:说明浏览器、服务器和报文主体的一些信息。在每一行都有首部字段名和值,末尾都有一个换行符,首部中可以有很多行,也可以不用。

  • 在首部行结束之后也会有一个换行符。

实体报文:在请求报文中通常不使用

对于请求报文的一个示例

image-20230809002528054


5.3.4.2、HTTP响应报文

image-20230809002348257

版本:HTTP版本。

状态码:3个数字构成,一共有五种类型,一共有33种状态码,下图就是五种类型,右边是具体的一个状态码。

image-20230809002428207

短语:就是对应状态码的响应描述。


HTTP请求报文与响应报文相同点与不同点

image-20230809002553380

相同点

1、都是包含三个部分:首行、首部行、实体主体。

2、对于首部行、实体主体都是完全一致的。

不同点

1、首行的前三个字段都不相同,对于请求报文则是方法、URL、版本;对于响应报文则是版本、状态码、短语

2、实体主体中对于请求报文不经常使用;对于响应报文会使用。


整理者:长路 时间:2023.8.8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/851900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux (platform driver)平台设备驱动匹配方法

Table of Contents 一、匹配函数platform_match 1.1、设备树匹配方法 1.2、id_table匹配方法 1.3、dev-name和platform_driver->drv->name匹配方法 一、匹配函数platform_match 平台设备驱动分为设备层和驱动层&#xff0c;每当有新的设备或者新的设备驱动注册时都要…

webshell链接工具-antSword(中国蚁剑)

中国蚁剑是一款开源的跨平台网站管理工具&#xff0c;它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。 任何人不得将其用于非法用途以及盈利等目的&#xff0c;否则后果自行承担并将追究其相关责任&#xff01; 项目地址&#xff1a; https://github.c…

GitOps 与 DevOps:了解关键差异,为企业做出最佳选择

在软件开发领域&#xff0c;GitOps 和 DevOps 是加强协作和实现软件交付流程自动化的重要技术。虽然这两种模式都旨在提高软件开发生命周期的效率&#xff0c;但它们的核心原则和实施方式却各不相同。 本篇文章将帮助您了解 GitOps 和 DevOps 之间的差异、它们的工作流程&am…

IBM Spectrum LSF 负载共享工具基本介绍和使用

IBM Spectrum LSF 负载共享工具基本介绍和使用 LSF&#xff08;Load Sharing Facility&#xff09;是IBM旗下的一款分布式集群管理系统软件&#xff0c;负责计算资源的管理和批处理作业的调度。它给用户提供统一的集群资源访问接口&#xff0c;让用户透明地访问整个集群资源。…

Python-OpenCV中的图像处理-颜色空间转换

Python-OpenCV中的图像处理-颜色空间转换 颜色空间转换获取HSV的值 颜色空间转换 在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会 发现我们经常用到的也就两种&#xff1a; BGR G r a y 和 B G R Gray 和 BGR Gray和BGRHSV。 注意&#xff1a;在 OpenCV 的…

linux基于信号量实现多线程生产者消费者模型

基于信号量实现多线程生产者消费者模型。 编程思路&#xff1a; 1.食物的初始化编号为100&#xff1a; beginnum 100&#xff1b; 2.仓库有5个空碗&#xff0c;最多保存5个食物&#xff1a;queue[5]&#xff1b; 3.初始化空碗的数量为5&#xff0c;食物的数量为0&#xff1a…

中级课程——XSS

文章目录 介绍挖掘思路分类反射型存储型dom类型 介绍 挖掘思路 注入点&#xff1a;各种输入框 测试代码&#xff08;poc&#xff09;&#xff1a;js语句 分类 反射型 存储型 dom类型

势不可挡!新能源车型L2搭载率破50%,TOP20品牌数据出炉

中国乘用车市场正在走出去年的阴霾。 机构公开数据显示&#xff0c;2023年上半年中国乘用车市场产量1100.77万辆&#xff0c;同比增长7.5%&#xff1b;终端销量959.08万辆&#xff0c;同比增长4.7%&#xff1b;乘用车出口152.36万辆&#xff0c;同比增长87.6%。 在实际交付量…

[HDLBits] Exams/m2014 q4g

Implement the following circuit: module top_module (input in1,input in2,input in3,output out);assign out (!(in1^in2))^in3; endmodule

Java EE 突击 9 - Spring Boot 日志文件

Spring Boot 日志文件 学习目标一 . 日志有什么用1.1 日志格式说明 二 . 自定义日志打印2.1 得到日志对象2.2 使用日志对象提供的方法 , 输出自定义的日志内容2.3 日志的级别 三 . 日志持久化3.1 在配置文件里面设置日志名称3.2 设置日志的保存目录 四 . 日志级别的设置五 . 简…

【Linux 网络】NAT技术——缓解IPv4地址不足

NAT技术 NAT 技术背景NAT IP转换过程NAPTNAT 技术的缺陷 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术&#xff0c;是解决IP地址不足的主要手段&#xff0c;并且能够有效地避免来自网络外部的攻击&#xff0c;隐藏并保护网络内部的计算…

爬虫程序中使用爬虫ip的优势

作为一名爬虫技术员&#xff0c;我发现在爬虫程序中使用代理IP可以提升爬取效率和匿名性。今天&#xff0c;我就来详细讲解一下代理IP在爬虫程序中的工作原理及应用。 首先&#xff0c;我们来了解一下代理IP在爬虫程序中的工作原理。当我们使用爬虫程序进行数据采集时&#xf…

【雕爷学编程】Arduino动手做(200)---WS2812B幻彩LED灯带

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

Android 开发者选项日志存储路径

android开发者选项中存在两个item是关于系统日志的。 1.日志记录器缓冲区大小 2.在设备上永久存储日志记录器数据 一个是用来设置缓冲区大小&#xff0c;一个是用来日志存储开关及过滤。 通过分析 system/core/logcat/logcatd.rc mkdir /data/misc/logd 0770 logd log 日志的…

AWS——03篇(AWS之Amazon S3(云中可扩展存储)-01入门)

AWS——03篇&#xff08;AWS之Amazon S3&#xff08;云中可扩展存储&#xff09;-01入门&#xff09; 1. 前言2. 关于 Amazon S32.1 介绍2.1.1 简述2.1.2 详细介绍 2.2 Amazon S3 好处和功能2.3 3. 创建S3存储桶3.1 创建存储桶3.2 修改访问权限 4. 简单实用4.1 上传图片文件4.2…

keil5 watch数据一直为0不显示

调试遇到一个问题&#xff0c;以为是指针里面的数据&#xff0c;数组显示不出来&#xff0c;结果是main函数里面有个1s的延时&#xff0c;我的理解是watch刷新太慢了&#xff0c;一直掉进延时里面&#xff0c;所以我们把延时改到10ms就行了。

100ASK百问网 全志D1s/T113-s3开发板 适配ov5640教程

本实验采用百问网的100ASK_T113-PRO Base V1.1 &#xff0c; D1s也可以参考进行修改并适配。 本实验所需的文件&#xff08;含tina根文件系统、SD镜像、设备树、内核配置文件&#xff09;供大家对比参考&#xff1a;source.zip 1.硬件配置 查看百问网提供的T113开发板原理图1…

Vue2核心完整笔记

文章目录 [TOC](文章目录)前言1. vue2基础知识和原理1.1 初识Vue 和 Vue简介1.2 模板语法1.3 数据绑定1.4 el与data的两种写法1.5 Vue中的MVVM1.6 数据代理1.7 事件处理1.8 键盘事件1.9 计算属性1.10 监视属性1.11 绑定样式class样式style样式 1.12 条件渲染v-ifv-show 1.13 列…

echarts 图表饼状图 实例

效果图&#xff1a; 代码&#xff1a; draw(data1, data2) {var option {// backgroundColor: rgb(10,36,68),color: [#F19611 ,#0095FE,#162D86,#0096FF,#05F8FF,#FFD985,#FACDAA,#F4A49E,#EE7B91,#E85285,#BE408C,#942D93,#171E6D,#1E3388,#27539B,#3073AE,#3993C2,#42B3D…

比较IP代理与路由器获取IP地址的三大差异

在今天的文章中&#xff0c;我们将与大家一起探讨IP代理与路由器获取IP地址的差异。这两种方式在获取IP地址上有一些区别&#xff0c;而这些区别会对我们的网络使用体验产生影响。今天我们深入分析并提供一些实际的例子与操作经验。 稳定性差异&#xff1a; 通过路由器获取IP地…