在平时的测试、与开发人员的交流过程中,我们经常会听到很多这样子的词语:请求、响应、URL、Get、Post、Cookie、重定向、Http头、服务器500错误、404错误、等等,其实这些都是HTTP协议中的概念。我们平常所说的B/S结构(例如我们再熟悉不过的淘宝网),就是采用HTTP协议作为信息交换方式。所以,比较全面地了解一下HTTP协议,对我们的测试工作应该会有比较大的帮助。
下面是网上找到的一个关于HTTP协议的很简单的定义:
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
下面以访问淘宝首页为例,说明一下这个过程:
 1)首先,我们在浏览器地址栏中输入:http://www.taobao.com 并敲入回车,
  这时,浏览器向淘宝的服务器发起一个这样的请求,其中的信息如:
  http_req.JPG
  2)服务器上的Apache收到这个请求,处理后,向浏览器返回这样的信息:
   http_rep.JPG
  3)浏览器收到服务器的相应信息,然后进行展现.
  平常,我们所进行的功能测试,就是这样不断地进行上述的过程,根据不同的功能,构造不同的提交请求参数,然后通过浏览器的展示界面,判断服务器的返回是否正确;自动化测试,其基本过程也是根据事先录制好的脚步,由QTP工具模拟浏览器构造HTTP请求,然后通过设置好的检查点,验证服务器的返回是否正确;而测试的另外一个领域,性能测试,同样,也是通过预先写好的脚本,由LoadRunner来模拟HTTP请求提交给服务器,不同的是,性能测试只需要获得服务器返回的时间,并不进行内容的展现。
今天先写到这里,接下来,会结合HttpWatch工具的体会,来看HTTP协议在具体的测试中的使用。