当前位置: 首页 > article >正文

第六章 应用层

第六章 应用层考研考点开篇应用层所处的地位应用层是计算机网络体系结构的最顶层是设计和建立计算机网络的最终目的也是计算机网络中发展最快的部分。经典的网络应用一、网络应用模型1. 客户/服务器模型在客户/服务器Client/ServerC/S模型中有一个总是打开的主机称为服务器它服务于许多来自其他称为客户机的主机请求。其工作流程如下1服务器处于接收请求的状态。2客户机发出服务请求并等待接收结果。3服务器收到请求后分析请求进行必要的处理得到结果并发送给客户机。客户机/服务器服务器提供计算服务的设备。永久提供服务永久性访问地址/域名客户机请求计算服务的主机。与服务器通信使用服务器提供的服务间歇性接入网络可能使用动态IP地址不与其他客户机直接通信应用Web文件传输FTP远程登录电子邮件2. P2P模型在C/S模型中服务器性能的好坏决定了整个系统的性能当大量用户请求服务时服务器就必然成为系统的瓶颈。P2PPeer-to-Peer模型的思想是整个网络中的传输内容不再被保存在中心服务器上每个节点都同时具有下载、上传的功能其权利和义务都是大体对等的。在P2P模型中各计算机没有固定的客户和服务器划分。相反任意一对计算机称为对等方Peer直接相互通信。实际上P2P模型从本质上来看仍然使用客户/服务器模型每个节点既作为客户访问其他节点的资源又作为服务器提供资源给其他节点访问。与C/S模型相比P2P模型的优点主要体现如下1减轻了服务器的计算压力消除了对某个服务器的完全依赖可以将任务分配到各个节点上因此大大提高了系统效率和资源利用率。2多个客户机之间可以直接共享文档。3可扩展性好传统服务器有响应和带宽的限制因此只能接受一定数量的请求。4网络健壮性强单个节点的失效不会影响其他部分的节点。P2P模型也有缺点。在获取服务的同时还要给其他节点提供服务因此会占用较多的内存影响整机速度。例如经常进行P2P下载还会对硬盘造成较大的损伤。据某互联网调研机构统计某些年份P2P程序占了互联网50%~90%的流量使网络变得非常拥塞因此各大ISP互联网服务提供商如电信、网通等通常都对P2P应用持反对态度。目前在因特网上流行的P2P应用主要包括P2P文件共享、即时通信、P2P流媒体、分布式存储等。二、域名系统DNS1. 域名系统的作用域名系统是将域名和IP地址相互映射的一个分布式数据库主要功能是提供域名解析服务并将域名解析为IP地址实现用户访问网站时只用输入域名即可访问的功能能够使人更方便地访问互联网。DNS系统采用客户/服务器模型其协议运行在UDP之上使用53号端口。【示例】注意当前情况是用户主机在DNS高速缓存中未找到cnnic.cn对应的IP地址的情况。2. 层次域名空间域名的结构由若干个分量组成各分量之间用“点”隔开分别代表不同级别的域名。… .三级域名.二级域名.顶级域名每一级的域名都由英文字母和数字组成不超过63个字符不区分大小写字母。域名倒置法级别最低的域名写在最左边而级别最高的顶级域名写在最右边。完整的域名不超过255个字符。域名系统既不规定一个域名需要包含多少个下级域名也不规定每一级的域名代表什么意思。各级域名由其上一级的域名管理机构管理而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。【举例】湖南科技大学网络信息中心的域名顶级域名Top Level DomainTLD分为以下三类国家顶级域名nTLD采用ISO 3166的规定。如cn表示中国us表示美国uk表示英国等等。通用顶级域名gTLD最常见的通用顶级域名有七个即com公司企业、net网络服务机构、org非营利性组织、int国际组织、edu美国教育机构、gov国家或政府部门、mil美国军事部门。反向域arpa用于反向域名解析即IP地址反向解析为域名。在国家顶级域名下注册的二级域名均由该国家自行确定。例如顶级域名为jp的日本将其教育和企业机构的二级域名定为ac和co而不用edu和com。我国则将二级域名划分为以下两类类别域名共七个ac科研机构、com工、商、金融等企业、edu教育机构、gov政府部门、net提供网络服务的机构、mil军事机构和org非营利性组织。行政区域名共34个适用于我国的各省、自治区、直辖市。例如bj为北京市、sh为上海市、js为江苏省等等。注意在通用顶级域名gTLD 中的com与我国二级域名中的类别域名中的com有所区别注意区分。因特网的域名空间这种按等级管理的命名方法便于维护名字的唯一性并且也容易设计出一种高效的域名查询机制。需要注意的是域名只是个逻辑概念并不代表计算机所在的物理地点。3. 域名服务器域名和IP地址的映射关系必须保存在域名服务器中供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。域名服务器分类根域名服务器根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。尽管我们将这13个根域名服务器中的每一个都视为单个的服务器但“每台服务器”实际上是由许多分布在世界各地的计算机构成的服务器群集。当本地域名服务器向根域名服务器发出查询请求时路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程同时也更合理地利用了因特网的资源。根域名服务器通常并不直接对域名进行解析而是返回该域名所属顶级域名的顶级域名服务器的IP地址。顶级域名服务器顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答可能是最后的结果也可能是下一级权限域名服务器的IP地址。权限域名服务器权限域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外权限域名服务器还知道其下级域名服务器的地址。本地域名服务器本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用会将该报文转发到上述的域名服务器的等级结构中。每一个因特网服务提供者ISP一个大学甚至一个大学里的学院都可以拥有一个本地域名服务器它有时也称为默认域名服务器。本地域名服务器离用户较近一般不超过几个路由器的距离也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。当主机需要将域名如www.example.com转换为IP地址时必须向一个已知的DNS服务器发起查询。本地DNS服务器的IP地址是这一过程的起点。如果主机没有配置该地址它将无法定位任何DNS服务器导致域名解析失败。4. 域名解析过程(1) 域名解析的两种方式① 递归查询② 迭代查询由于递归查询对于被查询的域名服务器负担太大通常采用以下模式递归迭代由上述两种方式可知客户机只需把域名解析请求发往本地域名服务器其他事情都由本地域名服务器完成并把最后结果返回给客户机。所以主机只需要知道本地域名服务器的IP。(2) 域名解析过程下面举例说明域名解析的过程。假定某客户机想获知域名为y.abc.com主机的IP地址域名解析的过程最多需要使用8个UDP报文4个查询报文和4个回答报文如下① 客户机向其本地域名服务器发出DNS请求报文递归查询。② 本地域名服务器收到请求后查询本地缓存若没有该记录则以DNS客户的身份向根域名服务器发出解析请求报文迭代查询。③ 根域名服务器收到请求后判断该域名属于.com域将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。④ 本地域名服务器向顶级域名服务器dns.com发出解析请求报文迭代查询。⑤ 顶级域名服务器dns.com收到请求后判断该域名属于abc.com域因此将对应的权限域名服务器dns.abc.com的IP地址返回给本地域名服务器。⑥本地域名服务器向权限域名服务器dns.abc.com发起解析请求报文迭代查询。⑦ 权限域名服务器dns.abc.com收到请求后将查询结果返回给本地域名服务器。⑧本地域名服务器将查询结果保存到本地缓存同时返回给客户机。5. 域名系统高速缓存为了提高DNS的查询效率并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。由于域名到IP地址的映射关系并不是永久不变为保持高速缓存中的内容正确域名服务器应为每项内容设置计时器并删除超过合理时间的项例如每个项目只存放两天)。不但在本地域名服务器中需要高速缓存在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库维护存放自己最近使用的域名的高速缓存并且只在从缓存中找不到域名时才向域名服务器查询。同理主机也需要保持高速缓存中内容的正确性。【2016年 题40】假设所有域名服务器均采用迭代查询方式进行域名解析当H4访问规范域名为www.abc.xyz.com的网站时域名服务器201.1.1.1在完成该域名解析过程中可能发出DNS查询的最少和最多次数分别是 。A. 0、3 B. 1、3 C. 0、4 D. 1、4解析若主机中已有缓存则无需向本地域名服务器查询共0次。若主机中没有缓存则需要向本地域名服务器递归查询。若本地域名服务器中已有缓存则无需向其他域名服务器查询共0次。若本地域名服务器中没有缓存则需要进行一系列选代查询共4次。三、文件传输协议FTP1. 文件传输协议FTP的作用(1) FTP的核心作用因特网使用的最广泛文件传输协议它屏蔽了各计算机系统的细节适合于在异构网络中任意计算机之间传送文件。功能形式类似于我们现在使用的共享网盘。特点FTP提供交互式访问允许客户指明文件的类型与格式并允许文件具有存取权限。FTP屏蔽了各计算机系统的细节适合在异构网络中的任意计算机之间传送文件。FTP使用客户-服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成一个主进程负责接收新的请求另外有若干个从属进程每个从属进程负责为一个客户进行FTP服务。FTP基于TCP的协议。(2) 工作流程①服务器端打开熟知端口21控制端口使客户进程能够连接上。② 等待客户进程发连接请求。③ 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止但从属进程在运行期间根据需要还可能创建其他一些子进程。④ 回到等待状态继续接收其他客户进程的请求。主进程与从属进程是并发执行的。(3) 常见应用场景️网站维护上传HTML/CSS/JS文件到Web服务器企业文件共享团队协作访问集中存储的文档远程备份将本地数据备份至FTP服务器跨系统传输Windows与Linux/MacOS间互传文件如Xftp就支持FTP协议。2. FTP的基本工作原理FTP 在工作过程中使用两个连接一个是数据连接一个是控制连接。2.1 控制连接服务器监听21号端口等待客户连接建立在这个端口上的连接称为控制连接用来传输控制信息如连接请求、传送请求等。FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程但控制连接并不用来传送文件。在传输文件时还可以使用控制连接如客户在传输中途发一个中止传输的命令因此控制连接在整个会话期间一直保持打开状态即持久连接。2.2 数据连接服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”。数据连接用来连接客户端和服务器端的数据传送进程数据传送进程实际完成文件的传送在传送完毕后关闭“数据传送连接”并结束运行即非持久连接。数据连接有两种传输模式主动模式PORT和被动模式PASV。PORT模式的工作原理客户端连接到服务器的21端口登录成功后要读取数据时客户端随机开放一个端口并发送命令告知服务器服务器收到PORT命令和端口号后通过20端口和客户端开放的端口连接发送数据。PASV模式的不同点是客户端要读取数据时发送PASV命令到服务器服务器在本地随机开放一个端口并告知客户端客户端再连接到服务器开放的端口进行数据传输。可见是用PORT模式还是PASV模式选择权在客户端。简单概括为主动模式传送数据是“服务器”连接到“客户端”的端口被动模式传送数据是“客户端”连接到“服务器”的端口。四、电子邮件电子邮件与邮政系统的寄信相似。① 发件人将邮件发送到自己使用的邮件服务器邮政站点② 发件人的邮件服务器邮政站点将收到的邮件按其目的地址转发到收件人邮件服务器邮政站点中的收件人邮箱③ 收件人在方便的时候访问收件人邮件服务器邮政站点中自己的邮箱获取收到的电子邮件。1. 电子邮件系统的组成电子邮件系统采用客户/服务器方式。电子邮件系统的三个主要组成构件用户代理邮件服务器以及电子邮件所需的协议。用户代理UA用户与电子邮件系统的接口。用户代理向用户提供一个很友好的接口来发送和接收邮件用户代理至少应当具有撰写、显示和邮件处理的功能。通常情况下用户代理就是一个运行在PC上的程序电子邮件客户端软件常见的有Outlook和Foxmail等。邮件服务器它的功能是发送和接收邮件同时还要向发件人报告邮件传送的情况已交付、被拒绝、丢失等。邮件服务器以客户/服务器模式工作但它必须能够同时充当客户和服务器。例如当邮件服务器A向邮件服务器B发送邮件时A就作为SMTP客户而B是SMTP服务器反之当B向A发送邮件时B就是SMTP客户而A就是SMTP服务器。邮件发送协议和读取协议邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件如SMTP邮件读取协议用于用户代理从邮件服务器读取邮件如POP3。注意SMTP用的是推Push的通信方式即用户代理向邮件服务器发送邮件及在邮件服务器之间发送邮件时SMTP客户将邮件推送到SMTP服务器。而POP3用的是拉Pull的通信方式即用户读取邮件时用户代理向邮件服务器发出请求拉取用户邮箱中的邮件。2. 电子邮件的收发过程① 发件人调用用户代理电子邮件客户端软件来撰写和编辑要发送的邮件。② 邮件撰写完后发件人点击“发送邮件”按钮把发送邮件的工作全都交给用户代理来完成就什么都不用管了。用户代理用SMTP把邮件传送给发送端邮件服务器。③ 发送端邮件服务器将邮件放入邮件缓存队列中等待发送。④ 发送端邮件服务器的SMTP客户与接收端邮件服务器的SMTP服务器建立TCP连接然后就把邮件缓存队列中的邮件依次发送出去。注意邮件是直接传送给接收端邮件服务器的而不会在互联网的某个中间邮件服务器落地。⑤ 运行在接收端邮件服务器中的SMTP服务器进程收到邮件后将邮件放入收件人的用户邮箱等待收件人在方便时进行读取。⑥ 收件人打算收信时调用用户代理使用POP3或IMAP协议将自己的邮件从接收端邮件服务器的用户邮箱中取回如果邮箱中有来信的话。3. 电子邮件格式与MIME(1) 电子邮件格式一个电子邮件分为信封和内容两大部分邮件内容又分为首部和主体两部分。RFC822规定了邮件的首部格式而邮件的主体部分则让用户自由撰写。用户写好首部后邮件系统自动地将信封所需的信息提取出来并写在信封上用户不需要亲自填写信封上的信息。邮件内容的首部包含一些首部行每个首部行由一个关键字后跟冒号和值组成。有些关键字是必需的有些则是可选的。最重要的关键字是To和Subject。To是必填的关键字后面填入一个或多个收件人的电子邮件地址。电子邮件地址的格式为收件人邮箱名邮件服务器的域名如2548956382qq.com其中邮箱名2548956382在qq.com这个邮件服务器上必须是唯一的。这也就保证了该邮件地址在整个因特网上是唯一的。Subject是可选关键字是邮件的主题反映了邮件的主要内容。当然还有一个必填的关键字是From但它通常由邮件系统自动填入。首部与主体之间用一个空行进行分割。典型的邮件内容如下(2) 多用途因特网邮件扩展MIME)由于SMTP协议只能传送ASCII码文本数据不能传送可执行文件或其他的二进制对象。SMTP不能满足传送多媒体邮件例如带有图片、音频或视频数据的需要。并且许多其他非英语国家的文字例如中文、俄文、甚至带有重音符号的法文或德文也无法用SMTP传送。为解决SMTP传送非ASCII码文本的问题提出了多用途因特网邮件扩展(Multipurpose Internet Mail ExtensionsMIME)。增加了5个新的邮件首部字段这些字段提供了有关邮件主体的信息。定义了许多邮件内容的格式对多媒体电子邮件的表示方法进行了标准化。定义了传送编码可对任何内容格式进行转换而不会被邮件系统改变。实际上MIME不仅仅用于SMTP也用于后来的同样面向ASCII字符的HTTP。4. SMTP简单邮件传输协议Simple Mail Transfer ProtocolSMTP是一种提供可靠且有效的电子邮件传输的协议它控制两个相互通信的SMTP进程交换信息。因为SMTP采用客户/服务器模式工作所以负责发送邮件的SMTP进程就是SMTP客户而负责接收邮件的SMTP进程就是SMTP服务器。SMTP用的是TCP连接端口号为25。SMTP通信有以下三个阶段。① 连接建立发件人的邮件发送到发送方邮件服务器的邮件缓存中后SMTP客户就每隔一定时间对邮件缓存扫描一次。如发现有邮件就与接收方邮件服务器的SMTP服务器建立TCP连接SMTP服务器使用的熟知端口号为25。连接建立后接收方SMTP服务器发出220 Service ready服务就绪)。然后SMTP客户向SMTP服务器发送HELO命令附上发送方的主机名。SMTP不使用中间的邮件服务器。TCP连接总是在发送方和接收方这两个邮件服务器之间直接建立而不管它们相隔多远不管在传送过程中要经过多少个路由器。当接收方邮件服务器因故障暂时不能建立连接时发送方的邮件服务器只能等待一段时间后再次尝试连接。② 邮件传送连接建立后就可开始传送邮件。邮件的传送从MAIL命令开始MAIL命令后面有发件人的地址。如MAIL FROM:fhhit.edu.cn。若SMTP服务器已准备好接收邮件则回答250 OK。下面跟着一个或多个RCPT命令格式为RCPT TO收件人地址。每发送一个RCPT命令都应有相应的信息从SMTP服务器返回如250 OK或550 No such userhere无此用户。RCPT命令的作用是先弄清接收方系统是否已做好接收邮件的准备然后才发送邮件以便不至于发送了很长的邮件后才知道地址错误进而避免浪费通信资源。获得OK的回答后客户端就使用DATA命令表示要开始传送邮件的内容。正常情况下SMTP服务器返回的信息是354 Start mail input; end with.。表示回车换行。此时SMTP客户就可开始传送邮件内容并用.表示邮件内容的结束。③ 连接释放邮件发送完毕后SMTP客户应发送QUIT命令。SMTP服务器返回的信息是221服务关闭表示SMTP同意释放TCP连接。邮件传送的全部过程就此结束。5. POP3和IMAP4(1) 邮局协议Post Office ProtocolPOPPOP3是其第三个版本是因特网正式标准。非常简单、功能有限的邮件读取协议。用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件到用户方计算机。不允许用户在邮件服务器上管理自己的邮件。例如创建文件夹对邮件进行分类管理等。(2) 因特网邮件访问协议Internet Message Access ProtocolIMAPIMAP4是其第四个版本是因特网建议标准。功能比POP3强大的邮件读取协议。用户在自己的计算机上就可以操控邮件服务器中的邮箱就像在本地操控一样因此IMAP是一个联机协议。注意POP3和IMAP4都采用基于TCP连接的客户/服务器方式端口号POP3110IMAP1436. 基于万维网的电子邮件通过浏览器登录提供用户名和口令邮件服务器万维网网站就可以撰写、收发、阅读和管理电子邮件。这种工作模式与IMAP很类似不同的是用户计算机无需安装专门的用户代理程序客户端软件只需要使用通用的万维网浏览器。邮件服务器网站通常都提供非常强大和方便的邮件管理功能用户可以在邮件服务器网站上管理和处理自己的邮件而不需要将邮件下载到本地进行管理。两种发送邮件的情况① 发送方和接收方访问“同一个”服务器② 发送方和接收方访问“不同”服务器五、万维网WWW1. 万维网概述万维网World Wide Web简称WWW是一个基于互联网的分布式信息存储空间由全球范围内相互关联的网络站点和网页构成其核心在于通过超文本Hypertext与统一资源定位符URL实现跨地域的信息共享与访问。在这个空间中一样有用的事物称为一样资源并由一个全域统一资源定位符URL标识。客户端与服务器模型客户端如浏览器用户通过浏览器Chrome、Firefox等发起请求输入URL或点击超链接。核心行为将用户操作转化为HTTP/HTTPS请求例如请求网页、图片。接收服务器返回的响应HTML、CSS、JS等渲染并展示内容。服务器硬件与软件的分工服务器硬件 存储网页、图片等资源的物理计算机或云虚拟主机提供计算、存储和网络能力。WWW服务器软件 运行在服务器硬件上的服务程序专门处理HTTP/HTTPS协议请求如Nginx、Apache HTTP Server、IIS。 核心功能监听客户端的请求默认端口80/443。根据请求路径定位资源静态文件如HTML或动态请求需转发至后端应用。返回响应成功时发送资源错误时返回404/500等状态码。注意服务器硬件是物理载体WWW服务器软件是功能实现。 类比硬件是“餐厅的厨房”软件是“厨师和服务流程”——没有厨师厨房无法出餐。万维网使用超文本标记语言HTML使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面并能够在自己的屏幕上显示出来。2. 万维网的组成(1) 万维网的组成万维网的组成可以概括为三大核心标准和支撑技术体系它们共同构建了一个全球性的超文本信息网络。1三大核心标准①统一资源定位符URL作用唯一标识和定位网络上的资源如网页、图片、视频。格式协议(Protocol)指定使用的传输协议如http、https、ftp等。这是URL的必选项。主机(Host)这是存放资源的服务器的域名或IP地址。这也是URL的必选项。端口(Port)端口号不是必须写的如果省略则使用默认端口号。例如http的默认端口为80。路径(Path)指明服务器上某资源的位置例如目录或文件名。路径并非总是需要的一般默认为index.html。查询参数(Query)用于给动态网页传递参数可以有多对参数参数对用“”符号隔开每对参数的键和值用“”符号隔开查询参数也不是必须的。以上各部分之间使用特定的字符如“//”、“/”、“?”等进行分隔以符合URL的语法规则。②超文本传输协议HTTP/HTTPS作用客户端浏览器与服务器之间的通信规则定义如何请求和传输数据。核心方法GET获取资源、POST提交数据、PUT更新资源等。HTTPSHTTP的安全版本通过SSL/TLS加密保护数据传输。③超文本标记语言HTML作用描述网页的结构和内容通过标签如p,a,img定义文本、链接、图像等。构成HTML网页的结构和内容CSS网页的样式JavaScript网页的行为2支撑技术体系①客户端浏览器功能解析URL发起HTTP请求。接收服务器返回的HTML/CSS/JavaScript等资源渲染成可视化页面。代表工具Chrome、Firefox、Edge等。②服务器端Web服务器如Nginx、Apache 处理HTTP请求返回静态资源HTML、图片或转发动态请求至后端程序。应用服务器如Tomcat、Node.js 运行业务逻辑如用户登录、数据库查询即后端代码Java、Python等生成动态内容。数据库如MySQL、MongoDB 存储网站数据用户信息、商品信息等。三类服务器配合客户端 → Apache静态文件、SSL、负载均衡 → Tomcat处理Java业务逻辑 → MySQL数据库③超文本与超媒体超文本Hypertext通过超链接a标签将文档相互关联形成非线性浏览结构。超媒体Hypermedia扩展至非文本资源如图像、视频、API支持多媒体交互。(2) 工作流程① Web用户使用浏览器指定URL与Web服务器建立连接并发送浏览请求。② Web服务器把URL转换为文件路径并返回信息给Web浏览器。③ 通信完成关闭连接。3. 超文本传输协议HTTP超文本传输协议HTTP定义了浏览器万维网客户进程怎样向万维网服务器请求万维网文档以及服务器怎样把文档传送给浏览器。从层次的角度看HTTP是面向事务Transaction-oriented的应用层协议它规定了在浏览器和服务器之间的请求和响应的格式与规则是万维网上能够可靠地交换文件包括文本、声音、图像等各种多媒体文件的重要基础。3.1 HTTP的操作过程重点从协议执行过程来说浏览器要访问WWW服务器时首先要完成对WWW服务器的域名解析。一旦获得了服务器的IP地址浏览器就通过TCP向服务器发送连接建立请求。⭐浏览器访问一个页面的过程① 用户输入网址URL浏览器分析URL② 浏览器通过DNS服务器查询域名对应的IP地址浏览器会将查询结果“域名→IP”缓存在本地③ 浏览器与服务器Web服务器的IP地址:80端口建立TCP连接④ 浏览器在握手③中携带HTTP请求报文指明要访问那个HTML页面⑤ 服务器返回HTTP响应报文携带HTML文件⑥ 如果html引用了其他n个元素图片、视频等还需要n组HTTP请求响应持续、非持续工作方式有所区别)⑦ 释放TCP连接⑧ 浏览器显示注浏览器可以只下载文本部分。网页 1个HTML文件 n个网页元素如图片、视频文件等HTML文件和网页元素需要浏览器给服务器分别发送请求。⭐访问Web时可能用到的协议用户单击鼠标后所发生的事件顺序如下以访问清华大学的网站为例1浏览器分析链接指向页面的URLhttp://www.tsinghua.edu.cn/chn/index.html)。2浏览器向 DNS请求解析www.tsinghua.edu.cn的IP地址。3域名系统DNS解析出清华大学服务器的IP地址并返回为浏览器。4浏览器与该服务器建立TCP连接默认端口号为80。5浏览器发出HTTP请求GET/chn/index.htm。6服务器通过HTTP响应把文件index.htm发送给浏览器。7释放TCP连接。8浏览器解释文件index.htm并将Web页显示给用户。上述过程只是一个简化过程实际过程涉及TCP/IP体系结构中应用层的DHCP、DNS和HTTP传输层的UDP和TCP网际层的IP和ARP数据链路层的CSMA/CD或PPP若涉及ISP接入或广域网传输。本节主要介绍HTTP。3.2 HTTP的特点HTTP协议是无状态的即对于事物处理没有记忆能力。HTTP采用TCP作为运输层协议但HTTP协议本身是无连接的通信双方在交换HTTP报文之前不需要先建立HTTP连接。HTTP的连接方式非持续连接CloseHTTP/1.0采用非持续连接方式。在该方式下每次浏览器要请求一个文件都要与服务器建立TCP连接当收到响应后就立即关闭连接。每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引用对象例如图片等那么请求每一个对象都需要花费2RTT的时间。此外每次建立新的TCP连接都要分配缓存和变量使万维网服务器的负担很重。为了减小时延浏览器通常会建立多个并行的TCP连接以同时请求多个对象。持续连接Keep-aliveHTTP/1.1采用持续连接方式。在该方式下万维网服务器在发送响应后仍然保持这条连接使同一个客户浏览器和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象而是只要这些文档都在同一个服务器上就行。持续连接又分为非流水线no pipelining和流水线pipelining两种工作方式非流水线客户在收到前一个响应后才能发出下一个请求服务器在发送完一个对象后其TCP连接就处于空闲状态浪费了服务器资源。流水线客户可以连续发出对各个对象的请求服务器就可连续响应这些请求。⭐注意判断HTTP的连接方式① 先看HTTP请求报文的首部行中的Connection是Close非持续连接还是Keep-alive持续连接② 若没有给Connection则看HTTP的版本HTTP/1.0非持续连接HTTP/1.1持续连接。【2011年 题47】假设HTTP1.1协议以持续的非流水线方式工作一次请求-响应的时间为RTTrfc.html页面引用了2个JPEG小图像则浏览器从开始建立TCP连接到收到全部内容为止需要多少个RTT3.3 HTTP的报文格式HTTP是面向文本的Text-Oriented)因此报文中的每个字段都是一些ASCII码串并且每个字段的长度都是不确定的。有两类HTTP报文请求报文从客户向服务器发送的请求报文如图(a)所示。响应报文从服务器到客户的回答如图(b)所示。(1) HTTP请求报文格式请求行HTTP请求中的第一行数据请求行包含三块内容分别是请求方式 、请求URL路径、HTTP协议及版本。请求方式有七种请求方式描述GET获取资源无请求体参数在URL中POST提交数据创建资源有请求体PUT更新整个资源全量替换DELETE删除指定资源HEAD类似GET但仅返回响应头无响应体即不返回请求对象用于测试资源状态OPTIONS查询服务器支持的HTTP方法常用于跨域预检请求CORSPATCH更新资源的部分内容局部更新有请求体首部行也叫请求头第二行开始格式为key:value形式请求头中会包含若干个属性常见的HTTP请求头有Host表示请求的主机名User-Agent浏览器版本ConnectionHTTP的连接方式非持续连接Close持续连接Keep-aliveAccept表示浏览器能接收的资源类型如text/*image/*或者*/*表示所有Accept-Language表示浏览器偏好的语言服务器可以据此返回不同语言的网页Accept-Encoding表示浏览器可以支持的压缩类型例如gzip, deflate等。实体主体也叫请求体POST请求的最后一部分存储请求参数。【举例】(2) HTTP响应报文格式状态行也叫响应行响应报文的第一行响应行包含三块内容分别是 HTTP协议及版本、响应状态码、状态码的描述。常见状态码及其描述状态码分类描述1xx响应中——临时状态码表示请求已经接受告诉客户端应该继续请求或者如果它已经完成则忽略它2xx成功——表示请求已经被成功接收处理已完成3xx重定向——重定向到其它地方它让客户端再发起一个请求以完成整个处理。4xx客户端错误——处理发生错误责任在客户端如客户端的请求一个不存在的资源客户端未被授权禁止访问等5xx服务器端错误——处理发生错误责任在服务端如服务端抛出异常路由出错HTTP版本不支持等首部行又叫响应头第二行开始格式为key:value形式。响应头中会包含若干个属性常见的HTTP响应头有:Content-Type表示该响应内容的类型例如text/htmlimage/jpegContent-Length表示该响应内容的长度字节数Content-Encoding表示该响应压缩算法例如gzipCache-Control指示客户端应如何缓存例如max-age300表示可以最多缓存300秒响应体 最后一部分。存放响应数据。4. Cookie与会话管理机制请求之间无法共享数据会引发的问题如京东购物加入购物车和去购物车结算是两次请求HTTP协议的无状态特性加入购物车请求响应结束后并未记录加入购物车是何商品发起去购物车结算的请求后因为无法获取哪些商品加入了购物车会导致此次请求无法正确展示数据。4.1 Cookie核心机制定义Cookie是服务器发送到客户端浏览器的小型文本数据用于跟踪用户会话状态如登录态、购物车。也就是说Cookie是一种对无状态的HTTP进行状态化的技术。关键属性Domain/Path限制Cookie生效的域名和路径默认仅当前域名有效。Expires/Max-Age定义Cookie生命周期会话期Cookie关闭浏览器失效。Secure仅通过HTTPS传输防止中间人窃取。HttpOnly禁止JavaScript访问防范XSS攻击。SameSite限制跨站请求携带CookieStrict/Lax/None防御CSRF攻击。工作流程① 服务器通过Set-Cookie响应头下发Cookie。② 客户端后续请求自动在Cookie请求头中携带相关Cookie。③ 服务器解析Cookie验证用户身份并维持状态。4.2 Session管理机制定义Session是服务端存储的会话数据如用户ID、权限通过Session ID与客户端关联。Session与Cookie的关系Session ID通常通过Cookie传递如JSESSIONID。服务端需解决Session共享问题如Redis集群存储。安全性问题会话固定攻击攻击者诱导用户使用已知Session ID登录。防御措施登录后重置Session ID绑定IP/User-Agent。应用场景对比技术适用场景局限性Cookie客户端状态管理如主题设置大小限制4KB、易受XSS/CSRF攻击Session服务端敏感数据存储如用户权限需分布式存储、增加服务器负载5. 万维网缓存与代理服务器在万维网中还可以使用缓存机制以提高万维网的效率。万维网缓存又称为Web缓存Web Cache可位于客户机也可位于中间系统上位于中间系统上的Web缓存又称为代理服务器Proxy Server。Web缓存把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时若发现这个请求与暂时存放的请求相同就返回暂存的响应而不需要按URL的地址再次去因特网访问该资源。【举例】① 代理服务器存放有所请求的对象② 代理服务器没有所请求的对象③ 主机所请求的原始服务器中的文档与代理服务器中的同一文档不一致a. 代理服务器中的文档未过期的情况b. 代理服务器中的文档已过期但原始服务器中的文档未更改的情况c. 代理服务器中的文档已过期并且原始服务器中的文档已更新的情况六、本章小结及疑难点1. 常见应用层协议应用程序使用协议熟知端口号FTP 数据连接TCP20FTP 控制连接TCP21TELNETTCP23SMTPTCP25POP3TCP110HTTPTCP80DNSUDP53TFTPUDP69SNMPUDP161DHCPUDPC68S67RIPUDP520BGPTCP1792. 如何理解客户进程端口号与服务器进程端口号?通常我们所说的熟知端口号是指应用层协议在服务器端的默认端口号而客户端进程的端口号是由客户端进程任意指定的临时的。当客户进程向服务器进程发出建立连接请求时要寻找连接服务器进程的熟知端口号同时还要告诉服务器进程自己的临时端口号。接着服务器进程就用自己的熟知端口号与客户进程所提供的端口号建立连接。3. 因特网和万维网的区别是什么?因特网Intemet是指在ARPA网基础上发展而来的世界上最大的全球性互连网络它采用TCP/IP族作为通信规则。万维网WWW是无数个网络站点和网页的集合它们一起构成了因特网最主要的部分因特网也包括电子邮件、Usenet和新闻组。

相关文章:

第六章 应用层

第六章 应用层 考研考点:开篇:应用层所处的地位 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。经典的网络应用:一、网络应用模型 1. 客户/服务器模型 在客户…...

CANN/cann-bench多卡并行评测分析

多卡多线程并行评测性能分析报告 【免费下载链接】cann-bench 评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平…...

CANN/asc-tools:show_kernel_debug_data样例

show_kernel_debug_data样例 【免费下载链接】asc-tools Ascend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。 项目地址: https://gitcode.com/cann/asc-tools 概述 本样例基于Add算子,演示kernel侧算子调试信息的获取并通过show_kernel_deb…...

ATVOSS向量算子模板库

ATVOSS 【免费下载链接】atvoss ATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。 项目地址: https:/…...

ncmdumpGUI:3步快速解锁网易云音乐NCM加密文件的终极指南

ncmdumpGUI:3步快速解锁网易云音乐NCM加密文件的终极指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐下载的NCM格式文件无法在…...

从零复刻Stripe官网动态背景:WebGL着色器与Next.js实战

1. 项目概述:从零复刻 Stripe 官网的炫酷动态背景 如果你是一名前端开发者,或者对现代网页的视觉表现力着迷,那你一定对 Stripe 的官网印象深刻。它那个丝滑流畅、色彩变幻的动态背景,早已成为业界的视觉标杆。很多人第一次看到时…...

