第七章 应用层协议的测试及分析.doc
文本预览下载声明
第七章 应用层协议的测试及分析
7.1 HTTP超文本传输协议
7.1.1 HTTP原理
HTTP(Hyper Text Transfer Protocol)是WWW应用层的通信协议,它是WWW的核心。WWW服务由两个部分组成:客户程序和服务器程序。客户程序和服务器程序分别驻留在不同的机器上,通过HTTP来交换信息。HTTP定义了客户和服务器之间如何交换信息以及所交换信息的格式。
浏览器是WWW服务的客户端,它显示所需的Web页面,并且提供导航和配置功能。浏览器实现了HTTP协议的客户端功能。常用的浏览器有网景公司的Netscape Communicator和微软公司的Internet Explorer。而Web服务器则存放通过URL来寻址的Web网页,它实现的是HTTP的服务端功能。常用的Web服务器有Apache、微软的IIS(Internet Information Server)和网景公司的Netscape Enterprise Server等。
图7.1 HTTP交互模型
HTTP定义了浏览器如何向Web服务器请求Web页面以及服务器如何将WEB页面传递给浏览器,如图7.1所示。当用户请求一个Web页面时,浏览器将HTTP请求信息发送给服务器。服务器接受这个请求并进行分析,最后将包含Web页面的HTTP应答返回给浏览器。
HTTP请求报文由三个部分组成,即请求行、首部行和实体主体,如图7.2所示。其中请求行由三个字段组成:请求方法、被请求者的URL和HTTP的版本。首部行则说明了浏览器的属性和此次请求的一些选项。实体主体在大多数请求中不出现。下面是出现在请求报文中的常用方法:
GET:请求读取URL标识的对象;
HEAD:请求读取URL标识的对象的首部;
POST:给服务器添加信息;
OPTION:请求一些选项的信息。
图7.2 HTTP请求报文结构
在下面的例子中,Web浏览器按HTTP/1.1的协议格式请求主机上的网页/department/computer/index.htm。
GET /department/computer/index.htm HTTP/1.1
Host:
Connection: Close
User-agent: Mozilla/4.0
Accept: text/html,image/gif,image/jpeg
Accept-language: en
[CRLF]
与HTTP请求报文相类似,HTTP应答报文是由状态行、首部行和实体主体组成,如图7.3所示。其中状态行包含HTTP 的版本、状态码和解释状态码的简单短语,用以指明此次HTTP请求的操作结果。
图7.3 HTTP应答报文结构
状态码由3位数字组成,其中第1位表示大类,其余2位表示小类,可分为:
–1xx – 保留未用;
–2xx – 成功,表示请求已被成功接收、理解和执行;
200 OK
201 POST command successful
202 Request accepted
203 GET or HEAD request fulfilled
204 No content
–3xx – 重定向,表示需要进一步的操作来完成请求;
300 Resource found at multiple locations
301 Resource moved permanently
302 Resource moved temporarily
304 Resource has not modified (since date)
–4xx – 客户端错误,表示HTTP请求语法错或请求不能实现;
400 Bad request from client
401 Unauthorized request
403 Resource access forbidden
404 Resource not found
405 Method not allowed for resource
–5xx – 服务器错误,表示服务器不能完成一个有效的请求。
500 Internal server error
501 Method not implemented
502 Bad gateway or server overload
503 Service unavailable / gateway timeout
504 Secondary gateway / server timeout
下面为HTTP应答报文的一个实例:
HTTP/1.1 200 OK
Connection: Close
Date: Tue, 27 Nov 2001 16:20:10 GMT
Server
显示全部