接口和协议

本文探讨了接口和协议在软件开发中的角色,重点讲解了HTTP协议,包括HTTP1.0与HTTP1.1的区别,常见HTTP请求方法如GET和POST,以及HTTP状态码。此外,还介绍了接口测试的工作流程、接口文档的编写以及JSON在接口测试中的应用,并提到了接口测试工具的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口和协议

软件开发的两种结构

CS(Client/Server):客户端----服务器结

BS(Browser/Server):浏览器----服务器结

BS与CS优缺点对比
CS 响应速度快,安全性强,用户体验好,一般应用于局域网中,但是开发维护成本
高; BS 可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。所以有些单
位日常办公应用 BS ,在实际生产中使用 CS 结构。

URL构成及各个协议默认端口

url的构成:
一般来说,http请求都会和URL地址有关,对于url来说
一般由下面5个部分构成 
.协议:通常就是第一个冒号之前的内容
常见协议:http,https(http+ssl),ftp,ssh,about,javascript
.域名:就是要访问的服务器的域名(机器名或者IP地址)。一般格式为:
示例://192.168.2.212
.端口:就是访问的服务器自己所设定的服务端口,监听端口
一般来说,如果服务器使用的是协议的默认通信端口,则用户在通过url访问服务器时,是可以省略
端口
常见协议和默认端口
http 80
https 443 or 8443
ftp 21
ssh 22
smtp 25
pop3 110
oracle 1521
mysql 3306
sql server 1433

Http协议

什么是http协议:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

一个完整的 URL 包括以下几部分:
1. 协议部分: URL 的协议部分为“ http :”,这代表网页使用的是 HTTP 协议。在 Internet中可以使用多种协议,如HTTP FTP 等等本例中使用的是 HTTP 协议。在 "HTTP" 后面 的“// ”为分隔符
2 . 域名部分 :该 URL 的域名部分为“ www.aspxfans.com ”。一个 URL 中,也可以使用 IP 地址作为域名使用
3. 端口部分 :跟在域名后面的是端口,域名和端口之间使用“ : ”作为分隔符。端口不是一个URL 必须的部分,如果省略端口部分,将采用默认端口
4 . 虚拟目录部分 :从域名后的第一个“ / ”开始到最后一个“ / ”为止,是虚拟目录部分。虚拟目录也不是一个URL 必须的部分。本例中的虚拟目录是“ /news/
5 . 文件名部分 :从域名后的最后一个“ / ”开始到“?”为止,是文件名部分,如果没 有“? , 则是从域名后的最后一个“ / ”开始到“ # ”为止,是文件部分,如果没有“?”和“# ”,那么从域名后的最后一个“ / ”开始到结束,都是文件名部分。本例中的文件名是“index.asp ”。文件名部分也不是一个 URL 必须的部分,如果省略该部分,则使 用默认的文件名
6. 锚部分:从“ # ”开始到最后,都是锚部分。本例中的锚部分是“ name ”。锚部分也不是 一个URL 必须的部分
7 . 参数部分: 从“?”开始到“ # ”为止之间的部分为参数部分,又称搜索部分、查询部 分。本例中的参数部分为“boardID=5&ID=24618&page=1 ”。参数可以允许有多个参数,参数与参数之间用“& ”作为分隔符。

HTTP1.0和HTTP1.1的区别

HTTP 1.0 规定 浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP 连接, 服务器完成请求处理后立即断开TCP 连接,服务器不跟踪每个客户也不记录过去的请求 HTTP 1.0不支持 Host 请求头字段
HTTP 1.1 支持持久连接,在一个 TCP 连接上可以传送多个 HTTP请求和响应,减少了建立和关闭连接的消耗和延迟 HTTP 1.1 中支持 Host 请求头字段

http请求

客户端连上服务器后,向服务器请求某个 web 资源,称之为客户端向服务器发送了一个HTTP请求。
http请求方式:
HTTP1.0 定义了三种请求方法: GET, POST HEAD 方法。
HTTP1.1 新增了五种请求方法: OPTIONS, PUT, DELETE, TRACE CONNECT 方法。
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在
请求体中。 POST 请求可能会导致新的资源的建立和 / 或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
.

