1.1应用层协议原理
1.1.1 网络应用程序体系结构
-
应用程序的体系结构
应用体系结构指的是应用当中各个部分的组织形式,如客户—服务器体系结构或P2P体系结构。
由应用程序研发者设计,规定了如何在各种端系统上组织改应用程序。
-
网络的体系结构
网络体系结构指的是网络层次的组织形式,比如我们常见的五层网络结构——应用层、运输层、网络层、链路层、物理层。
网络结构式固定的,并为应用程序提供了特定的服务集合。
在客户—服务器体系结构中,有一个总是打开的主机称为服务器,它服务于许多其他称为客户的主机的请求。
在P2P体系结构中,对位于数据中心的专用服务器由最小的(或者没有)依赖。
1.1.2 进程通信
- 在操作系统的术语中,进行通信的实际上是进程。
- 在两个不同端系统上的进程,通过跨越计算机网络交换报文而互相通信。
-
客户和服务器进程
网络应用由成对的进程组成,这些进程通过网络相互发送报文。
-
进程与计算机网络之间的接口
多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文。从一个进程向另一个进程发送的报文必须通过下面的网络。进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文。
-
进程寻址
为了标识接收进程,需要定义两种信息:①主机的地址②定义在目的主机中的接收进程的标识符
1.1.3 可供应用程序使用的运输服务
-
可靠数据传输
-
吞吐量
指发送进程能够向接收进程交付比特的速率
-
定时
-
安全性
-
因特网提供的运输服务
-
TCP服务
TCP服务包括面向连接服务和可靠数据传输服务。
面向连接的服务:在应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息(握手)。
可靠的数据传送服务:通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。
TCP协议还有拥塞控制机制。当发送方和接收方之间的网络出现拥塞时,TCP的拥塞控制机制会抑制发送进程(客户或服务器)。
-
UDP服务
UDP是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。UDP是无连接的,因为在两个进程通信前没有握手过程。UDP提供的是不可靠数据传送服务。
-
英特网运输协议所不提供的服务
吞吐量或定时保证
-
1.1.5 应用层协议
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。特别是应用层协议定义了:
- 交换的报文类型,如请求报文和响应报文
- 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
- 字段的语义,即这些字段中包含的信息的含义
- 一个进程何时以及如何发送报文,对报文进行响应的规则
1.2 Web 和 HTTP(端口号80)
1.2.1 HTTP概况
Web的应用层协议是超文本传输协议,它是Web的核心。HTTP由两个程序实现:一个客户端程序,一个服务器端程序。客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。
HTTP使用TCP作为它的支撑运输协议。
1.2.2 非持续连接和持续连接
-
采用非持续连接的HTTP
当浏览器收到Web页面后,显示给用户。两个不同的浏览器也许会以不同的方式解释(即向用户显示)该页面。HTTP与客户如何解释一个Web页面毫无关系。HTTP规范仅定义了在HTTP客户程序与HTTP服务器程序之间的通信协议。
往返时间(RTT) :该时间是指一个短分组从客户到服务器然后再返回客户所花费的时间。RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延以及分组处理时延。
-
采用持续的HTTP
在采用持续连接的情况下,服务器在发送响应后保持该TCP连接打开。在相同的客户与服务器之间的后续请求和响应报文能够通过相同的连接进行传送。
1.2.3 HTTP报文格式
-
HTPP请求报文
HTTP请求报文的第一行交请求行,其后继的行叫做首部行。请求行有3个字段:方法字段、URL字段和HTTP版本字段。
-
方法字段:GET POST HEAD PUT DELETE
-
首部行
- Host 对象所在的主机
- Connection:关闭首部行
- User-agent:指明用户代理,即向服务器发送请求的浏览器的类型
- Accept-language
-
-
HTTP响应报文
-
初始状态行:有三个字段,协议版本字段、状态码和相应状态信息
-
6个首部行
- Connection:关闭首部行告诉客户,发送完报文后将关闭该TCP连接
- Date:首部行指示服务器产生并发送该响应报文的日期和时间
- Server:指明报文是由哪个服务器产生
- User-agent
- Last-Modified:指示了对象创建或最后修改的日期和时间
- Content-Length:被发送对象的字节数
- Content-Type:指示了实体体重的对象是HTML文本
-
实体体:报文的主要部分,即它包含了所请求的对象本身
-
1.2.4 用户与服务器的交互:cookie
cookie允许站点对用户进行跟踪。
cookie技术有4个组件:
- 在HTTP响应报文中的一个cookie首部行
- 在HTTP请求报文中的一个cookie首部行
- 在用户端系统中保留有一个cookie文件,并有用户的浏览器进行管理
- 位于Web站点的一个后端数据库
1.2.5 Web缓存
Web缓存器也叫代理服务器