应用层
应用层位于最顶层,是为用户提供特定网络应用程序所需的服务和功能所产生的(电子邮件、文件传输、远程登录、网页浏览)。
计算机网络 – 应用层
一、简介
1、主要任务
应用层的主要任务是什么? 主要和什么有关
主要任务:是提供特定网络应用程序所需的服务和功能。它负责处理特定的应用需求,例如电子邮件、文件传输、远程登录、网页浏览等。应用层协议定义了应用程序之间的通信规则和数据交换的格式。
主要和用户应用程序有关。
- 应用层协议定义了应用程序之间的通信规则和数据交换的格式,这些协议包括HTTP、FTP、SMTP等。
- 每个应用程序都使用特定的应用层协议来完成其特定功能。
- 应用层的任务是为用户提供所需的服务,使得用户能够方便地完成特定的网络任务,因此它主要与用户应用程序和用户需求相关联。
总的来说,应用层是网络中最直接面向用户的层次,它为用户提供了各种实用的网络服务,也是用户与网络之间交互的接口。
应用层协议定义了什么
- 应用进程交换的报文类型
- 请求还是响应
- 各种报文类型的语法
- 报文中的各个字段及其详细描述
- 字段的语义
- 包含在字段中的信息的含义
- 进程何时、如何发送报文,以及对报文进行响应的规则
2、网络应用模型
(1)C/S模型
客户/服务器方式 (C/S):C/S方式强调了服务提供者和请求者之间的层次关系
在客户/服务器模型中,网络服务的提供者和网络服务的请求者分别扮演着不同的角色,它们之间存在明显的区别和层次。
客户和服务器是指通信中所涉及的两个应用进程
客户/服务器方式所描述的是进程之间服务和被服务的关系
客户是服务请求方,服务器是服务提供方
服务器总是处于运行等待状态,并等待客户的服务请求。服务器具有固定端口号(例如HTTP服务器的默认端口号为80),而运行服务器的主机也具有固定的IP地址
通常情况下,有一个或多个服务器端(提供服务)和多个客户端(请求服务)相互交互,客户端向服务器请求服务或资源,服务器接收到请求后,进行相应的处理并将结果返回给客户端。
基于C/S方式的应用服务通常是服务集中型的,即应用服务集在网络中比客户计算机少得多的服务器计算机上由于一台服务器计算机要为多个客户机提供服务,在C/S应用中,常会出现服务器计算机跟不上众多客户机请求的情况,为此,在C/S应用中,常用计算机群集(或服务器场)构建一个强大的虚拟服务器.
- 常见的例子包括Web应用,数据库服务等。
(2)P2P模型
对等方式 (P2P方式):P2P方式强调了节点之间的对等关系,没有明确的服务提供者和请求者的区分
对等方式,也称为点对点方式,是指在网络中的各个节点(通常是计算机)之间具有相同的地位,彼此之间可以直接通信和共享资源,而无需依赖中央服务器。
在P2P网络中,每个节点既可以是资源的提供者,也可以是资源的请求者。所有节点都能够直接与其他节点通信,共享资源或者服务。
这种模型适用于需要大量资源共享和分布式处理的场景,如文件共享网络、实时通信等
- 电驴,快播
二、动态主机配置协议DHCP
1、概述
(1)DHCP是什么
- 是什么:DHCP(Dynamic Host Configuration Protocol)是一种网络协议
- 有什么用,解决什么问题:用于在计算机网络中自动分配IP地址和其他网络配置参数给设备。它的出现解决了手动配置网络参数的繁琐和容易出错的问题。
- 功能:
- 自动分配IP地址:DHCP允许网络中的设备在连接到网络时自动获取IP地址,而无需手动配置。这使得网络管理变得更加高效,特别是在大型网络环境下。
- 分配其他网络配置参数:除了IP地址,DHCP还可以自动分配子网掩码、默认网关、DNS服务器等网络配置信息,使设备能够顺利地进行通信。
(2)DHCP和UDP
DHCP与UDP的关系:
- DHCP是一种协议,用于自动分配IP地址和其他网络配置给主机。
- DHCP使用UDP作为传输层协议来进行通信。
DHCP和UDP的端口号:
- DHCP服务器使用端口号67(UDP源端口)和端口号68(UDP目的端口)进行通信。
- DHCP客户端使用端口号68(UDP源端口)和端口号67(UDP目的端口)进行通信。
这些端口号是DHCP协议规定的默认端口号,用于标识DHCP客户端和服务器之间的通信。
2、工作流程
DHCP的工作流程:
DHCP发现(DHCP Discover):
- 客户端广播发送一个DHCP发现消息,请求可用的DHCP服务器。
- 源地址为0.0.0.0,目的地址为广播地址255.255.255.255。
DHCP提供(DHCP Offer):
- DHCP服务器接收到广播后,如果有可用的IP地址,会向客户端发送DHCP提供消息,其中包含了IP地址和相关配置信息。
- 源地址为DHCP服务器的地址,目的地址为广播地址。
DHCP请求(DHCP Request):
- 客户端收到多个DHCP提供消息后,一般会选择第一个接收到的DHCP提供消息。
- 客户端向选定的DHCP服务器发送DHCP请求消息,请求分配IP地址。
- 源地址为0.0.0.0,目的地址为广播地址255.255.255.255。
DHCP确认(DHCP Acknowledgment):
- DHCP服务器接收到客户端的请求后,验证事务ID是否相符。
- 若相符,DHCP服务器从地址池中分配一个IP地址,通过ARP协议确认此地址未被使用。
- 将新的IP地址封装在DHCP确认消息中,发送给客户端。
- 源地址为DHCP服务器的地址,目的地址为广播地址。
IP地址租用:
- 客户端收到DHCP确认消息后,再次使用ARP协议确认IP地址是否可用,确认成功后将该IP地址应用,并开始使用。
- 客户端根据DHCP服务器提供的租约时长来使用IP地址。
IP地址续约:
- 在租约过程中,客户端会在租约到达一定时长前(一般为租约时长的一半)向DHCP服务器发送续约请求,以获取新的租约。
IP地址释放:
- 客户端可以随时向DHCP服务器发送释放请求,以释放其当前使用的IP地址。
这个流程描述了DHCP客户端和服务器之间交互的整个过程,包括了客户端寻找DHCP服务器、获取IP地址、使用和续约IP地址以及释放IP地址等步骤。
三、域名系统DNS
1、概述
(1)DNS
DNS(Domain Name System - 域名系统):
是什么:是一种用于将域名(例如:www.example.com)转换为对应的IP地址的分布式系统。
有什么作用:DNS它起到了互联网中类似“电话号码簿”的作用,使得我们可以通过易于记忆的域名来访问网站,而不必记住复杂的IP地址。
(2)DNS相关名词
以下是DNS的一些重要概念:
- 域名:是一个网站的人类可读形式的名称,例如:www.example.com。
- IP地址:是一个用于在互联网上唯一标识一个设备(例如服务器或路由器)的数字序列。
- 域名服务器:也称为DNS服务器,是负责将域名解析为相应IP地址的服务器。
- 域名解析:是指将一个域名转换为对应的IP地址的过程。
2、域名
- 顶级域名
- 国家顶级域名:cn,us,uk
- 通用顶级域名:com,net,org,gov,int,aero,museum,travel
- 基础结构域名/反向域名:arpa
- 二级域名
- 类别域名:ac,com,edu,gov,mil,net,org
- 行政区域名:jx,hb,bj
- 自己注册的:必须要全球唯一
- 三级域名
- 四级域名
- ……
域名的注意事项:
- 域名不区分大小写
- 域名中的符号只能有 “-”
- 域名中的每一段称为一个标号
- 单个标号的长度不超过36个字符
- 整体域名不超过255个字符
3、域名服务器
(1)域名服务器分类
- 根域名服务器:根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。根域名服务器知道所有顶级域名服务器的域名和 IP地址。如果本地域名服务器无法对域名进行解析,就首先求助于根域名服务器。(
.com
等顶级域名服务器所在的地址)。 - 顶级域名服务器:负责管理特定顶级域名下的次级域名信息,比如管理.com域名下的所有子域名(
.com
等 域名下的权威域名服务器列表。)。- 顶级域名服务器负责管理在该服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步需要查询的域名服务器的 IP 地址)。
- 权威域名服务器:负责一个区的域名服务器,负责知道管理
google.com
域名下的具体解析记录,如www.google.com
对应的 IP 地址。- 这就是前面已经讲过的负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告知发出查询请求的DNS客户,下一步应当找哪一个权威域名服务器。
- 本地域名服务器:本地域名服务器并上述的树状结构的DNS域名服务器,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者ISP都可以拥有一个本地域名服务器。
(2)域名解析方式
DNS协议使用**UPD**传输,是**无连接**的
递归查询:本地域名服务器的查询请求层层转发到根服务器,最后得到所找域名的IP地址。
迭代查询:每次查询所得的下一级域名服务器IP返回给本地域名服务器,本地域名服务器亲自动手。
4、DNS解析过程
完整的DNS解析过程有以下几个步骤:
(1)查看浏览器缓存
当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址(若曾经访问过该域名且没有清空缓存便存在)。
(2)查看系统缓存
当浏览器缓存中无域名对应 IP 则会自动检查用户计算机系统 Hosts 文件 DNS 缓存是否有该域名对应 IP。
(3)查看路由器缓存
当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查,以上三步均为客服端的 DNS 缓存。
(4)查看ISP DNS 缓存
当在用户客服端查找不到域名对应 IP 地址,则将进入 ISP DNS 缓存中进行查询。比如你用的是电信的网络,则会进入电信的 DNS 缓存服务器中进行查找。
(5)询问根域名服务器
当以上均未完成,则进入根服务器进行查询。全球仅有 13 台根域名服务器,1 个主根域名服务器,其余 12 为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com、.cn等)服务器 IP 告诉本地 DNS 服务器。
(6)询问顶级域名服务器
顶级域名服务器收到请求后查看区域文件记录,若无记录则将其管辖范围内权威域名服务器的 IP 地址告诉本地 DNS 服务器。
(7)询问权威域名(主域名)服务器
权威域名服务器接收到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确记录。
(8)保存结果至缓存
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个 IP 地址即可访问目标Web服务器。至此,DNS递归查询的整个过程结束。
DNS系统承担着将域名解析成IP地址的重要作用,是计算机之间实现访问互联的关键和基础。因此,DNS解析的安全对于维持网络稳定运行至关重要。企业相关管理者和运营者一定要做好域名及域名解析的安全防护工作,定期进行数据扫描分析,启用全方位DNS风险监测,实时关注DNS运行状态,同时做好妥善的应急备份准备,一旦发现问题,出现故障,第一时间响应解决,才能将DNS故障风险及其带来的损失降至最低点。
四、文件传输协议FTP
1、FTP是什么
FTP(File Transfer Protocol):
- FTP是一种用于在网络上进行文件传输的标准通信协议,用于提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
- FTP是基于
C/S
的协议,使用TCP
实现可靠传输
FTP由什么组成:
- FTP服务器:依照FTP协议提供服务,进行文件传送的计算机
- FTP客户端:连接FTP服务器,遵循FTP协议与服务器传送文件的电脑
- 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序进行文件传输
FTP有什么作用和应用:
文件的上传、下载、增删改查、备份恢复、分享
- 文件上传和下载:FTP允许用户将文件从本地计算机上传至远程服务器,或者从远程服务器下载到本地计算机。
- FTP的常见用途是在计算机之间传输文件,尤其是用于批量传输文件。FTP的另一个常见用途是让网站设计者将构成网站内容的大量文件批量上传到他们的Web服务器
- 文件管理:用户可以通过FTP在本地计算机和远程服务器之间进行文件和文件夹的管理,包括创建、删除、重命名等操作。
- FTP提供交互式的访问,运行客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)
- 备份和恢复:通过FTP,用户可以轻松地将重要文件备份到远程服务器上,以防止本地数据丢失。
- 共享文件:FTP也可用于在不同用户之间共享文件,只需提供相应的访问权限即可。
- FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件
2、FTP的工作原理
(1)介绍
FTP(File Transfer Protocol)的基本工作原理是基于客户端-服务器模型的,它使用两个独立的连接来完成文件传输:
- 控制连接(Control Connection):用于传输控制信息,如用户认证、命令传输等。控制连接是持久的,在整个FTP会话期间保持打开状态。
- 用于传送控制命令的
TCP
连接在整个会话过程都保持开启状态 - 例如:登录:用户通过用户名密码的方式登录到服务器,也可以通过匿名登陆访问公开共享的文件。
- 用于传送控制命令的
- 数据连接(Data Connection):用于传输文件数据。每次需要传输文件时都会建立一个新的数据连接,传输完成后再关闭。
- 用于传送数据的
TCP
连接只会在有数据传送时开启,数据结束传送后就关闭 - 数据连接的建立方式有两种模式:
- 主动模式(Active Mode):在主动模式下,客户端会在随机的端口上监听,等待服务器连接。当需要传输文件时,服务器会通过控制连接告诉客户端在哪个端口上建立数据连接,客户端会在该端口上等待服务器的连接。
- 被动模式(Passive Mode):在被动模式下,服务器会在随机的端口上监听,等待客户端连接。当需要传输文件时,服务器会告诉客户端在哪个端口上建立数据连接,客户端会主动连接服务器的端口。
- 用于传送数据的
(2)传输过程
具体的传输过程如下:
客户端连接到FTP服务器:客户端通过TCP连接(默认端口为21)连接到FTP服务器。
客户端进行身份验证:客户端通过用户名和密码进行身份验证。
客户端发送FTP命令:一旦连接建立并且用户通过了身份验证,客户端可以发送各种FTP命令来执行相应的操作,如上传、下载、删除等。
建立数据连接:当需要传输文件时,客户端发送相应的FTP命令,服务器会在数据端口(默认端口20)上等待客户端建立数据连接。
传输文件:一旦数据连接建立,文件的数据会通过数据连接传输。
关闭数据连接:文件传输完成后,数据连接会被关闭。
执行其他操作:客户端可以继续发送FTP命令执行其他操作,如上传更多文件、删除文件等。
关闭控制连接:当会话结束时,控制连接会被关闭。
3、FTP和TCP
FTP(File Transfer Protocol)是基于TCP/IP协议的应用层协议,它使用了TCP协议来实现可靠的文件传输。
具体来说:
FTP使用TCP作为传输层协议,通过TCP提供的可靠数据传输服务来保证文件的正确传输。
FTP默认使用了两个端口:
- 控制连接端口:默认为21,用于建立控制连接,传输控制信息(如命令、用户认证等)。
- 数据连接端口:默认为22,用于传输文件数据。
控制连接和数据连接共同构成了FTP会话,控制连接负责传输控制信息,而数据连接负责实际的文件传输。
总的来说,FTP是在TCP协议的基础上实现的文件传输协议,利用了TCP的可靠传输特性来确保文件的正确传输。
五、电子邮件
1、电子邮件系统和电子邮件
(1)电子邮件系统
电子邮件系统的三个主要组成构件:用户代理,邮件服务器,以及电子邮件所需的协议
- 用户代理:用户与电子邮件系统的接口,又称为电子邮件客户端软件
- 邮件服务器:电子邮件系统的基础设施。因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱
- 协议:邮件发送协议(如SMTP)、邮件读取协议(如POP3,IMAP)
(2)电子邮件格式
电子邮件格式:首部 + 正文
首部
- From(系统自动生成):redvelet@qq.com
- To(必须填入):redvelet@163.com
- Subject(可选):电子邮件格式
主体
- 正文内容
2、SMTP
SMTP(简单邮件传输协议),SMTP是用于在网络上传输电子邮件的协议
(Ⅰ)组成
- SMTP客户:负责发送邮件的SMTP进程
- SMTP服务器:负责接收邮件的进程
- SMTP使用的端口号为25
(Ⅱ)工作流程
SMTP工作流程:
- 建立连接
- 邮件发送
- 连接释放
SMTP详细工作流程:
建立连接:
- 发送方(邮件客户端)通过SMTP与邮件服务器(SMTP服务器)建立连接。
- 客户端使用TCP连接到服务器的25端口(默认SMTP端口)。
身份确认:
- 客户端向服务器发送
HELO
命令,告知自己的SMTP服务器域名。 - 服务器回复应答代码250,表示服务就绪。
- 客户端向服务器发送
发件人确认:
- 客户端使用
MAIL FROM:<发件人地址>
命令告知服务器发件人地址。 - 服务器回复应答代码250,表示发件人地址合法。
- 客户端使用
收件人确认:
- 客户端使用
RCPT TO:<收件人地址>
命令告知服务器收件人地址。 - 服务器回复应答代码250,表示收件人地址合法。
- 客户端使用
准备发送邮件内容:
- 客户端向服务器发送
DATA
命令,告知准备发送邮件内容。 - 服务器回复应答代码354,表示准备好接收邮件内容。
- 客户端向服务器发送
发送邮件内容:
- 客户端发送邮件内容,包括邮件头和邮件正文。
结束邮件内容:
- 客户端在发送完邮件内容后,使用
.
作为结束符,告知服务器邮件内容发送完毕。
- 客户端在发送完邮件内容后,使用
邮件接收确认:
- 服务器接收邮件内容后,返回应答代码250,表示邮件接收成功。
断开连接:
- 客户端向服务器发送
QUIT
命令,告知准备断开连接。 - 服务器回复应答代码221,表示接受请求并主动断开连接。
- 客户端向服务器发送
需要注意的是,SMTP协议主要负责邮件的发送,而接收邮件则通常使用POP3(Post Office Protocol Version 3)或IMAP(Internet Message Access Protocol)协议。
(Ⅲ)SMTP协议的缺点
- SMTP不能传送可执行文件或者其他二进制对象
- SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
- SMTP服务器会拒绝超过一定长度的邮件
3、MIME拓展
MIME(Multipurpose Internet Mail Extensions)是对SMTP协议的一个重要扩展,它解决了SMTP在传送非ASCII码文本和多媒体邮件方面的局限性。
具体来说,MIME引入了以下功能:
传送二进制和多媒体数据:SMTP原始协议只能传送ASCII码文本,而MIME引入了一种机制,使得邮件可以包含二进制文件、图像、音频和视频等多媒体内容。
字符编码:MIME定义了一种机制来处理非英语国家的文字,包括中文、俄文以及带有重音符号的法文或德文等。这样就可以确保在邮件中正确地传输和显示这些字符。
邮件内容格式标准化:MIME定义了多种邮件内容的格式,例如文本、HTML、图像等,使得邮件客户端能够正确地解析和显示邮件内容。
传输编码:MIME允许对邮件内容进行编码,以便在传输过程中不受邮件系统的修改。这保证了邮件内容的完整性。
总的来说,MIME的引入大大扩展了电子邮件的功能,使其能够处理更多种类的信息,从简单的文本到复杂的多媒体内容。这也是为什么我们可以在电子邮件中收到包括图片、附件、网页链接等各种形式的信息。
4、POP
POP3(邮局协议3),采用基于TCP连接的客户/服务器方式,并使用110
端口号进行通信
- POP3 是一种简单、功能有限的邮件读取协议。
- 用户可以通过下载并删除或下载并保留的方式将邮件从邮件服务器下载到本地计算机。
- 不允许用户在邮件服务器上进行邮件管理,例如创建文件夹、对邮件进行分类等。
5、因特网邮件访问协议 IMAP
IMAP4(因特网邮件访问协议),采用基于TCP连接的客户/服务器方式,并使用143
端口号进行通信
- IMAP4 是一种功能更强大的邮件读取协议。
- 用户可以在本地计算机上操作邮件服务器中的邮箱,就像在本地操控一样。因此,IMAP 是一种联机协议。
- 允许用户在邮件服务器上进行邮件管理,包括创建文件夹、分类管理等。
5、基于万维网的电子邮件
基于万维网的电子邮件:使用浏览器登录电子邮箱来收发电子邮件
用户代理
- 浏览器
- 通过HTTP协议与邮件服务器连接
邮件服务器
- 使用供应商的邮件服务器而不是自己的
- 邮件服务器之间的通信协议仍然为SMTP
通过浏览器登录(提供用户名和口令)邮件服务器万维网网站就可以撰写、收发、阅读和管理电子邮件。
- 这种工作模式与IMAP很类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器。
- 邮件服务器网站通常都提供非常强大和方便的邮件管理功能,用户可以在邮件服务器网站上管理和处理自己的邮件,而不需要将邮件下载到本地进行管理。
- 可以跨邮件服务器:代理和服务器之间采用SMTP、POP3,服务器和服务器之间采用HTTP
6、总结
六、万维网
1、介绍和组成
(1)概述
万维网:
- 万维网并非某种特殊的计算机网络。它是基于C/S的协议一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用
- 万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网
(2)组成
万维网组成:
统一资源定位符URL:是一个用于标识资源位置的字符串,它可以唯一地标识一个网页、图片、视频等资源。例如,https://www.chiou.com 是一个网站的URL == 资源在万维网中的唯一标识
组成方式:
<协议>://<主机>:<端口>/<路径>
URL不区分大小写
文档:
超文本标记语言HTML:HTML是一种标记语言,用于创建网页的结构和内容。它通过标签定义文本的格式、链接、图像等元素。
CSS(Cascading Style Sheets):CSS是一种样式表语言,用于控制网页的外观和布局,包括字体、颜色、间距等样式。
JavaScript:JavaScript是一种脚本语言,可以在浏览器中添加交互性和动态性。它可以用于处理用户输入、改变网页内容等。
超文本传输协议HTTP:HTTP是万维网上用于传输数据的协议,它定义了浏览器和Web服务器之间的通信规则。
2、超文本传输协议HTTP
(1)HTTP的作用
超文本传输协议HTTP:
HTTP
定义了:- 浏览器(即万维网进程)怎样向万维网服务器请求万维网文档
- 万维网服务器怎样把万维网文档传送给浏览器
(2)HTTP的报文结构
HTTP报文分为请求报文和响应报文两种类型。
- 请求报文:包括请求行、请求头部和请求主体
- 请求行
- 方法:GET、SET等
- URL
- 版本:协议版本
- 换行标志
- 首部行:说明浏览器等的一些信息
- 请求行
- 响应报文:包括状态行、响应头部和响应主体。
- 状态行
- 状态码+短语:404 NOT FOUND等
- 换行标志
- 首部行
- 状态行
如下:
(3)HTTP的连接过程
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
(4)HTTP的特点
HTTP是无状态的
每一次连接是一样的
通过cookie识别用户,存储用户信息
HTTP采用TCP作为传输层协议
HTTP是面向连接的:采用TCP协议
HTTP本身是无连接的:通信双方在交换HTTP报文之前不需要先建立HTTP连接
(5)Cookie状态
COOKIE:提供了一种机制使得万维网服务器能够"记住"用户,而无需用户主动提供用户标识信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术
3、HTTP1.0
- HTTP/1.0采用非持续连接方式 - 短连接。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接。
- 当收到响应后就立即关闭连接。每请求一个文档就要有两倍的RTT的开销。
- 若一个网页上有很多引用对象(例如图片等),那么请求每一个对象都需要花费2RTT的时间。
- 为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重。
4、HTTP1.1
- HTTP/1.1采用持续连接方式。
- 在该方式下,万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就可以实现。
- HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文
- 这样的一个接一个的请求报文到达服务器后,服务器就发回一个接一个的响应报文。这样就节省了很多往返时间,使TCP连接中的空闲时间减少,提高了下载文档的效率。
5、HTTP/2.0
HTTP/2.0是HTTP协议的下一代标准,它在性能和效率上做了很多改进。其中最显著的改进之一是引入了多路复用(Multiplexing)技术。
- 在HTTP/1.x中,每个请求都需要在一个独立的TCP连接上进行传输,这可能会导致连接的浪费和效率低下。而HTTP/2.0允许在同一个连接上同时传输多个请求和响应,避免了建立多个连接的开销。
- 此外,HTTP/2.0还引入了头部压缩(Header Compression)技术,可以减小传输的数据量,特别是在发送大量的请求头信息时,可以显著降低网络延迟。
这些优化措施使得HTTP/2.0相对于HTTP/1.x在性能上有了显著的提升,特别是对于现代复杂的网页和应用程序来说,它可以提供更快的加载速度和更高的性能表现。
6、万维网缓冲与代理服务器
如果原始服务器中的文档已经修改,但是代理服务器中仍然有缓存,那么主机访问文档时是否会访问到未修改的文档从而发送错误呢?
- 如果原始服务器中的文档已经被修改,但代理服务器中仍然保留了旧版本的缓存,当主机访问文档时,代理服务器会检查缓存中的响应的对象的修改时间和有效日期字段。如果文档在代理服务器中未过期,代理服务器将直接返回缓存的响应报文,这可能会导致主机拿到的是过时的文档,而不是最新的版本。
- 然而,如果文档在代理服务器中已经过期或者被标记为无效,代理服务器会向原始服务器发送一个请求,同时在请求头部中包含一个名为"If-modified-since"的字段,其中记录了上次文档的修改时间。如果原始服务器中文档的修改时间与代理服务器缓存的文档的修改时间不一致,说明文档已经发生了变化,原始服务器将返回最新版本的文档。如果它们一致,原始服务器会返回一个状态码为304 Not Modified的响应,表示文档没有发生变化,此时代理服务器会使用它本地的缓存。
- 总结起来,如果原始服务器中的文档已经被修改,但代理服务器中仍然有缓存,主机访问文档时,会发送一个带有"If-modified-since"字段的请求给原始服务器,如果文档没有发生变化,原始服务器会返回一个状态码为304的响应,此时代理服务器会使用它本地的缓存,否则会获取最新版本的文档。