当前位置:文档之家› 17【协议分析】【超文本传输协议HTTP协议分析】

17【协议分析】【超文本传输协议HTTP协议分析】

实验十七超文本传输协议HTTP分析

【实验目的】

1、掌握HTTP协议的原理和报文格式;

2、了解HTTP协议的工作过程;

3、了解应用层协议与传输层协议的关系。

【实验学时】

2学时

【实验环境】

本实验要求实验室主机能够连接到Internet,并可浏览网页。

实验拓扑如图5- 96所示:

图5- 96 实验拓扑图

【实验内容】

1、学习HTTP协议的格式和与TCP协议的关系;

2、了解HTTP协议的工作过程;

3、学习协议编辑软件的使用方法。

196

【实验流程】

图5- 97 实验流程图

【实验原理】

超文本传输协议(HTTP)是应用层协议,由于其简捷、快速的方式,适用于分布式的

超媒体信息系统。自1990年起,HTTP 就已经是主要应用于 WWW系统上存取数据的协

议。

HTTP 是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给

服务器,请求的格式是:统一资源标识符(URI)、协议版本号,后面是类似 MIME (通用

因特网邮件扩充协议,Multipurpose Internet Mail Extensions)的信息,包括请求修饰符、

客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式是:一个状态

行包括信息的协议版本号、一个成功或错误的代码,后面也是类似 MIME 的信息,包括服

务器信息、实体信息和可能的内容。

HTTP在知名端口80上使用TCP的服务。

HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成,下面详细描述

2种报文的格式。

HTTP的请求报文

197

请求报文的一般格式包括请求行、首部、一个空行,以及只在某些报文中出现的主体。

如图5- 98所示:

图5- 98 HTTP请求报文格式

其中:

请求行:包括请求类型、空格、URL、空格以及HTTP版本。

z请求类型:此字段定义了几种不同方法的报文,常用的几种方法包括:

¾ GET:客户要从服务器读取文档时使用。

¾ HEAD:客户想得到关于文档的某些信息,但并不是要这个文档时使用。

¾ POST:当客户要给服务器提供某些信息时使用。

¾ PUT:当客户将新的或更新的文档存储在服务器上时使用。

¾ COPY:当需要将文件复制到另一个位置时使用。

¾ MOVE:当需要将文件移到另一个位置时使用。

¾ DELETE:当需要将服务器上的文档移走时使用。

¾ LINK:当需要创建从一个文档到另一个位置的链按时使用。

¾ UNLINK:当需要删除由LINK方法创建的链接时使用。

¾ OPTION:当客户向服务器询问到一些可用的选项时使用。

z统一资源定位符(URL):有4个要素:方法、主机、端口、路径,格式为:

方法://主机:端口/路径

¾方法:用来读取文档的协议。

¾主机:放置信息的计算机。

¾端口:服务器的端口号,可选。

¾路径:放置文件的路径名。

首部:在客户和服务器之间交换附加的信息。例如,客户可以请求文档以特殊的形式发送,或服务器可以发送关于该文档的额外信息。首部可以有一个或者多个首部行,每一个首

部行由一个首部字段名、一个冒号、一个空格和一个首部字段值组成。一个首部行属于4

个种类中的一个:通用首部、请求首部、响应首部和实体首部。请求报文可以只包含通用首

部、请求首部和实体首部;响应报文则只包含通用首部、响应首部和实体首部。

198

主体:主体可以出现在请求报文或响应报文中。通常,它包含要发送的或接收的文档。

HTTP的响应报文

响应报文的一般格式包括状态行、首部、一个空行,以及只在某些报文中出现的主体,如图5- 99所示:

图5- 99 HTTP响应报文格式

其中:

状态行:包括HTTP版本、空格、状态码、空格、状态短语。

z状态码:用在响应报文中,由3位数字组成,100系列的代码只是提供信息,200系列的代码指示成功的请求,300系列的代码把客户重定向到另一个URL,400

系列的代码指示客户端差错,500系列的代码指示服务器端差错,z状态短语:是对原文的状态码作简短的描述,以文本形式解释状态码。

下面列出了一些常用的状态码及状态短语:

表5-13 状态码列表

状态码状态短语含义

100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。

101 Switching

Protocols

服务器将遵从客户的请求转换到另外一种协议

200 OK 一切正常,对GET和POST请求的应答文档跟在后面。201 Created 服务器已经创建了文档,Location头给出了它的URL。202 Accepted 已经接受请求,但处理尚未完成。

204 No Content 没有新文档,浏览器应该继续显示原来的文档。

301 Moved

Permanently

客户请求的文档在其他地方,新的URL在Location头中给出,浏览

器应该自动地访问新的URL。

302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。

注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。

199

相关主题