应用层模型及协议总结(一)
应用层模型及协议总结(一)
体系结构
现代网络应用程序两种主流体系结构:
-
客户-服务器体系结构(C/S)
网络边缘端系统作为客户,向数据中心服务器请求服务。我们平时用的最多的也就是这种方式,例如各种需要连接网络的应用程序微信,音乐,bilibili等等。
-
对等体系结构(P2P)
网络中每一个主机互相对等直接通信,很小依赖甚至不对服务器有依赖。平时下载文件的时候很有可能使用的就是这种方式。例如p2p下载器,BitTorrent软件等等。
协议
通俗的理解,事先约定好的内容就可以叫做协议。应用层中包含许多的协议,他们应用于实际的应用程序,只考虑在不同的端系统中如何相互传递信息,也叫做报文。例如HTTP协议、SMTP协议,IMAP协议,POP3协议等等
HTTP
HTTP协议也叫做超文本传输协议,全称是Hyper Text Transfer Protocol。至于为什么叫做超文本传输,这是因为网络中传输的信息不仅仅只有文本,还有音频流,视频流等信息。显然这个协议是我们网络中最常接触到的。在细致介绍http之前需要先了解Web页面的组成,web页面是由许多的对象组成,这些对象可以是文件,图片,程序,或者是视频。通过使用URL可以定位这些文件在服务器中的位置。而URL是统一资源定位符(Uniform Resource Locator)。URL由两部分组成,前面一部分是主机名,也就是我们常见的www.xxxxx.com。而后面的也就是文件路径的名称,像linux系统中/opt/module/test.jpg等等。组合起来就是 http://www.xxxxx.com/opt/module/test.jpg 。例如https://leetcode-cn.com/problemset/all/就代表leetcode的主页。而要请求这个页面就要使用到http协议了。
行为方式可以参考下图

首先我们的主机先对服务器发起一个http请求,然后服务器响应请求,发送一个http响应给我们的主机,这样就接收到了服务器发送过来的页面数据。但是还有几个问题。
- 如何让这两个主机之间确定发送和接收的内容?
这需要看到http协议中定义的内容了。一个典型的http请求报文如下:

其中第一行称为请求行,定义了请求方式,请求url和http的版本。后面的行叫做首部行。其中看到请求行和Host行,就可以通过url获取对应服务器上的pate.html文件。
而一个响应报文如下所示:

第一行叫做状态行,之后的也叫做首部行,然后最后面的数据就是实体体,也就是返回额数据。这就将请求报文中所请求的数据发送给了主机。
-
难道响应是把所有数据一次打包全部发送给我们的主机吗?
不一定,http协议使用tcp协议作为支持运输协议。所以也就是可靠连接。每一个资源请求都通过一个单独的tcp连接,这种方式称之为非持续连接,而如果所有资源都采用同一个tcp连接,这种方式则称之为持续连接。例如在请求行中的Connection字段,若为close则表示是非持续连接,若为keep-alive则是持续连接。
-
请求一定收得到吗?如果收不到会怎么办?
请求不一定能够收得到,收不收得到可以由响应报文中的状态码来确定,例如响应报文中状态行的200表示正常接收。若为其他的数字则表示其他的情况,例如404表示请求的文档不在服务器上。
事实上请求报文和响应报文中定义的每一行都可以对应到一些情况,这些特殊的情况如何处理也就是http所定义的内容,它只负责管理实际业务中可能会发生的,而不会考虑信息如何传递的细节,这些都只需要交给tcp协议去做就可以了。协议分层提供给了业务更大的自由度。
SMTP
SMTP全称为简单邮件传输协议Simple Mail Transfer Protocol。SMTP用于从发送方的邮件服务器发送报文到接收方的邮件服务器。SMTP出现的要比HTTP早得多,它限制了邮件报文的体部分只能采用7比特的ASCII表示,因为早期的邮件没有人会发送大的图片或者是视频,但在今天7比特显然不够用。SMTP也依赖于TCP的可靠数据传输服务。一个典型的SMTP报文如下:

其中指明了发送方的地址和接收方的地址。然后紧跟着的就是数据。SMTP报文首部中必须包含From和To以及首部行。首部行中的内容都不尽相同。
POP3
POP3协议全称为第三版邮局协议Post Office Protocol--Version3。这是一个简单的邮件访问协议,SMTP定义了邮件报文如何从一个服务器传送到另一个服务器,而POP3定义了如何从邮件服务器中收取邮件。它分为了三个阶段工作,分别是特许、事务处理、更新。在特许阶段也就是验证用户的身份。然后进入到事务处理阶段用户将读取邮件,将邮件保存或者是做删除标记。完成后进入到更新阶段,服务器就删除那些被标记为删除的邮件。在会话过程中POP3服务器保留了标记等状态信息。但POP3服务器不会在会话过程中携带状态信息。
IMAP
IMAP协议全称为因特网邮件访问协议Internet Mail Access Protocol。IMAP比POP3多定义了许多的功能。它能够将收件人的邮箱文件夹和邮件相联系。收件人能够创建文件夹,将邮件移动到新的文件夹,以及提供了在远程文件夹中查看邮件的命令。值得注意的是IMAP协议在会话过程中携带了状态信息,这与POP3不同。例如上一次操作完成后文件夹的状态,哪些报文和哪些文件夹相关联。
现在的电子邮件
现在的电子邮件从发送端到服务器以及从服务器到接收端都广泛使用HTTP协议,而邮件服务器之间还在使用SMTP协议。

浙公网安备 33010602011771号