正交系统架构与DSPTH技术在高速电子设计中的应用

1. 正交系统架构与DSPTH技术解析在高速电子系统设计中,信号路径优化始终是工程师面临的核心挑战。传统背板架构中,信号需要穿越多层PCB板、连接器和复杂的布线通道,导致信号完整性严重受损。而正交系统架构通过独特的机械布局和电气设计&…...

TVA重塑智慧城市安防新范式(9)

重磅预告:本专栏将独家连载新书《AI视觉技术:从入门到进阶》精华内容。本书是《AI视觉技术:从进阶到专家》的权威前导篇,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“AI教…...

无需代码使用curl命令直接测试Taotoken大模型聊天接口

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 无需代码使用curl命令直接测试Taotoken大模型聊天接口 对于开发者而言,在集成大模型能力时,直接通过HTTP请…...

TVA重塑智慧城市安防新范式(7)

重磅预告:本专栏将独家连载新书《AI视觉技术:从入门到进阶》精华内容。本书是《AI视觉技术:从进阶到专家》的权威前导篇,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“AI教…...

Instill Core:开源AI工作流引擎,标准化编排多模型Pipeline

1. 项目概述:一个面向AI应用开发者的开源核心引擎如果你正在构建一个需要集成多种AI模型(比如视觉识别、语音处理、大语言模型)的应用,大概率会面临一个头疼的问题:每个模型都有自己的一套API接口、数据格式要求和部署…...

