




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
接口定义接口是个比较泛义上的概念,主要表示系统对外交互的部分,比如电源插座是电器和电能之间的接口,图形界面是应用软件和用户的接口,医院挂号大厅是医生和病人之间的接口webAPI我们要学习的接口概念缩小到web系统提供的对外消息交互接口,通过发送对应的请求给服务器,服务器会返回相应的结果,因为其调用模式非常像编程语言中的API,所以web消息交互接口又叫webapi。 Web服务接口目前web服务接口都是基于http协议传递消息通常大家所说的,web服务接口,websevice ,webapi其实表示的都是一个意思主流的http消息体类型主要分为两种SOAP UI: 使用XML格式传输消息体,由于阅读性差,同等信息量传输耗费的资源多,因为标签REST: 定义了一种消息传输的风格,规定了消息体和URL的请求格式,同时也规定服务端的开发设计架构。本质上还是用http协议传输消息,至于这种风格具体是什么,怎么就确定我开发的系统符合REST定义的风格规范,很多做了很多年服务端开发的人员也不一定能说清楚,由于没有强制的要求,即使开发的服务没有完全符合REST风格规范,也可以使用所以我们也不需要了解到底REST风格是什么样子的,可能你们有疑惑,这个也不了解那么我们怎么测试webapi呢其实我们只要知道,不管系统处于那种设计风格,只要是基于HTTP协议,我们就能对他进行测试只要是发送数据交互过程有来有往,我们就可以用通用的方法来测试这个系统webAPI 测试特点通常系统内部的接口是不需要QA测试的,如果测试需要提供API文档,因为这是一个判断api是否符合需求的标准。即使要测试内部接口,多数也不是从功能的角度来测试,而是以安全的角度。对外暴露的接口必须要对其进行测试,如果提供API文档,那么测试人员需要自己准备文档,然后提交给开发进行评审。HTTP协议基础http与html的关系新学习web的人经常混淆的两个名词就是HTTP和HTML,都是姓H的,都是互联网领域的名词。很容易混淆。HTML是一种用来定义网页的文本语言,会HTML,就可以编写网页;我们访问百度得到的内容是html,大家可以打开浏览器查看源码看到HTMLHTTP是在网络上传输信息(当然也包括HTML)的协议,通常用于浏览器和服务器的通信。两者的关系做个类比,一个好比快递的商品(HTML),一个好比运输商品的方式(http)快递盒子既可以包装手机也可以包装其他商品,什么类型的信息都是不限制的http请求http请求消息包含如下内容l 请求行(必须包含)是http请求的第一行的内容,表示操作什么资源,通过什么http协议版本去获取例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求获取logo.gif这个文件。再比如POST / HTTP/1.1表示向这个url地址 / 提交信息。GET POST是请求的方法,我们后面会进一步讲解l 请求头(必须包含)例如Accept-Language: en可以有好多个,比如接下来http请求消息里面可能还有l 空行(非必须)l 消息体(非必须)空行的主要目的是隔开消息头和消息体的所以:请求行和请求头是必须有的。空行和消息体可能有也可能没有。一个GET请求消息的例子如下GET/index.htmlHTTP/1.1Host: 这个例子里面包括请求行和一个请求头,没有消息体。一个POST请求消息的例子如下(注意请求头和消息体之间的空行)POST / HTTP/1.1Host: Content-Type: application/x-www-form-urlencodedContent-Length: 13say=Hi&to=Mom请求行请求行在第一行,包含l 请求的方法请求的方法,表示请求的动作是获取信息、还是提交信息,还是修改信息、还是删除信息等。常见的有 GET,POST,PUT,DELETEGET:请求获取Request-URI所标识的资源就是向uri指定的资源发出“获取”请求。使用GET方法一般用在读取数据,这应该是一种最常见的请求了。POST:表示在Request-URI所标识的资源后附加新的数据向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求消息中。这个请求可能会创建新的资源或修改现有资源。PUT:向指定资源位置上传其最新内容。通常用于更新修改部分资源信息。DELETE:请求服务器删除Request-URI所标识的资源。请求头字段 (request headers)http的请求头用来表示请求的其它信息。格式是:大小写不敏感的名字+冒号+空格+值就像键值对,一个名字一个值,一个名字一个值很多标准的请求头字段是由国际标准化组织制定的/html/rfc4229常见的请求头字段Accept-Encoding: 例: Accept-Encoding:gzip, deflate, br 表示客户端所支持的解码(解压缩)格式。网路数据的传输都是占据带宽的,而将文件数据压缩能够降低数据量,减少传输时间。所以服务器在返回数据给客户端时,常常对数据进行压缩(对用户透明,通常由服务器或代理来做),而压缩的方式有多种,到底采用哪一种则需要看客户端支持哪种解码方式,这时候就可以根据header中Accept-Encoding的值。文件或数据的压缩,由服务器或代理来做,一般不需要程序员干预;客户端接收到数据时解压缩,通常由浏览器自动完成,对用户透明。 对于我们主动发起的ajax请求,一般数据量较少,不需要设置该字段。Accept-Language: 例 Accept-Language:zh-CN,zh;q=0.9 表示客户端支持的语言格式(不是编码格式),如中文/英文,通常浏览器直接发起请求时,浏览器会根据被设置的语言环境(默认语言),来附加上该字段。一般我们服务器解析报文时,是不理会该字段的。 他的使用场景可以是这样的,假如有个文件,有各种语言的版本,这样当不同请求发来时,我们可以根据Accept-Language的值来判断到底返回哪种语言版本给客户端。 (其实这种应用场景也一般不采用判断Accept-Language字段的方法,不靠谱,还不如直接在url中体现语言版本呢)Accept-Charset: 例: Accept-Charset:gbk,utf-8;q=0.8 表示客户端支持编码格式。服务器在返回报文时,需要将字符按照一定的编码格式转换为字节序列发送给客户端,那么该采用哪种编码格式呢? 当然作为服务器端,他可以采用任何一种编码方式,客户端都得完完整整的接收响应报文。因为目前客户端几乎都支持常见编码类型,所以服务器在返回数据时,只需要按照既定的编码方式编码,然后在响应报文中告知客户端所使用的编码方式。这样客户端在接收到报文后按照该方式进行解码,就就不会出现乱码问题。但是,如果客户端已经定了就使用某种解码方式,那么这时候服务器端就不能那么任性了,他就需要解析Accept-Charset字段,根据这个值,来设定采用的编码方式。 如上例中,以逗号分隔,客户端支持两种编码方式,gbk和utf-8(gbk优先级高于utf8),其中utf-8后的q值,表示utf-8占的“权重”。- User-Agent: 例: User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36 表示客户端的软件环境。如上可以看出使用的是Window10 64位操作系统,Chrome浏览器等信息。服务器可以根据该字段评估客户端的环境从而给出不同的响应。(比如根据请求是从手机端或是电脑端发起的,返回不同版本的页面)Host: 例: Host:localhost:8080 表示请求者的主机地址(IP地址)和端口号。 服务器端可以根据该字段进行ip过滤等操作。Content-Type例子:Content-Type :application/x-www-form-urlencoded表示请求体的消息类型 (用于POST和PUT请求中)常见的有x-www-form-urlencoded格式json格式还有xml格式请求消息体很多时候,http请求是需要请求消息体的,比如POST、PUT等请求。Get通常是不需要消息体的。post、put提交信息,会把消息内容翻到请求体里面。请求消息体中保存了要提交给服务端的数据信息。常见的消息体格式就三种,json,xml,www- form-urlencoded其中最常见的就是json是后面课程的重点json用来传递稍微复杂的数据传递简单的用 www-form-urlencodehttp响应HTTP响应消息包含如下内容l 状态行l 响应头l 空行l 消息体状态行和响应头是必须有的。空行和消息体可能有也可能没有。状态行状态行在第一行,包含协议版本状态码和描述状态的短语比如HTTP/1.1 200OK我们重点来看一下状态码,它表示客户端的的请求结果如何 1xx消息请求已被服务器接收,继续处理(这类不常见,先忽略过去) 2xx成功请求已成功被服务器接收、理解、并处理(最常见的就是200,抓包给大家看看) 3xx重定向需要后续操作才能完成这一请求(在webapi中不常见)就像店面移到新的地址,会贴一个告示,小王理发店已经移到。301 Moved Permanently永久性移动到新地址,再访问这个资源,就直接用新地址。比如小王理发店永久性移动到西街。如果下次访问,可以直接去西街302 Moved Temporarily这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求小王理发店,只是暂时的装修,临时移到西街,以后还会移回来,下次应该还是先去东街看看。304 Not Modified表示资源未被修改,因为请求头指定的版本If-Modified-Since或If-None-Match。在这种情况下,由于客户端仍然具有以前下载的副本,因此不需要重新传输资源现代的浏览器经常缓存资源数据,如果资源未被修改,通常不需要服务端传回全部的资源信息。节省效率和带宽。其它的 30x不是特别常见,感兴趣的可以自己去学习。转发与重定向区别/ChrisMurphy/p/5059940.html4xx请求错误这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。400 Bad Request401 Unauthorized未认证403 Forbidden认证了,但是没有相应的权限404 Not Found,访问/portal/home33.html常见错误,大家访问博客的时候,有时候遇到帖子被删了,或者文章的url发生了变化,用原来的地址访问就会出现这种情况 5xx服务器错误服务器在处理某个正确请求时发生错误表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。500 Internal Server Error服务端的代码错误导致,通常是一个异常抛出了503 Service Unavailable由于临时的服务器维护或者过载(比如被攻击导致服务端的防御措施),服务器当前无法处理请求。这个状况是暂时的,并且将在一段时间以后恢复。响应头字段 (response headers)http的响应头用来表示响应的其它信息。格式和请求头类似,有很多可以共用的字段。Content-Type:text/html;charset=utf-8消息体的数据格式,这个是经常使用的, Content-Length表示请求消息体的长度Date:Sun, 30 Jul 2017 08:25:37 GMT表示响应消息发送的日期时间其他常用的响应头感兴趣的可以参考网上的信息,后面的课程会一一说到响应消息体很多时候,http响应是需要消息体的。比如请求一个网页的内容,那么我们网页的html内容就在响应的消息体中给出。fiddler抓包工具百度搜索 fiddler,/fiddler安装下载随便填写安装后打开,界面如下:左边是抓到的http请求和响应,右边可以显示其具体信息。fiddler抓包原理是作为代理监听了浏览器到web服务器之间的http通信请求如图:上面浏览器和服务器之间没有代理,抓
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全评价师(中级)职业技能鉴定安全检测案例分析试题
- 2025年文职人员招聘考试公共科目试卷四十三:军事装备维护
- 2025年征信数据分析挖掘考试题库:征信数据分析挖掘项目评估标准
- 2025年会计职称考试《初级会计实务》章节重难点突破实战案例与解析试题
- 2025年聚碳酸酯(PC)及合金项目立项申请报告
- 2025年锻造工(高级)职业技能鉴定真题分析与备考
- 2025年德语TestDaF阅读真题试卷:德语阅读能力全面训练卷
- 2025年对外汉语教师资格证考试课程与教学论试题
- 宠物食品分销协议
- 个人工资增长证明书年收入增长证明(5篇)
- 安全及文明施工承诺书
- 工程量计算书(全部)
- 经侦总论试题
- 陕西省安康市教育联盟2023-2024学年高一下学期期末考试数学试卷
- 2023-2024学年景德镇市珠山区数学五年级第二学期期末监测试题含解析
- 小镇文旅康养项目可研报告【健康养老】【旅游康养】
- CTD申报资料:创新药IND模块一-行政文件和药品信息
- EHS专项施工EHS管理组织机构
- 生理学神经系统的功能
- 发电厂机组优化调度与运行控制策略
- (高清版)DZT 0211-2020 矿产地质勘查规范 重晶石、毒重石、萤石、硼
评论
0/150
提交评论