2024考研408-计算机网络 第六章-应用层学习笔记
文章目录
- 前言
- 一、网络应用模型
- 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学习整理的知识点进行汇总整理。
博主博客文章目录索引:博客目录索引(持续更新)
一、网络应用模型
1.1、认识应用层功能和特点
应用层概述:
**为什么会有这样的层次?**传输层它可以为应用进程提供一种端到端之间的通信服务,但是不同的网络应用的应用进程中,还需要有不同的一些通信规则,此时就会在传输层协议之上再建立这样的一个应用层层次,并且规定了一些协议。
- 简单说:应用层,是对于应用程序的通信来提供服务的。
应用层协议定义:
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)模型
服务器:提供计算服务的设备。
特点:
- 永久提供服务。
- 永久性访问地址/域名。
客户机:请求计算服务的主机。
特点:
- 与服务器通信,使用服务器提供的服务。
- 间歇性接入网络。
- 可能使用动态IP地址。(可能使用的是一个动态IP地址,也就是说这个客户IP地址是不限制的,这个服务器并不会平白无故的就给客户机发送一个消息,只会等地啊客户的请求)
- 不予其他客户机直接通信。
应用:Web、文件传输FTP、远程登录、电子邮件。
1.2.2、P2P模型
描述:整个网络当中的传输内容都不会保存到一个中心的服务器上,而是每一个节点都具有上传以及下载数据的功能。不存在永远在线的服务器,每个主机既可以提供服务,也可以请求服务。
特点:
- 任意段系统/接地那之间可以直接通讯。
- 节点间歇性接入网络。(每一台都是主机,该主机可以随时进入网络,也可以随时退出)
- 节点可能改变IP地址。
- 可扩展性好。(可以应对大量主机涌入的情况,主机增多的同时,提供服务的也更多了)
- 网络健壮性强。(网络不容易瘫掉,不容易全部坏掉)
二、DNS系统
2.1、认识DNS与IP地址的关系
访问网站需要通过IP地址,但是IP地址都是由数字组成,不容易记住,此时就使用域名来进行映射相应的IP地址,我们只需要访问域名就能够去访问对应的网站系统。
域名如下,通过下面的域名就能够访问相应的网站服务:
最终我们可以通过DNS来进行访问IP地址:
2.2、DNS解析的大致流程
首先访问的是域名,接着通过DNS服务器可以将我们要访问域名的IP地址给浏览器,接种者浏览器就拿着这个IP地址进行访问请求与获取响应:
2.3、域名的分类
域名:
逗号
来进行分隔标号,其中www是一个 标号,cskaoyan、com都是一个标号,在标号中不能够超过63个字符,建议不超过12字符,不区分大小写,对于取名中可以使用-
,但是其他的符号是不能够使用的。
对于域名自左向右,级别由低到高:
实际在域名的末尾还有一个.,这个.用来表示是根。
顶级域名:上图中最右边的com就是顶级域名。
常见的顶级域名如下:
二级域名:主要包含类别域名、行镇区域域名
重复情况说明:可以看到二级域名中有和顶级域名中重复的,实际在顶级域名中经常使用的是国际域名,接着二级域名使用类似于com、gov之类的。
注意:自己申请的域名一定需要是全球唯一的。
三级域名:例如pku.edu.cn其中的pku申请的三级域名。
域名系统的树图如下,是从根开始的,接着是顶级域名、二级域名、三级、四级:
2.4、域名服务器的分类
域名服务器也分为好几类:分别为根域名服务器、 顶级域名服务器、权限域名服务器、本地域名服务器。
- 其实只有上面三层,也就是说本地域名服务器不属于层次结构,但是其对域名系统非常重要。
本地域名服务器
:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
- 当一台主机发送一个DNS查询请求,首先就会先发给本地域名服务器,实际域名服务武器离主机的距离非常近。
- 例如:每一个因特网服务的提供者,大学甚至是大学的一个系都可以拥有一个本地域名的服务器,这种域名服务器,有时候称之为
默认域名服务器
。
对于根域名、顶级域名、权限域名服务器的树形图如下图所示:当本地域名访问不到的时候,此时就会区访问根域名,接着依次向下进行访问
- 可以看到在权限域名服务器当中包含有2级、3级权限域名服务器,它们是对等的关系。
①根域名服务器
:通常情况下对于根域名服务器并不能够直接将查询的域名转换为IP地址,它只知道接下来应该寻找哪一个顶级域名服务器。
- **何时回查询根域名服务器?**当本地域名服务器中找不到相对应域名的IP地址时,会到根域名服务器中当中进行查询,在根域名服务器当中往往会根据域名的所属顶级域名来查询指定的顶级域名服务器IP地址,接着去相对应的顶级域名服务器当中再去查询。
- 因特网上共有13个不同IP地址的根域名服务器,分别是a…m英文字母命名,其中第一个示例为:
a.rootservers.net
,在2012年,全世界已经在312个地点安装了根域名服务器,但是它们的分布并不合理,北美平均时300多万个网名分摊一个根域名服务器,亚洲则是2000多万网民分摊一个,此时就会导致亚洲上网速度低于北美。
②顶级域名服务器
:管理该顶级域名服务器注册的所有二级域名。
③权限域名服务器
:负责一个区的域名服务器。
示例:此时有一个服务器abc,由两个部门,每个部分都有几个小组
当只有一个域名abc.com的时候,此时其域名是属于com域名服务器的下一个区(圈圈):
当我们设置了y.abc.com域名服务器的时候,此时区域分为了两部分,分别对应y.abc.com(右部分)以及abc.com(左部分):
2.5、域名解析过程(递归、迭代)
主要分为两种解析过程:递归查询
、迭代查询
递归查询:这个过程是在不断的委托域名服务器来进行一个查询,主机—>本地域名服务器—>根域名服务器—>顶级域名服务器—>权限域名服务器,最终若是查询得到之后进行一步步返回给主机
递归与迭代结合查询:首先主机向本地域名服务器来进行查询(递归,后面都是迭代),接着都是通过本地域名服务器来不断的向不同域名服务器发起请求,而不是委托的形式一级级递归向下,可以看到下图中本地域名服务器首先去查询了根域名服务器,根域名服务器返回了顶级域名服务器的地址,接着再次拿着顶级域名服务器地址去向他查询, 之后的过程都是如此都是由本地服务器来发起请求查询,迭代的方式。
当通过DNS服务器查询得到域名的IP地址时,就会使用一个高速缓存来进行存储其映射关系。
对于高速缓存中会进行定时更新,不仅仅本地域名服务器当中有该缓存,我们的电脑主机本身也回有域名的缓存,所以查询流程:本机的域名缓存—>本地域名服务器—>根域名服务器—>顶级域名服务器—>…
三、文件传输协议(FTP)
3.1、认识FTP文件传输协议和TFTP协议
包含两个:文件传输协议FTP
(File Transfer Protocol)、简单文件传输协议TFTP
(Trivial File Transfer Protocol)
文件传输协议FTP:提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力,可以实现拷贝上传、下载的功能。
简单文件传输协议TFTP:是一个很小且非常容易实践的一种文件传送协议,其优点是非常适用于UDP环境的,当需要将程序或者文件同时向许多机器下载的时候,经常会使用到这个TFTP,因为TFTP的代码块所占的内存比较小,对于一些较小的计算机或者某些特殊用途设备非常重要。
3.2、FTP服务器和用户端
FTP是基于客户/服务器(C/S)的协议。
FTP服务器
:依照FTP协议提供服务,进行文件传送的计算机。
FTP客户端
:连接FTP服务器,遵循FTP协议与服务器传送文件的电脑。
过程:用户通过一个客户机程序连接到远程计算机上运行的服务器程序。
实战:我们首先在服务器中搭建FTP服务,接着我们在自己的windows电脑上可以通过ftp的协议来进行文件传输访问
3.3、FTP工作原理
3.3.1、FTP的登录条件以及服务器端两大部分组成
登录条件:需要有ftp地址、用户名与密码。
- 支持匿名登录:互联网中很大一部分FTP服务器被称为"匿名"(Anonymous)FTP服务器。这类服务器目的是向公众提供文件拷贝服务,不要求用户事先在该服务器上进行登录注册,也不用取得FTP服务的授权。
Anonymous
(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户,用户使用特殊的用户名"anonymous"登录FTP服务器,就可访问远程上主机上公开的文件。
FTP
使用TCP来实现可靠传输。
FTP
常用端口为21。
一个FTP服务器的进程可以同时为客户进程来提供服务,FTP服务器进程主要有两大部分组成:
第一部分主进程:用于负责接收新的请求。
- 工作步骤:首先要打开服务器的端口号21,接着打开之后就能够使客户进程成功的连接上。之后就是等地啊客户进程发起一个连接请求,再进行数据的连接和传送。
第二部分从属进程:完成数据的传送,也就是有n个从属进程,每一个从属进程都可以处理单个的客户请求。
通俗易懂案例:例如有一个理发店它提供理发服务(FTP服务),那么里面有老板(主进程),当有客人来由需求时,那么老板就会进行分配员工(从进程)来进行相应的剪发、染发业务。
3.3.2、控制进程与数据传送进程传输
其中服务器端的控制进程、数据传送进程都是属于从进程,并不是主进程。
两端的控制进程建立一个连接,是用于传输用户在发出的命令传输请求。
- 简洁:传输请求。
两端的数据传送进程也建立一个TCP连接来进行文件数据传输。
- 简洁:传输文件。
特点:
1、控制连接始终打开,只要会话还没有结束,那么这个控制连接始终保持。
2、数据连接保持一会,若是文件传输完了,那么就可以关闭数据连接并且运行结束。
- 对于控制、数据连接是分开的,端口号也各不相同,会说FTP的控制信息是带外传送的。
3、对于数据连接并不是都是20端口,一般多少端口号是与传输模式有关。
- 主动方式:使用TCP 20端口。
- 过程:当客户进程向服务器进程发出建立连接请求的时候,会寻找21端口,接着通过
PORT命令
会给出客户端进程的数据端口,此时服务器就会自己选中20号端口来与客户进程提供的一个端口号码来建立数据传送连接。
- 过程:当客户进程向服务器进程发出建立连接请求的时候,会寻找21端口,接着通过
- 被动方式:由服务器和客户端自行协商决定,端口>1024。
- 过程:客户进程会与服务端建立一个控制连接,接着客户端会给服务器端发送一个PASV命令,相当于请求询问服务端要给我一个什么端口号,此时服务器端在收到这个命令时,就会返回一个>1024的端口号码。
3.4、FTP传输模式
文本模式
:ASCII模式,以文本序列传输数据。
Binary模式
:以二进制序列传输数据。
四、电子邮件
4.1、电子邮件系统概述
在以前我们与远方朋友同时都是通过写书信形式,随着科技发展,对于写书信变得越来越少,此时我们就诞生出了电子邮件,通过电子邮件,我们可以在有时间处理信息的时候通过打开邮箱查阅电子邮件即可。
4.1.1、电子邮件的信息格式
电子邮件由信封与内容组成,信封指的是发送方邮箱地址,首部则指的是接收方、主题,可以看到对于相应的头部信息最终组成有:发送方
、目标邮箱
、主题
、日期
,对于主体信息则是邮件中的内容。
4.1.2、电子邮件系统概述:组成结构
整个邮件系统包含:两个用户代理、两个邮件服务器、协议
用户代理:用户和电子邮件系统的接口,通常情况下就是运行在电脑中的一个程序,也可以成为是电子邮件的客户端软件。
- 提供四个功能:1、撰写。2、显示。3、处理。4、通信(自己电脑发送给邮件服务器)。
邮件服务器:作为服务器,24h待机,会有大容量的一个邮件信箱,容纳大量的信件。
- 主要功能:1、发送&接收邮件。对于这个发送指的是从邮件服务器的发送到接收方的邮件服务器。2、向发件人报告邮件传送结果。
采用C/S模式
,对于邮件服务器与服务器之间可以进行发送方与接收方的转变,如下图左边发送方中的SMTP协议在座位发送邮件方时,此时是客户端,若是当右边的邮件服务器发送邮件到左边服务器时,那么就使用SMTP服务器来进行接收。
协议:采用SMTP协议。对于收发都是采用这个协议完成。
- 发送采用
SMTP协议
。 - 接收采用
POP3协议
或者IMAP
。(如收件人向邮件服务器读取邮件就是采用的POP3服务)
4.2、电子邮件的发送过程
发送过程如下:
发送方法发送邮件是使用的SMTP协议
,发送端邮件服务器接着去发送邮件到接收端邮件服务器时同样也是使用的SMTP协议
。
此时邮件会放到接收端邮件服务器的缓存当中,当接收方想要读取邮件时,此时用户方通过用户代理来进行使用POP3
进行读取邮件。
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通信的三个阶段
1、连接建立
①发送方首先先写邮件,如果这个邮件写好那么就会发送给发送方的邮件服务器,接着放到这个邮件服务器的邮件缓存中。
②SMTP客户(现在的发送方邮件服务器)每隔一段时间就会对这个邮件缓存里面的邮件进行一个扫描,若是发现有邮件,那么就会使用SMTP协议通过25端口来与接收方的这个邮件服务器的SMTP服务器建立一个TCP连接。
- 当TCP连接建立好之后,邮件服务器会发出一个应答信息,220 Service ready,告诉发送方现在已经准备接收了服务就绪。
③此时SMTP客户就会向SMTP服务器来发送一个hello的命令,并且会附上发送方的主机名,此时SMTP服务器若是有能力接收邮件,那么就会返回一个应答:250 OK,表示目前可以接受邮件;若是返回了421 service not available,那么表示服务不可用。
2、邮件发送
首先客户端邮件服务器会告知服务器邮件服务器发送方信息了,此时SMTP服务器就会给出应答250表示准备好,451表示还没有。
当客户端邮件服务器收到250 ok以后,会发送一个或者多个RCPT命令,其是收件人的缩写,若是收件人地址正确,那么会返回250 OK,若是返回了550,那么表示是没有这个用户。
接着客户端服务器就要开始传输数据了,若是服务器端返回354…的命令,那么SMTP服务器表示同意传输。
当传输邮件内容完后成,服务器端会返回一个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内容。
说明:对于MIME这种多用途的互联网邮件扩展,实际是一个互联网的标准,最早应用于这个电子邮件系统,目前逐步应用在浏览器,服务器会将他们发送的一些多媒体数据类型告诉这个浏览器(通过说明这个多媒体数据的MIME类型),此时浏览器就能够直到接收到的消息哪些是MP3、MP4文件还是JPG。
4.3.3、邮局协议POP3(接收协议)
我们目前使用的第三版的POP协议。
POP3
:采用TCP连接,端口号是110,是C/S架构。
- 提供服务的是接收端服务器程序,其作为POP3的服务器,对于用户代理就是接收方可以作为POP3的用户。
场景:在最后一个环节,用户通过使用POP3来从接收端的邮件服务器当中读取邮件,最终交付给用户代理,此时接收方就可以查阅这个邮件了。
当接收方将邮件从接收端的邮件服务器中读取出来之后,处理方式有两种:
- 第一种:下载并保留(在服务器)。
- 第二种:下载并删除。
可以看到对于第二种方式下载并删除对于我们是十分不方便的,此时POP3在之后做了一些功能扩充,由于邮件协议POP3时一个非常简单,功能有限的一种邮件读取协议,此时就有有一种新的读取邮件的协议就是IMAP协议
。
4.3.4、网际报文存取协议IMAP(接收协议)
介绍:IMCP协议比POP协议复杂, 当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
场景举例:点开了一个邮件之后,其中若是有视频,并不会立马下载,而是选择先看正文,接着在网络条件允许的情况下,再下载这个附件,此时就会给用户省下一部分的流量。
同样也是在下图中的接收阶段采用IMAP协议,已画圈:
4.4、基于万维网的电子邮件(目前普遍使用)
1、更加便捷,方便。
- 目前我们可以直接通过浏览器中访问到对应邮件网址,如163.com或者直接进入QQ的邮件管理台,我们可以直接进行编辑电子邮件发送出去。
2、对于接收方、发送方的邮件服务器可以是不同企业的邮件服务器。
3、在协议的使用上,从用户代理到发送方邮件服务器的过程,使用HTTP协议,对于发送方的邮件服务器到接收方的邮件服务器,还是使用的SMTP协议。对于读取文件这里就不是POP3,而是使用的HTTP协议。
- 只要是与用户代理接触的两个环节,都是使用的HTTP协议,但是对于中间发送的环节则是采用的SMTP协议。
脑图时刻
五、万维网和HTTP协议
5.1、认识万维网www
万维网www(World Wide Web)
是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
- 将全球的所有网站,统一在一起称为万维网。
如何获取到资源?
- 通过使用统一资源定位符URL来进行唯一标识资源(文字、视频、音频…)。
URL一般形式:<协议>://<主机>:<端口>/<路径>
- 协议包含有:http、ftp。
- 主机:域名、IP地址。
- 端口、路径有时候可以进行省略。
如何定位到资源?
- 用户通过点击超链接(或者超为本文、超媒体等)(http://www.baidu.com)来获取资源,这些资源通过超文本传输协议(HTTP)来传送给使用者。
万维网采用客户/服务器方式工作,用户使用的浏览器就是万维网客户端程序,万维网文档所驻留在主机运行服务器程序当中。
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。
综上,主要使用URL
、HTML
以及HTTP
来进行解决大部分问题所使用的规定。
5.2、超文本传输协议HTTP
5.2.1、认识HTTP请求协议以及详细流程
HTTP协议定义了**浏览器(万维网客户进程)**怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
HTTP协议
:规定你如何上网以及这个服务器如何提供你请求资源的这样一个过程。
用户请求的整个流程:
首先,一个服务器进程监听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连接:
缺陷:由于每次HTTP请求都需要建立TCP连接,此时时间消耗会特别长。
持久连接(包含流水线式、非流水线)
特点:在服务器发送响应之后,在一段时间内仍然保持着这条连接,这样可以使得客户也就是这个浏览器和服务器,可以继续在这条连接上传送后续的一些HTTP请求以及响应报文。
也就是当发送第一个请求时需要首先建立TCP连接,之后请求则可以通过第一次请求的连接直接发送请求报文:
对于持久化连接中包含有两种方式:流水线式
、非流水线
。
对于上图中就是非流水线的发送,你可以看到在发送第二个请求时首先需要需要等待第一个请求收到响应之后才能够继续发起,这种请求方式都是类似于同步方式:
流水线式就类似于GBR、SR协议,可以进行连续发送,如当前有多个请求要进行发送,那么此时就会连续的发出多个请求,当服务器收到请求后,会依次返回相应的请求,如下图红色自己画的多条线:
- 类似于滑动窗口学习时一个窗口中多个报文会同时发送。
- 特点:采用流水线方式,客户访问所有的对象,只需要花费大概一个RTT时间,可以使得这个TCP连接它的空闲时间比较少(由于一个TCP连接会有时间限制,若是之前非流水线一个请求发出需要等待之前的请求响应,那么不久延长了等待时间),不需要等待太久。
5.3.4、HTTP协议的报文结构
在HTTP中包含有两种报文:HTTP请求报文
、HTTP响应报文
。
- HTTP报文是面向文本的,因此在报文中的每一个字段都是一些
ASCII
码串。
5.3.4.1、HTTP请求报文
请求行
:
- 方法:增、删、改、查。
- URL:资源定位符。
- 版本:什么版本的HTTP协议。
- 回车换行:必备,请求行结束,首部行的开始。
首部行
:说明浏览器、服务器和报文主体的一些信息。在每一行都有首部字段名和值,末尾都有一个换行符,首部中可以有很多行,也可以不用。
- 在首部行结束之后也会有一个换行符。
实体报文
:在请求报文中通常不使用。
对于请求报文的一个示例:
5.3.4.2、HTTP响应报文
版本
:HTTP版本。
状态码
:3个数字构成,一共有五种类型,一共有33种状态码,下图就是五种类型,右边是具体的一个状态码。
短语
:就是对应状态码的响应描述。
HTTP请求报文与响应报文相同点与不同点
相同点:
1、都是包含三个部分:首行、首部行、实体主体。
2、对于首部行、实体主体都是完全一致的。
不同点:
1、首行的前三个字段都不相同,对于请求报文则是方法、URL、版本
;对于响应报文则是版本、状态码、短语
。
2、实体主体中对于请求报文不经常使用;对于响应报文会使用。
整理者:长路 时间:2023.8.8
相关文章:

2024考研408-计算机网络 第六章-应用层学习笔记
文章目录 前言一、网络应用模型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、域名解析…...

使用阿里云服务器部署和使用GitLab
本文阿里云百科分享使用阿里云服务器部署和使用GitLab,GitLab是Ruby开发的自托管的Git项目仓库,可通过Web界面访问公开的或者私人的项目。本教程介绍如何部署和使用GitLab。 目录 准备工作 部署GitLab环境 使用GitLab 登录GitLab 生成密钥对文件并…...

React入门学习笔记3
事件处理 通过onXxx属性指定事件处理函数(注意大小写) React使用的是自定义(合成)事件, 而不是使用的原生DOM事件——为了更好的兼容性 eg:οnclick》onClickReact中的事件是通过事件委托方式处理的(委托给组件最外层的元素)——为了更高效通过event.target得到发生…...
从零开始理解Linux中断架构(25)中断运行全景实例
前面我们基本理解了软中断处理的基本框架,为了对中断调用有一个全景的直观感受,我们在网卡驱动程序的中断函数dump_stack,观看一下各种情况下的软中断调用call Stack的情况。 (1)ksoftirqd处理软中断的情况 有线以太网卡NAPI轮询的调用栈 [ 106.374117] Hardware name: K…...

go-zero 是如何实现计数器限流的?
原文链接: 如何实现计数器限流? 上一篇文章 go-zero 是如何做路由管理的? 介绍了路由管理,这篇文章来说说限流,主要介绍计数器限流算法,具体的代码实现,我们还是来分析微服务框架 go-zero 的源…...

【考研复习】24王道数据结构课后习题代码|第3章栈与队列
文章目录 3.1 栈3.2 队列3.3 栈和队列的应用 3.1 栈 int symmetry(linklist L,int n){char s[n/2];lnode *pL->next;int i;for(i0;i<n/2;i){s[i]p->data;pp->next;}i--;if(n%21) pp->next;while(p&&s[i]p->data){i--;pp->next;}if(i-1) return 1;…...
java中excel文件下载
1、System.getProperty(user.dir) 获取的是启动项目的容器位置 2、 Files.copy(sourceFile.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING); StandardCopyOption.REPLACE_EXISTING 来忽略文件已经存在的异常,如果存在就去覆盖掉它Sta…...

29 | 广州美食店铺数据分析
广州美食店铺数据分析 一、数据分析项目MVP加/价值主张宣言 随着经济的快速发展以及新媒体的兴起,美食攻略、美食探店等一系列东西进入大众的眼球,而人们也会在各大平台中查找美食推荐,因此本项目做的美食店铺数据分析也是带有可行性的。首先通过对广东省的各市美食店铺数量…...

fastApi基础
1、fastApi简介 官方文档:https://fastapi.tiangolo.com/ 源码: https://github.com/tiangolo/fastapi 2、环境准备 安装python 安装pycharm 安装fastAPI 安装 uvicorn 查看已经安装的第三方库:pip list 查看pip 配置信息:pip co…...
Mysql整理二 - 常见查询语句面试题(附原表)
表结构,创建原表的代码在最后 -- cid课程id; tid老师id; sid学生id; select * from t_mysql_course; select * from t_mysql_score; select * from t_mysql_student; select * from t_mysql_teacher; 1. 查询" 01 “课程比” 02 "课程成绩高的学生的信息…...
Python - 读取pdf、word、excel、ppt、csv、txt文件提取所有文本
前言 本文对使用python读取pdf、word、excel、ppt、csv、txt等常用文件,并提取所有文本的方法进行分享和使用总结。 可以读取不同文件的库和方法当然不止下面分享的这些,本文的代码主要目标都是:方便提取文件中所有文本的实现方式。 这些库的…...

Codeforces Round 892 (Div. 2) C. Another Permutation Problem 纯数学方法 思维题
Codeforces Round 892 (Div. 2) C. Another Permutation Problem 源码: #include <iostream> #include <algorithm> #include <set> #include <map> #include <queue> #include <vector> #include <stack> #include &l…...
持续输出:自媒体持续输出文字内容、视音频创作(视频课程、书籍章节)
以下是自媒体持续输出文字内容、视音频创作的最佳方法: 灵感来源:寻找灵感来源是自媒体创作的重要一环。可以从日常生活、网络热点、行业动态等方面寻找创作灵感。 确定主题:在确定主题的时候,需要根据读者和观众的需求ÿ…...
篇十七:备忘录模式:恢复对象状态
篇十七:"备忘录模式:恢复对象状态" 开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun/。 另外有2本不错的关于设计模式的资料&…...

初识mysql数据库之图形化界面
目录 一、好用的数据库图形化界面软件 1. Navicat 2. SQLyog 3. MYSQL Workbench 二、MYSQL Workbench基本使用 1. 安装 2. 远端连接 3. 执行sql语句 一、好用的数据库图形化界面软件 在以前的文章中,一共介绍了两种使用数据库的方式,分别为在l…...

APP外包开发的H5开发框架
跨平台移动应用开发框架允许开发者使用一套代码在多个操作系统上构建应用程序,从而节省时间和资源。以下是一些常见的跨平台移动应用开发框架以及它们的特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司࿰…...

高性能跨平台网络通信框架 HP-Socket v5.9.3
项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4478351216.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v5.9.3 更新 一、主要更新 问题修复:通过 POST/PUT 等带有请求内容的 HTTP 方…...
Vue3.2+TS在v-for的时候,循环处理时间,将其变成xx-xx-xx xx:xx:xx格式,最后教给大家自己封装一个时间hooks,直接复用
Vue3.2TS在v-for的时候,循环处理时间,将其变成xx-xx-xx xx:xx:xx格式 最后教给大家自己封装一个时间hooks,直接复用 1.没有封装,直接使用 <template><div><ul><li v-for"item,index in arr" :k…...

05 mysql innodb page
前言 最近看到了 何登成 大佬的 "深入MySQL源码 -- Step By Step" 的 pdf 呵呵 似乎是找到了一些 方向 之前对于 mysql 方面的东西, 更多的仅仅是简单的使用[业务中的各种增删改查], 以及一些面试题的背诵 这里会参照 MySQL Internals Manual 来大致的看一下 i…...

记录一次electron打包提示文件找不到的解决方法
没有配置files选项 files的作用是配置打包到应用程序的构建资源 就是说如果你想使用项目那个目录下的文件 就得通过files配置一下不然就会报错 json文件或者yml文件会报的错 格式是这样的 "files": ["dist-electron", "dist"],electron打包配…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...