基于ESP32的Wi-Fi数据记录器:从环境扫描到物联网数据采集实战

1. 项目概述:一个基于ESP32的Wi-Fi数据记录器最近在折腾一个物联网数据采集的小项目,需要把几个传感器节点的数据汇总到一个中心点。一开始想用LoRa,但考虑到部署成本和网络覆盖,最后还是决定用最普遍的Wi-Fi。在GitHub上翻找现成…...

AI编程助手如何通过结构化代码分析提升开发效率

1. 项目概述:为AI编程助手装上“透视眼”如果你和我一样,每天都在和Claude、Cursor、Copilot这类AI编程助手打交道,那你一定遇到过这个让人头疼的场景:想让AI帮你修改一个函数,结果它二话不说,直接把整个几…...

基于HTML/CSS/JS+PHP的GPT API集成:从原理到部署的全栈实践

1. 项目概述:一个全栈Web开发者的效率工具箱 最近在GitHub上看到一个挺有意思的项目,叫“GPT-API-Integration-in-HTML-CSS-with-JS-PHP”。光看名字,你大概就能猜到它的核心:一个演示如何在传统的Web技术栈(HTML、CS…...

基于大语言模型的自主代码生成智能体:从原理到实战搭建

1. 项目概述:当代码生成器遇上“记忆”与“规划”在AI辅助编程的浪潮里,GitHub Copilot、Cursor这类工具已经成为了不少开发者的“标配”。它们能根据你敲下的几行注释,快速生成代码片段,极大地提升了编码效率。但用过一段时间后&…...

产品经理开项目对齐会不想记笔记?2026年这3款视频内容总结ai工具,散会直接出完整纪要

做产品经理开一下午项目对齐会,脑子已经转不动了,散会老板一句“下班前把纪要出给我”,瞬间头大;作为内容创作者,采访完嘉宾,几个小时的录音要逐句拖进度条整理,熬到半夜眼睛都花了;…...

大模型“幻觉”不再!揭秘RAG技术如何让AI开卷考试,秒变知识达人!

🤔 为什么大模型总爱“一本正经地胡说八道”? 用过 ChatGPT、文心一言或者自己部署过 Gemma、Llama 的朋友,大概率遇到过这两种情况:幻觉问题:你问它“鲁迅为什么暴打周树人”,它真能给你编出一段民国秘闻&…...

RAG技术大揭秘:从入门到高阶,助你构建智能问答系统!

近年来,随着大语言模型(LLM)的广泛应用,检索增强生成(Retrieval-Augmented Generation,RAG)系统逐渐成为连接私有知识库与智能问答的核心架构。RAG 不仅弥补了大模型在实时性与事实性上的不足&a…...

拼多多股权曝光:腾讯持股13.8% 价值1319亿 是最大机构股东

雷递网 雷建平 5月9日拼多多(NASDAQ: PDD)日前发布20-F文件,文件显示,截至2026年3月18日,拼多多一共有 5,693,585,848股A类股,没有B类股,拼多多创始人黄峥持有1,409,744,080股,持股比例为24.8%,…...

Zabbix AI技能实战:基于MCP协议实现自然语言监控运维自动化

1. 项目概述 如果你和我一样,在运维Zabbix监控系统超过五年,那你一定经历过这样的场景:凌晨三点被告警电话吵醒,登录Zabbix Web界面,手忙脚乱地点击一个又一个菜单,试图搞清楚到底是哪个主机的哪个触发器出…...

体验Taotoken官方价折扣活动对降低AI实验成本的直接影响

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 体验Taotoken官方价折扣活动对降低AI实验成本的直接影响 对于开发者而言,在原型验证和产品迭代阶段,模型调…...

为AI编码助手注入设计思维:UX技能包提升开发与协作效率

1. 项目概述:为AI编码助手注入设计思维如果你和我一样,日常重度依赖Claude Code、Cursor这类AI编码助手来提升开发效率,那你肯定也遇到过类似的困境:当你让它“优化一下这个页面的用户体验”或者“检查一下这个组件的可访问性”时…...

Maestro工作流引擎:声明式编排与复杂自动化流程实践

1. 项目概述:一个面向开发者的全能型工作流编排引擎最近在梳理团队内部持续集成和自动化测试的流程,发现随着项目复杂度的提升,传统的脚本串联方式越来越力不从心。脚本分散、依赖管理混乱、错误处理不统一,每次流程调整都像在拆解…...

非厄米量子系统中的精度诱导不可逆性研究

1. 非厄米量子系统中的精度诱导不可逆性:现象与机制在量子力学框架下,我们通常研究的系统由厄米(Hermitian)哈密顿量描述,这类系统具有实数能谱和幺正演化性质。然而,当系统与外界环境存在粒子或能量交换时…...

基于可变字体与光标交互的磁吸文字效果实现与优化

1. 项目概述:让字体与光标共舞的交互式工具在网页设计的工具箱里,我们总在寻找那些能让静态页面“活”起来的细节。动画、过渡、微交互……这些元素共同构成了现代网页的呼吸感。但你是否想过,页面上的文字本身,也能成为这种动态体…...

Tenere:专为LLM设计的终端TUI工具,提升开发者AI对话效率

1. 项目概述:一个为LLM而生的TUI终端神器 如果你和我一样,每天在终端里泡的时间比在图形界面里还多,同时又离不开各种大语言模型来辅助编程、写作或者查资料,那你肯定也受够了在浏览器标签页和终端窗口之间反复横跳的麻烦。每次想…...

MATLAB算法合成技术在DSP硬件设计中的应用与优化

1. MATLAB算法合成如何重塑DSP硬件设计流程在数字信号处理(DSP)领域,算法开发者与硬件工程师之间长期存在着一条明显的分界线。算法团队使用MATLAB构建优雅的数学模型,而硬件团队则需要将这些抽象算法转化为实际的电路设计。这个转…...

PawForge AI:基于工作流引擎的AI应用开发框架实战解析

1. 项目概述与核心价值最近在AI应用开发圈子里,一个名为“PawForge AI”的项目引起了我的注意。这个项目来自一个名为“NYX-305Parad0xLabs”的组织,名字本身就透着一股神秘感和技术范儿。作为一个长期在AI工具链和自动化流程领域摸爬滚打的从业者&#…...

AI与空间计算融合:在Vision Pro上部署与优化机器学习模型的工程实践

1. 项目概述:当苹果Vision Pro遇上开源AI,一场空间计算的“化学反应”最近在GitHub上闲逛,发现了一个挺有意思的项目,叫imclab/Apple-Vision-PRO-AR-VR-XR-AI。光看这个仓库名,信息量就爆炸了,直接把苹果的…...

ARM虚拟化架构中HCRX_EL2寄存器详解与应用

1. ARM虚拟化架构与HCRX_EL2寄存器概述 在ARMv8/v9架构的虚拟化实现中,异常等级(EL)机制构成了安全隔离的基础框架。EL2作为专为虚拟化设计的特权等级,通过一组精心设计的系统寄存器实现对硬件资源的精确控制。其中HCRX_EL2(Extended Hypervi…...