各位老铁,上一期给大家分享了接口测试金典面试题第一部分的内容,大家都还记得吧。今天小编来分享“接口测试金典面试题(二)”的内容啦,记得把文章分享给身边有需要的朋友、同事哦。
21、什么是SOAP接口
SOAP简单对象访问协议,是一种基于 XML 的协议。SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议HTTP,简单邮件传输协议SMTP。
22、什么是REST/RESTFUL接口?
在REST API中,通过HTTP协议进行交互。
REST - 表述性状态转移,它不是协议和标准而是表示一种风格, 将Http协议的设计初衷作了诠释。它正快速成为API创建的标准。
23、什么是HTTP协议
HyperText Transfer Protocol超文本传输协议,是因特网上应用最广泛的应用层协议,传输层基于TCP协议。
24、HTTP协议特点
01.支持客户/服务器模式;
02.简单快速,向服务器请求服务时,只传送请求方法和路径,因而通信速度很快;
03. 灵活,HTTP允许传输任意类型的数据对象;
04. 无状态,对于事务处理没有记忆能力, 每个请求都是独立的;
05. 无连接,在1.1版本后默认保持连接;
25、Http请求的组成部分是什么?
请求报文包括三部分:
(1).请求行:包含请求方法,URI,HTTP版本协议
(2).请求首部字段,请求header
(3).请求内容实体,请求body
响应报文包含三部分:
(1).状态行:包含HTTP版本,状态码,状态码原因短语
(2).响应首部字段,响应header
(3).响应内容实体,响应body
26、Http协议工作的原理
整个处理流程步骤:
(0) 地址栏输入url地址后回车
(1) 域名解析,获取ip地址
(2) 建立TCP连接,三次握手
(3) 浏览器端发起Http请求
(4) Server接收,处理,返回Http响应,
(5) 浏览器端接收响应,得到HTML代码
(6) 浏览器解析HTML代码,渲染呈现给用户
(7) 浏览器端发起Http请求
(8) Server接收,处理,返回Http响应,
(9) 浏览器端接收响应,得到HTML代码
(10) 浏览器解析HTML代码,渲染呈现给用户
(11) 断开TCP连接,四次挥手
27、 HTTP协议的请求方式有哪些?
01. GET:GET用于从指定资源请求数据。
02. POST:POST用于将数据发送到服务器以创建或更新资源。
03. PUT:PUT用请求有效负载替换目标资源的当前表示。
04. DELETE:DELETE删除指定的资源。
05. OPTION:选项用于描述目标资源的通信选项,让客户端查看服务器的性能。
06. HEAD:HEAD请求与GET请求相同的响应,但没有响应主体,用于获取报头。
28、Http结果码 1xx--提示, 2xx--正常,3xx--重定向,4xx--客户端错误,5xx--服务端错误
01. 100:Continue,收到了请求的初始部分,请客户端继续
02. 200:OK,请求被正常处理
03. 301:Moved Permanently,永久性重定向
04. 302:Found,临时重定向
05. 304:Not Modified,发送附带条件的请求时,表示文件未变化
06. 400:Bad Request,请求报文语法有误,服务器无法识别
07. 401:Unauthorized,未授权,需要客户端对自己认证
08. 403:Forbidden,禁止,请求被服务器拒绝
09. 404:Not Found,服务器无法找到对应资源
10. 500:Internal Server Error,服务器内部错误
29、Http协议首部字段
01、通用首部字段(请求报文与响应报文都会使用的首部字段)
Date:创建报文时间
Connection:连接的管理
Cache-Control:缓存的控制
02、请求首部字段
Host:请求资源所在服务器
Accept:可处理的媒体类型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的压缩方式
Accept-Language:可接受的自然语言
Authrization:认证信息
Referer:当前请求路径的获取渠道
User-Agent:客户端信息
03、响应首部字段
Set-Cookies:客户端应该保存的cookies
Location:令客户端重新定向到的URI
Server:HTTP服务器的安装信息
04、实体首部字段
Content-Type:实体主类的类型
Content-Encoding:实体主体适用的压缩方式
Content-Length:实体主体的的字节数
30、GET请求和POST请求区别是什么?
01.GET一般从服务器上获取资源,POST一般往服务器发送数据(不是绝对的)
02.GETGET方式主要是对数据库进行查询,GET是幂等和安全的,而POST主要用于让数据库增加数据或者删除,修改数据,所以会有一定的安全性问题;
03.GET请求数据是通过URL传送,POST请求数据通常在请求BODY中;
04.GET,因为受URL长度限制,数据量有限;POST可以传输大量数据,可用于文件上传
05.GET是不安全的,因为URL是可见的;POST较安全
06.GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
31、Http与Https相比的不足?
01.通信使用明文不加密,内容可能被窃听,也就是被抓包分析
02.不验证通信方身份,可能遭到伪装
03.无法验证报文完整性,可能被篡改
HTTPS=SSL+HTTP
32、http和https的比较
01.HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
02.HTTP 是不安全的,而 HTTPS 是安全的
03.HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
04.在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层
05.HTTP 无法加密,而HTTPS 对传输的数据进行加密
06.HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书
33、HTTP接口的请求参数类型有哪些?
01. 查询字符串参数(Query String Parameters参数)一般用于GET请求,会以url string的形式进行传递。
02. 请求体参数(Request Body)一般用于POST请求,可以使用Content-Type来指定不同参数类型。
34、常见的 POST 提交数据方式
请求body;请求url+请求body:
Content-type:application/x-www-form-urlencoded: 表单提交--键值对, formmultipart/form-data:文件上传---文件 ,MIMEapplication/json,text/xml:
35、如何对请求数据加密?
为什么要加密,常规加密方式
01. Jmeter--找它的对应组件或函数;如果没有写代码,
02. Requests--写代码,利用python自带的或第三方的模块
36、HTTP协议无状态?怎么解决Http协议无状态?
01、无状态指对于事务处理没有记忆能力,每个http请求都是完全独立的。
02、无状态协议解决办法:通过Cookie或Session。
A. client发送登录请求,server判断登录成功,生成cookie并返回响应
B. Client保存cookie,并在接下来的请求时,带上cookie
C. Server接收到请求,对请求中的cookie做验证
37、Cookies机制和session机制的区别
cookies数据保存在客户端,session数据保存在服务器端;
cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗;
session较安全,但占用服务器资源;
Cookie实现方式:
01. 登录成功,server返回cookie---响应的header的set-cookie字段
02. 下次请求,请求header中通过cookie字段带上需要的cookie
session实现方式---cookie,Url回写
01. 登录成功,server创建session并返回sessionid
02、下次请求时,请求报文中带上sessionid
38、为什么选择用JMeter进行接口测试?
JMeter刚开始觉得难用,但是习惯了发现挺好用的,它功能很强大,满足基本功能测试和压力测试的需求。
39、什么是断言?断言的类型有哪些?
自动化测试中通过断言做结果判断,用于检查测试中的数据与预期是否一致。一致则结果为pass,否则为fail状态。
JMeter中一些常用的断言有:响应断言、Json断言
40、正则表达式中包括和匹配区别
包括:目标字符串包括正则表达式的内容
匹配:目标字符串包括与正则表达式的内容完全一致
本章节关于“面试宝典|接口测试金典面试题(二)”的内容就分享到这里,下一章继续更新面试宝典|接口测试金典面试题(三)的内容。觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。