您的位置:首页 > 理论基础 > 计算机网络

【接口测试】接口测试之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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  http协议 接口测试