网络之间通过把报文发送进套接字使网络进程间实现相互通信。但是如何构造这些报文?在这些报文中的各个字段的含义是什么?进程什么时候发送这些报文?这些问题将带我们进应用层协议的范围。应用层协议定义了运行在不同端系统上的应用程序如何相互传递报文。特别是应用层协议定义了:
1、交换的报文类型,例如请求报文和响应报文
2、各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
3、字段的寓语义,即这些字段中包含的信息和含义
4、一个进程什么时候以及怎样发送报文,对报文进行响应的规则
有些应用层协议是由RFC文档定义的,因此它们位于公共域中。例如,web应用层协议HTTP(超文本传输协议)就作为一个RFC可供使用。如果浏览器开发者遵从HTTP RFC规则,所开发出来的浏览器就能够访问任何遵从该文档标准的web的服务器并获取相应的web页面。还有许多别的应用层协议是专用的,有意不为公共域使用。例如,Skype使用了专用的应用层协议。
区分网络应用和应用层协议是很重要的。应用层协议只是网络应用的一部分(尽管从我们的角度看,他是应用非常重要的一部分)。举一些栗子:web是一种客户—服务器应用,他允许客户按照需求从web服务器获得文档。该web应用有许多的组成部分,包括文档格式的标准(即HTML)、web浏览器(Firefox),web服务器,以及一个应用层协议。web的应用层协议是HTTP,它定义了在浏览器和web服务器之间传输的报文格式和序列。因此,HTTP只是web应用的一个部分。想另外一个例子:
因特网电子邮件应用也有很多组成部分,包括能够能容用户邮箱的邮件服务器、允许用户读取和生成邮件的邮件客户程序、定义电子邮件报文结构的标准、定义报文和如何在服务器之间以及如何在服务器与邮件客户程序之间传递的应用层协议、定义如何对报文首部的内容进行解释的应用层协议。用于电子邮件的主要应用层协议就是SMTP(简单邮件传输协议)。因此、电子邮件的首要应用层协议SMTP也只是电子邮件应用的一个部分
变优秀,做个懂事,懂得分寸,明事理的人