1、应用层:网络应用是计算机网络体系结构的最上层,网络应用程序运行在网络边缘的端系统上,通过彼此间的通信来共同完成某项任务。应用层规定了应用进程在通信时所遵循的协议。
2、应用层协议:为实现某种网络应用,不论是客户进程和服务器进程之间,还是对等方之间,都需要遵循的某种通信协议。
2.1应用层协议之HTTP协议(超文本传输协议):
2.1.1概念
HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。HTTP使用的运输层协议是TCP,默认端口号是80。
2.1.2 HTTP报文种类:
(1)请求报文:由客户端向服务端发送请求报文
(2)响应报文:由服务端向客户端发送响应报文,作为请求报文的应答
2.1.3 HTTP请求报文的方法:
请求方法 | 作用 |
---|---|
OPTION | 请求一些选项的信息 |
GET | 请求读取由 URL所标志的信息 |
HEAD | 请求读取由 URL所标志的信息的首部 |
POST | 给服务器添加信息(例如,注释) |
PUT | 在指明的 URL下存储一个文档 |
DELETE | 删除指明的 URL所标志的资源 |
CONNECT | 用于代理服务器 |
TRACE | 用来进行环回测试的请求报文 |
2.1.4 HTTP状态码
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
2.1.5 HTTP/1.0协议
HTTP/1.0协议:采用非持续连接方式,在非持续连接方式中,浏览器每次请求一个文件,浏览器都首先要和服务器TCP连接,当浏览器收到响应后就立即关闭连接,即一次请求或响应对应一个TCP连接。
浏览器和服务器建立TCP连接需要三次握手,当三次握手的前两次完成(已经过了一个RTT时间),此时浏览器会把请求报文放在三次握手的第三部分,作为TCP连接确认报文的数据发送给服务器,服务器收到请求报文后,就根据请求将浏览器所请求的数据发送给浏览器。
RTT:一个连接的往返时间
缺点:因为每次请求,浏览器都要与服务器先建立TCP连接,而建立TCP连接是需要一定的时间的,若RTT值较大,请求开销就会比较大,影响用户体验。
2.1.6 HTTP/1.1协议
HTTP/1.1协议:使用的是持续连接方式,该方式和上图类似,只不过服务器发送完响应后仍然保持这一条连接,使得同一用户浏览器和该服务器始终保持连接状态,后续用户可以持续在这条连接上发送请求报文,接收响应报文。HTTP/1.1协议还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前可以流水线式的连续发送多个请求报文,然后服务在接收到请求报文后,服务器逐个的发送请求报文。
优点:节省了RTT的次数,提高了效率。
2.2应用层协议–FTP协议(文件传输协议):
文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
2.3应用层协议–STMP协议(简单邮件传输协议):
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议:是一组用于由源地址到目的地址传送邮件 的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件 时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程 只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。