应用层
已同步微信公众号:乐享Coding
,期待你的关注!
应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。
首先对应用层要有个大概了解,思维导图是个不错的工具,废话不说,上图
!
网络应用模型
网络应用程序运行在处于网络边缘的不同的端系统上,在各种端系统上的组织方式和他们之间的关系。目前流行的有两种:
客户/服务器(C/S)方式
应用 :万维网www,电子邮件,文件传输FTP等。
服务器:提供计算服务的设备
- 永久提供服务
- 固定的IP地址,端口号(http 80)
- 永久性访问地址域名
客户端:请求服务的主机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP
对等(peer-to-peer,P2P)方式
在P2P方式中,没有固定的服务请求和服务提供者,分布在两端的应用进程是对等的,称为对等方,对等方相互之间直接通信。
应用:P2P文件共享,即时通信,P2P流媒体
DNS域名系统
由于IP地址难以记住,因此采用域名的方式方便记忆,因特网采用层次树状结构的域名结构,分为顶级域名TLD,二级级域名,三级域名,(四级域名)
如 www.baidu.com 从右到左为顶级域名,二级域名,三级域名,中间以点 . 隔开!
根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中。这样⼀来,任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了。
因此,客户端只要能够找到任意⼀台 DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再⼀路顺藤摸瓜找到位于下层的某台⽬标 DNS 服务器。
DNS域名解析
- 主机向本地域名服务器的查询一般都是采用
递归查询
。
递归查询简单来说是指路加带路,问一个人路,他不知道会亲自找上一级,上一级不知道会亲自找上上一级,直到返回结果。
- 本地域名服务器向根域名服务器的查询的
迭代查询
。
迭代查询简单来讲只指路不带路,问一个人路,问一个人路,他不知道会通知你找他的上一级,上一级不知道会通知你找他的上上一级,直到返回结果。
Email电子邮件
电子邮件是因特网上最早流行的一种应用,系统采用C/S方式,主要由三部分构成:
用户代理:用户与电子邮件的接口,电子邮件客户端的软件!
邮件服务器:因特网上所有的ISP都是邮件服务器,其功能是发送和接收邮件,同时负责维护用户的邮箱。
邮件传输协议:邮件传输所遵循的协议如SMTP.
图解电子邮件的整个过程:
SMTP的局限性:只能传输ASCII码文本数据。图片视频音频这些超文本和中文日文等都不能传输。因此提出了MIME.
图解如下:
邮件读取协议:
-
POP3(110)
:只允许用户下载并保留和下载并删除邮件,并不能在线管理邮件。(如分类邮件,创建文件夹) -
IMAP4(143)
:用户可以操控邮件服务器的邮箱,实现了在邮件服务器管理邮件。
目前,一般常用的是基于web的电子邮件
图解如下:
WWW万维网
万维网是一个大规模的、联机式的信息储藏所,是运行在因特网上的分布式应用。万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑的信息网。
*URL(统一资源定位符URL)*来指明因特网上任何种类“资源”的位置。
组成:<协议>://<主机>:<端口号></路径>
举例:https://www.baidu.com:443/index.html
文档:HTML,CSS,JAVASCRIPT
HTTP协议:
定义了浏览器(客户端进程)怎么向万维网服务器请求万维网文档,以及万维网服务器如何把万维网文档传给浏览器,是因特网上应用最为广泛的一种网络传输协议。
图解如下:
HTTP/1.0:采用非持续连接的方式,每次浏览器请求一个文件都要与服务器建立TCP连接,当收到响应后关闭连接。这当然会造成请求多个对象(如图片)就会连接多次,每一次都会花费2RTT的时间。
HTTP/1.1:采用持续连接的方式,服务器在发送响应报文后仍保持连接,只要文档在同一浏览器,就只需建立一次连接。除此之外,又采用了流水线方式,即浏览器收到服务器的响应报文后可一次发多个请求报文。
报文格式:HTTP是面向文本的,其中报文中每一个字段都是ASCII码串,并且每个字段的长度都是不确定的。
请求报文实例
响应报文实例
HTTP/1.1 200 OK
Keep-Alive:timeout=10,max=500
Connection:keep-alive
Content-Type: text/html; charset=utf-8
两种报文基本格式
响应报文状态码
请求方法
最常用的是GET
与POST
方法
Get ⽅法:请求从服务器获取资源,这个资源可以是静态的⽂本、⻚⾯、图⽚视频等。这种请求方式是安全幂等的,即不会改变服务器的文档内存。
幂等的含义:多次执⾏相同的操作,结果都是相同
的。
POST⽅法则是相反操作,它向 URI 指定的资源提交数据,数据就放在报⽂的 body ⾥。例如留言功能,需要添加数据,所以是不安全且不幂等。
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
-
HTTP1.0
定义了三种请求方法:GET, POST和 HEAD方法。 -
HTTP1.1
新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE和CONNECT方法。
HTTP缺点:
-
无状态
(即不会保存数据在服务器,无法记录用户数据) -
不安全
(因为是面向报文,明文传输,很容易别识别,因此推出了https,进行了加密)
万维网利用服务器Cookie封装用户信息附加在响应报文中,弥补HTTP的缺点,但因为是保存在客户端,因此会产生安全问题
,这里不在延申。Cookie只是最简单的解决无状态的一种方法。
FTP文件传送协议
FTP是因特网上使用的最广泛的文件传送协议。(尤其用于批量传输文件)
其优势是屏蔽了各计算机系统的细节适用于异构网络中任意计算机之间传送文件。
Windows系统可下载第三方FTP服务器将主机作为FTP服务器,客户端可使用第三方的FIP客户工具软件,无需记住FTP客户端工具命令,操作简便!
图解FTP过程: