接口基础知识

本文探讨了接口在系统间数据交互中的作用,重点关注了前后端分离开发中的API接口,介绍了HTTP接口、WebServer接口和RESTful接口的区别,以及GET和POST方法的差异。此外,还强调了JSON在数据交换中的重要性,以及在HTTP接口测试中的应用。
摘要由CSDN通过智能技术生成

1.接口

1.接口概念

系统之间数据交互的通道

2.接口类型

在软件测试中,常说的接口一般有两种:图形用户接口(Graphical User Interface,GUI),它是人与程序的接口;应用程序编程接口(Application Programma Interface, API),称为接口API。

前后端分离是近年来Web应用开发的一个发展趋势。这种模式具有以下优势。

(1)后端工程师不用精通前端技术(如HTML、JavaScript或CSS),只专注于数据处理,对外提供API即可。

(2)前端工程师的专业越来越强,其通过API获取数据,并专注于页面设计。

(3)前后端分离可扩大接口的应用范围,开发的接口可以应用到Web页面上,也可以应用到APP上。

3.API接口

API是一组定义、程序及协议的集合,API可实现计算软件之间的相互通信。API的一个主要功能是提供通用功能集。程序员通过使用API函数开发应用程序,从而可以避免编写无用程序,减轻编程任务。很多公司将开发岗位分为前端工程师和后端工程师,他们之间相互配合完成工作。一般来说,他们会协商接口的定义方式,其中一方定义接口(一般由后端工程师定义接口),另一方来调用接口,已实现预期功能。

2.接口的分类

依据所遵循协议的不同,常见接口可以分为以下3类。

1.HTTP接口

它是基于超文本传输协议(HyperText Transfer Protocol,HTTP)开发的接口,但不能排除没有使用其他协议。

2.Web Server接口

它是系统对外的接口,比如你要从别的网站或服务上获取资源,一般来说,别人不会把数据库共享给你,他们会提供一个他们写好的方法,让你用来获取数据,你使用他们写好的方法就能引用他们提供的接口,从而达到同步数据的目的。

3.RESTful接口

简称为REST,其描述了一个架构样式的网络系统,核心是面向资源。REST专门针对网络应用设计和开发方式,降低开发的复杂性,提高系统的可伸缩性。

基于浏览器/服务器模式(Brower/Server,B/S)的软件系统接口大多数为HTTP接口,因此研究HTTP接口的测试方法。要测试HTTP接口,首先需要了解HTTP、HTTP请求和响应的相关知识。

3.HTTP

1.HTTP概念

超文本传输协议,基于请求与响应的应用层协议

2.组成

URL

概念:统一资源定位符,网络资源地址

组成:协议 :// hostname[:port] / path / [? 查询参数1 & 查询参数2]

HTTP请求(Request)

概念:定义请求数据格式

组成:

        • 方法(Method):HTTP定义了与服务器交互的不同方法(Method),基本方法有4中,分别是GET、POST、PUT、DELETE。可以这样理解:URL地址用于描述一个网络上的资源,而HTTP中的GET、POST、PUT和DELETE方法对应着这个资源的“查”、“改”、“增”、“删”操作,即GET一般用于获取、查询资源信息。而POST一般用于更新资源信息等。
        • 请求头(Headers):常用 
          • user-agent:用户代理,一般包括手机,浏览器,postman,jmeter
          • content-type:请求数据格式
            • text/html: HTML格式
            • text/plain:纯文本格式 
            • image/jpeg:jpg图片格式
            • application/json: JSON数据格式
            • application/x-www-form-urlencoded: 表单默认的提交数据格式
            • multipart/form-data: 在表单中进行文件上传时使用
          • cookie:缓存在浏览器中
          • 可自定义
        • 请求体(Body):传输数据实体,请求体常在POST、PUT方法中使用,常配合的请求头:Content-Type和Content-Length

HTTP响应(Response)

概念:

将HTTP请求发送到服务器后,服务器会给出相应的应答,服务器返回的应答消息称为HTTP响应

组成:
        • 状态:描述服务器处理结果
          • 1xx:指示信息
          • 2xx:成功
            • 200 OK:客户端请求成功。
          • 3xx:重定向
            • 301 被请求的资源已永久移动到新位置
            • 302 被请求的资源临时性移动到新位置
          • 4xx:客户端错误
            • 400 Bad Request:客户端请求有语法错误,不能被服务器理解
            • 401 Unauthorized:请求未经授权
            • 403 Forbidden:服务器收到请求,但拒绝提供服务。
            • 404 Not Found:请求的资源不存在
          • 5xx:服务器端错误
            • 500 Internal Server Error:服务器发生不可预期的错误。
            • 503 Server Unavailable:服务器当前不能处理客户端的请求
        • 响应头(Headers):描述客户端要使用的一些附加信息
          • content-type:返回数据的格式
          • set-cookie
          • 可自定义
        • 响应体(Body):服务器返回的数据实体

3.GET方式和POST方式区别

  1. 提交数据方式不同
    • GET:请求的数据会附在URL之后,以“?”(英文问号)分隔URL和传输数据,多个参数用“&”连接,如 百度安全验证,如果数据是英文字母、数字,则直接发送;如果是空格,则转换为“+”后发送;如果是中文、其他字符,则会用Base64加密字符串后发送。
    • POST:把提交的数据放置在HTTP包的请求体“request-body”中。因此,使用GET方式提交的数据会在地址栏中显示出来,而使用POST方式提交的数据不会在地址栏中显示。
  2. 传输数据的大小不同

虽然HTTP没有对传输的数据大小进行限制,HTTP规范也没有对URL的长度进行限制,但实际开发中还是会存在一些限制。

    • GET:特定浏览器和服务器对URL的长度有限制,因此,使用GET方式提交时,传输数据就会受到URL长度的限制。
    • POST:此方式由于不是通过URL传值,理论上数据不受限制。但实际上,各个Web服务器会规定对使用POST方式提交的数据大小进行限制。
  1. 安全性不同
    • POST方式比GET方式的安全性更高。例如,通过GET方式提交数据,用户名和密码将以明文的形式出现在URL上,由于登录页面有可能被浏览器缓存,因此他人通过查看浏览器的历史记录,就可以知道你的账号和密码

4.JSON

  1. JS对象标记定义

    JS对象标记(JavaScript Object Notation,JSON)是一种轻量级的数据交换格式。它基于ECMAScript(W3C制定的JavaScript规范)的子集,采取完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,其易于阅读和编写,同时也易于机械解析和生成,并能有效的提升网络传输效率。因此,HTTP接口响应一般为JSON格式。
  2. JSON语法的规则

    JSON语法规则包括用大括号保存对象、用键值对表示对象、用逗号分隔每个对象、用中括号保存数据。
  3. JSON示例

    {“name”:“postman”,“age”:“20”,“sex”:“male”}

json解析网站例如:JSON在线 | JSON解析格式化—SO JSON在线工具

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值