常见的http请求:get和post

Get与post请求的区别
1 GET 将参数放在URL中。而 POST 将数据放在 BODY 中。
2 GET URL 会有长度上的限制,而 POST 的数据则可以非常大。
3 POST相 GET更 安全,因为数据在地址栏上不可见。
4 、一般 get 请求用来获取数据, post 请求用来发送数据。
客户端发送一个 HTTP 请求到服务器的请求消息包括以下格式:
请求行( request line )、请求头部( header )、空行和请求数据四个部分组成。
服务器接收并处理客户端发过来的请求后会返回一个 HTTP 的响应消息
HTTP 响应也由四个部分组成,分别是: 状态行、消息报头、空行和响应正文。

HTTP之状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别 :
1 :指示信息 -- 表示请求已接收,继续处理
2 :成功 -- 表示请求已被成功接收、理解、接受
3 :重定向 -- 要完成请求必须进行更进一步的操作
4 :客户端错误 -- 请求有语法错误或请求无法实现
5 :服务器端错误 -- 服务器未能实现合法的请求

常见状态码:
200 OK // 客户端请求成功
400 Bad Request // 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized // 请求未经授权,这个状态代码必须和 WWW-
Authenticate 报头域一起使用
403 Forbidden // 服务器收到请求,但是拒绝提供服务
404 Not Found // 请求资源不存在, eg :输入了错误的 URL
500 Internal Server Error // 服务器发生不可预期的错误
503 Server Unavailable // 服务器当前不能处理客户端的请求,一段时间后可能恢 复 正常
更多状态码: http://www.runoob.com/http/http-status-codes.html

接口测试

什么是接口:
API 接口是 Application Programming Interface 的简称,是一些预先定义的函数,包括 接 口地址、传入参数和返回参数。
什么是接口测试
接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交 互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。
接口的分类:
1.webservice 接口 2.http api 接口
webService 接口是走 soap 协议通过 http 传输,请求报文和返回报文都是 xml 格式的
我们在测试的时候都用通过工具才能进行调用,测试。
http api 接口是走 http 协议,通过路径来区分调用的方法,请求报文都是 key-value
式的,返回报文一般都是 json ,有 get post 等方法,这也是最常用的两种请求方式。
一个 URL 就是一个接口:接口大致会分为一下几个部分:
请求协议:
http --- 普通的 http 请求
https --- 加密的 http 请求,传输数据更加安全
请求 IP :就是指提供接口的系统所部署的服务器地址
请求端口:如果不填端口,默认是 80 ,否则需要填写端口号
接口路径:指系统提供的接口在什么位置
接口参数:参数在接口路径后,用“ ? ”来表示路径地址完了,剩下的都是参数了,
用“ & ”来区分参数个数

接口测试工作流程

准备阶段(80%)
拿到开发的接口文档 ,并理解每个接口的参数及含义
了解被测试系统的业务流程
编写接口测试用例
执行阶段(10%)
测试用例/测试场景执行
测试数据/系统数据收集
分析阶段(10%)
数据汇总/日志分析
测试报告

接口文档

我们做接口测试,需要开发提供接口文档。最重要的有一下几点:
1. 被测接口的地址
2. 接口参数,以及各个参数的说明
3. 必要的 http 头与 http ( http 头是可以自定义的,可以用来校验是否是自己人访问 )
4. 接口返回什么值,以及各个返回值的说明
5. 接口是干什么的

接口测试:json

什么是json: Json是一种数据载体 ,互联网本质就是数据传输,数据传输就需要数据载体。比如:页面信息就是存储在HTML
种数据载体中
为什么使用json: Json传输数据效率更高,所以部分场景下使用 HTML XML 但是JSON 语言描述不及标签语言,所以部分场景下使用 HTML XML如果传递少量数据,使用JSON

接口测试工具及原理

常见接口测试工具
• 典型商业工具: loadrunner,soapui
• 典型开源工具 : jmeter
• 扩展插件: POSTMAN
实现原理 : 模拟客户端对服务器进行多连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值