文章目录
- 应用层协议原理
- 万维网和HTTP协议
- 万维网概述
- 统一资源定位符
- HTML文档
- 超文本传输协议(`HTTP`)
- HTTP报文格式
- 请求报文
- 响应报文
- cookie
- 万维网缓存与代理服务器
- DNS系统
- 域名空间
- 域名服务器和资源记录
- 域名解析过程
- 递归查询
- 迭代查询
- 动态主机配置协议(DHCP)
- DHCP中继代理
- DHCP交互过程
- 电子邮件
- 电子邮件系统的组成
- 简单邮件传送协议
- 邮局协议POP3
- 互联网报文存取协议
- 电子邮件格式和MIME
应用层协议原理
万维网和HTTP协议
万维网概述
万维网简称Web
是一个大规模的、联机式的信息存储空间,是运行在互联网上的一个超大规模的分布式应用
万维网应用通过统一资源定位符URL
来指明因特网上任何种类资源的位置,通过超文本标记语言html
描述信息资源、通过超文本传输协议http
传递信息资源
统一资源定位符
url的组成
< 协议 > : / / < 主机 > : < 端口 > / < 路径 > {<协议>://<主机>:<端口>/<路径>} <协议>://<主机>:<端口>/<路径>
比如湖南科技大学的官网:
- < 协议 > : / / {<协议>://} <协议>:// :他指出访问该资源所使用的协议,或称为服务方式,最常用的协议就是
HTTP
和HTTPS
- < 主机 > : < 端口 > {<主机>:<端口>} <主机>:<端口> :他指出保存该资源的主机和处理该URL的服务器进程。其中 < 主机 > {<主机>} <主机>是指保存该资源的主机的域名或者IP地址, < 端口 > <端口> <端口>指明处理该url的进程,如果服务器上采用的端口是已经在IANA注册过的熟知端口,则 : < 端口 > {:<端口>} :<端口>可以省略,HTTP在IANA注册的熟知端口是80端口,当Web采用80端口时,就可以省略 : < 端口 > {:<端口>} :<端口>
- / < 路径 > {/<路径>} /<路径> :指出资源在该主机中的具体位置,如目录和文件名,
/
代表根目录,根目录时一个逻辑目录,它可以映射到主机上的某个物理目录,映射关系由服务器程序指定
eg:例如,郑州大学主页的URL为"http://www/zzu.edu.cn",省略了HTTP的熟知80端口, 也省略了 / < 路径 > {/<路径>} /<路径>部分,它代表使用HTTP访问主机 w w w . z z u . e d u . c n {www.zzu.edu.cn} www.zzu.edu.cn 上的根目录下的默认资源,于目的主机的80端口绑定的服务器进程负责处理该URL指定的资源的访问。
HTML文档
万维网引入了超文本标记语言(HTML)
作为万维网页面的标准语言
-
HTML
是一种标记语言,或者说是一种描述如何格式化文档的语言,使用标记标签来描述网页文档,HTML标记标签
简称为HTML标签
-
HTML标签是由一对 < > {<>} <>包含的关键词,通常成对出现,第一个标签是开始标签,第二个标签是结束标签,从开始标签到结束标签之间的所有代码称为
HTML元素
-
HTML定义了几十种不同的元素,用来定义不同的对象,如 < i m g > {<img>} <img>来定义图像, < p > {<p>} <p>来定义段落, < a > {<a>} <a>定义超链接
-
HTML的目标是指定文档的结构而不是文档外观,文档外观指定使用
CSS
,javascript
是一种脚本语言用来控制网页的行为 -
静态HTML文档
:静态HTML文档在创作完毕后就存放在万维网服务器中,它的内容不会根据浏览器发来的数据而改变 -
动态HTML文档
:动态HTML文档在浏览器访问服务器时才创建,当浏览器的请求到达时,服务器会将URL映射到一个应用程序,由应用程序根据请求中的数据创建一个HTML
文档,根据请求不一样,得到的文档也不一样 -
活动HTML文档
:活动文档HTML是把创建文档的工作移动到浏览器里进行,服务器发回给浏览器的文档中包含脚本程序,浏览器执行脚本后,得到完整的HTML文档,一旦文档建立后,她所包含的内容荣也就被固定下来了
超文本传输协议(HTTP
)
HTTP由两个一个客户程序(浏览器程序)和一个服务器程序(通常是万维网服务器),浏览器和万维网服务器一般运行在不同的端系统中,通过HTTP报文进行会话。
HTTP大致的工作过程如下:
hhtp/1.0
:仅支持非持续连接
http/1.1
:既支持非持续连接也支持持续连接
- 非持续连接方式
非持续连接方式下每获取一个文件就要有两倍的RTT
的时间开销 - 持续连接方式
不用每次传输都建立TCP连接,只需要在最开始的一次传输中建立TCP连接即可
持续连接方式中还可以采用两种不同的方式,一种是流水线方式,一种是非流水线方式
流水线方式就是我们在未收到HTTP相应报文是也可以发送新的HTTP请求报文
非流水线方式是只有在接收到上一次HTTP响应报文后才能发送新的HTTP请求报文
HTTP报文格式
http报文分为两类一类是请求报文,一类是响应报文, http是面向文本的,因此报文中的每一个字段都是一些ASCLL码串。
请求报文和响应报文均由三部分组成
- 开始行:在请求报文中开始行叫请求行,在响应报文中开始行叫状态行
- 首部行:用来说明浏览器、服务器、或报文主体的一些信息。首部行可以包含多行,也可以不使用。每一行都有首部字段名和它的值
- 实体主体:在请求报文中叫请求主体,在响应报文中叫响应主体
请求报文
http的几种方法:
GET
用于获取URL指定的资源
POST
用于提交信息或数据
HEAD
用于请求读取URL所指定的资源的首部
PUT
向指定URL上传内容
DELETE
请求服务器删除指定URL的资源
TRACE
回显服务器收到的请求,用于测试或诊断
CONNECT
用于代理服务器
OPTION
请求服务器告知选项功能
响应报文
cookie
http是无状态协议,每次请求之间是相互独立的,cookie可以弥补http协议无状态的不足
cookie包含四个组件:
- http响应报文中的Set-cookie首部行
- http请求报文中的cookie首部行
- 在用户系统中保存的cookie,cookie可以保存在磁盘上由浏览器管理
- 位于万维网服务器的后端数据库
万维网缓存与代理服务器
DNS系统
域名空间
顶级域名
- 国家顶级域名:
cn
、us
、uk
- 通用顶级域名:
com(公司企业)
、net(网络服务机构)
、org(非营利组织)
、int(国际组织)
、edu(美国的专用教育机构)
、gov(美国的政府部门)
、mil(美国的军事部门)
- 基础结构域名/反向域名:
arpa
(只有这一个)用于反向域名解析
二级域名:(我国)
类别域名
:ac(科研机构)
、com(工商金融等企业)
、edu(中国的教育机构)
、gov(中国的政府机构)
、net(提供互联网络服务的机构)
、org(非营利性的组织)
、mil(中国的国防机构)
行政区域名
:用于各省、自治区、直辖市例如bj、js
根是顶级域名后面的一个
.
域名服务器和资源记录
域名服务器:
根域名服务器
:最高层的域名服务器也是最重要的域名服务器,所有根域名服务器知道所有顶级域名服务器的域名和IP地址。互联网上面目前有13个根域名服务器使用13个不同的IP地址的域名a.rootservers.net
~m.rootservers.net
根域名服务器并不会直接把待查询的域名直接转换成IP地址(根域名服务器中也没有保存这些信息),而是告诉DNS解析器下一步应该找哪一个顶级域名服务器进行查询顶级域名服务器
:负责管理在该顶级域注册的所有二级域名,当收到DNS查询请求时他的回答可能是最终的IP地址,也可能是下一步应当找的域名服务器的IP地址权限域名服务器
:负责管理某个区的域名服务器,保存了该区域中的所有主机的域名到IP地址的映射本地域名服务器
:直接为用户提供域名解析服务的域名服务器。当一台主机发出DNS查询请求时,这个查询请求报文被发送给本地域名服务器。每个互联网服务提供方都可以拥有一个本地域名服务器,这种域名服务器有时也称默认域名服务器
域名解析过程
递归查询
如果DNS客户所询问的域名服务器不知道被查询域名的IP地址,那么该域名服务器就将代替DNS客户,继续向其他域名服务器发出查询请求报文,直至得到结果
通常主机向本地域名服务器发起的查询是递归查询
迭代查询
当域名服务器收到迭代查询的请求报文时,要么给出所要查询的主机的IP地址,要么告诉DNS客户下一步应当向哪一个域名服务器进行查询,而不会代替DNS客户进行下一步查询
本地域名服务器向其他域名服务器发出的查询是迭代查询
高速缓存
:
- 高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录,
- 为了保证高速缓存中的内容正确,域名服务器为每项内容设置计时器并删除超过合理时间的项,
- 本地DNS服务器不仅缓存最终查询结果,也能缓存顶级域名服务器的IP地址,因而本地DNS服务器可以绕过根域名服务器
动态主机配置协议(DHCP)
- 互联网上广泛使用动态主机配置DHCP来自动配置网络参数,配置信息一般包括
IP地址
、子网掩码
、默认路由器的IP地址
、和本地域名服务器的IP地址
- DHCP服务分配给DHCP用户的IP地址等网络参数是临时的,只能在一段时间内使用,这段时间称为租用期
- DHCP客户使用UDP68端口,DHCP服务器使用UPDP67端口
DHCP中继代理
为什么需要DHCP中继代理
DHCP客户启动时,需要利用广播报文寻找DHCP服务器,该报文称为DHCP发送报文,DHCP发送报文采用本地网络广播地址作为目的的IP地址,该报文不能被路由器转发,因此DHCP只能发现本网络上的DHCP服务器,这就要求在每个网络上都配置一台DHCP服务器,为了简化配置,避免DHCP服务器过多,我们采用DHCP中继代理解决这个问题
DHCP交互过程
- DHCP客户从UDP端口68以广播方式发送DHCP Discover报文,目的IP:255.255.255.255,源IP地址:0.0.0.0
- DHCP服务器广播发送DHCP Offer报文给予相应
- DHCP客户从收到的Offer报文中选择一个服务器,向所选择的DHCP服务器广播发送DHCP Request报文
- DHCP服务器收到Request报文后,向DHCP客户广播发送DHCP ACK报文
收到DHCP ACK报文时,DHCP客户真正获得、并能够分配IP地址
- 将租期记为T,当到达0.5T时,DHCP客户单播发送DHCP Request报文请求续租,如果没有DHCP ACK报文,则在0.875T时,会再次单播发送DHCP Request报文请求续租
- DHCP服务器收到单播DHCP Request报文,向DHCP客户单播发送DHCP ACK报文或DHCP NAK报文
如果DHCP客户收到DHCP ACK报文,则更新租用期,重新设置计时器
如果DHCP客户收到DHCP NAK报文则停止使用原来的IP地址,发送DHCP Discover报文重新请求
DHCP客户可以随时发送DHCP Release报文,释放IP地址
电子邮件
电子邮件系统的组成
用户代理
:发送发用户代理、接收方用户代理,用户与电子邮件系统的接口,通常情况下是主机中运行的程序邮件服务器
:发送方邮件服务器、接收方邮件服务器,主要功能是发送和接收邮件,以及向发信人报告邮件传送的情况协议
:SMTP(发)
、POP3(收)
、IMAP(收)
简单邮件传送协议
- SMTP规定了在两个相互通信的SMTP进程之间如何交换信息
- SMTP客户使用25端口与SMTP服务器建立TCP连接
- SMTP使用客户-服务器工作方式
- SMTP规定了14条命令、21种应答信息每条命令用几个字母组成,而每一种应答信息一般只有一行信息,由一个3位数字的代码开始,后面附上(也可不附上)很简单的文字说明
SMTP协议的缺点,不能传送可执行文件或其他二进制对象
仅限于传送7位ASCLL码,不能传送其他非英语国家的文字,SMTP服务器会拒绝超过一定长度的电子邮件
邮局协议POP3
特点
:C/S、TCP连接、端口号110
pop3工作方式
:
- 下载并保留(在服务器)
- 下载并删除
互联网报文存取协议
- 特点:
C/S、端口号143
- 发出删命令之前IMAP服务器中的邮件一直保存这
- IMAP允许用户只读取邮件中某些部分,如只读取一个邮件的首部
- IMAP为用户提供了创建文件夹以及将邮件从一个文件夹移动到另一个文件夹的命令
电子邮件格式和MIME
一封邮件由一个基本的信封
、数个首部字段
、一个空行
、邮件主体
组成。首部的每个字段由一行ASCLL文本组成
常见的电子邮件首部及其含义如下:
- MIME在原有的邮件格式基础上,增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。
- MIME定义了五种新的邮件首部
- MIME规定了非ASCII码文件的编码方式
- MIME定义了多种邮件主体的类型和子类型