【接口测试】接口测试之HTTP协议二
2016-11-05 19:36
309 查看
1. HTTP协议的主要特点可概括如下
1、支持客户/服务器模式;2、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快;
3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记;
4、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间;
5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
6、Keep Alive:长连接和短连接
2.请求方法
方法名 | 备注 | 是否包含实体内容 |
GET | 从服务器获取一份文档 | 否 |
HEAD | 只从服务器获取文档的消息头 | 否 |
POST | 向服务器发送要处理的数据 | 是 |
PUT | 将请求的实体内容存储在服务器上 | 是 |
DELETE | 请求源服务器删除Request-URI标识的资源 | 否 |
TRACE | 对可能经过代理服务器传送到服务器上去的报文进行跟踪 | 否 |
OPTIONS | 决定可以在服务器上执行哪些方法 | 否 |
3.接口常用两种请求方式
HTTP 接口一般有两种请求方式,一种是POST,一种是GET, 需要关注发起请求headers(POST请求还要关注post 数据)和响应的headers和body,一般情况下返回的数据都是json格式。从Chrome的Network去分析一个网页的请求加载顺序大概就能看出,目前很多网页的请求顺序都是先去请求html,从html里得到css和js的地址,去请求css和js,从js里的http接口去请求相关的数据,如果拉取回来的数据还有很多图片或其他地址,在继续请求图片,回填内容到html网页里,网页内容不断更新变化,其实也就是接口拉取出来数据的变化,页面的样式基本都是一样的
4.HTTP方法比较:GET对比POST
两种HTTP请求方法:GET和POST在客户机和服务器之间进行请求-响应时,两种最常用的方法是:GET和POST
GET-从指定的资源请求数据
POST-向指定的资源提交被处理的数据
• GET方法
请注意,查询字符串(名称/值对)是在GET请求的URL中发送的:
/study/debug?name1=value1&name2=value2
有关GET请求的其他一些注释:
GET请求可被缓存
GET请求保留在浏览器历史记录中
GET请求可被收藏为书签
GET请求不应在处理敏感数据时使用
GET请求有长度限制
GET请求应当用于取回数据
• POST方法
请注意,查询字符串(名称/值对)是在POST请求的HTTP消息主体中发送的:
POST /forum/debug HTTP/1.1
HOST:localhost
name1=value1&name2=value2
有关POST请求的其它一些注释:
POST请求不会被缓存
POST请求不会保留在浏览器历史记录中
POST不能被收藏为书签
POST请求对数据长度没有要求
5.状态码
当浏览器访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。
下面是常见的HTTP状态码:
200 - 请求成功,返回的是正常请求结果
206 – 部分内容请求成功
301 – 重定向,资源(网页等)被永久转移到其他URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
HTTP状态码分类
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码总共分为5种类型:
分类 | 分类描述 |
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
6.样例
HTTP Request GET /WebTours/ HTTP/1.1 ←(请求行:包括请求方法,URL,HTTP版本) Accept: image/gif, image/x-xbitmap,image/jpeg, image/pjpeg, application/x-ms-application,application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap,application/x-shockwave-flash, application/x-silverlight,application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword,*/* Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; CIBA; .NET CLR 3.5.30729; .NETCLR 3.0.30618; InfoPath.2) Host: 127.0.0.1:1080 Connection: Keep-Alive
7.样例
HTTP Response HTTP/1.1 200 Ok ←(相应状态行,包括协议版本、状态码、原因短语) Server: Xitami Date: Thu, 04 Jun 2009 02:06:18 GMT Content-type: text/html Content-length: 322 Last-modified: Tue, 01 Jan 2008 19:53:26GMT <HTML> <HEAD> <title>Web Tours</title> <frameset rows = "65,*"border=1 bordercolor=#E0E7F1> <frame name="header"src=header.html scrolling=no noresizemarginheight=2 marginwidth=2> <frame name="body" src=welcome.pl?signOff=truescrolling=auto noresizemarginheight=2 marginwidth=2> </frameset> </head> </html>
相关文章推荐
- 接口测试01 - HTTP协议报文结构及示例
- 转:几种基于HTTP协议的RPC性能比较,以及ICE接口性能测试比较
- 接口测试培训:HTTP协议基础 1
- 接口测试培训:HTTP协议基础 2
- LR接口测试---基于http协议之get/post
- 接口测试之HTTP协议详解
- 自动化测试开发实际应用系列(三)HTTP JSON协议接口测试自动化实例
- 【使用Postman测试web接口】管理http请求
- 【转】python做一个http接口测试框架
- C#实现QQ接口软件--QQ的HTTP接口协议探究
- 使用WinHttp接口实现HTTP协议Get、Post和文件上传功能
- 接口测试小工具(HTTP + XML)
- POST请求模拟工具、JSON请求工具、http接口测试、post接口测试
- 简单接口测试(http/https),方法已经封装,也写了一个窗口测试工具
- HTTP协议学习,post于get;用Fiddler测试请求
- 使用WinHttp接口实现HTTP协议Get、Post和文件上传功能
- HTTP接口测试工具-CDSpace
- loadrunner使用java协议制作服务器接口测试脚本
- http接口请求参数签名工具类的实现和测试代码
- Excel+Httpclient,数据驱动接口自动化测试