2. 掀起接口测试的盖头-HTTP初窥(一)

2023-11-06 21:10
文章标签 接口 http 测试 掀起 盖头

本文主要是介绍2. 掀起接口测试的盖头-HTTP初窥(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇文章大概介绍了一下接口和接口测试,今天咱们聊聊HTTP。为什么聊她?因为大部分的接口是基于HTTP协议的,不对她有个基本的理解,怎么把她娶进门?特别提醒,已经娶进门的童鞋,请不要二婚。


what-什么是协议

协议是一种沟通双方都能听得懂的编解码方式。比如,你是河南人,我是广东人,我们都说各自的方言,我们怎么沟通?很简单,我们使用普通话沟通。所以,普通话可以认为是一种协议。

文件格式也可以认为是一种协议,你使用A软件创建了一个JPG文件,在电脑中实际上用的是一坨01串存起来,然后你使用B软件打开这个JPG文件,B软件之所以能打开,是因为JPG这种格式代表了一种特殊的编解码方式,B软件按照对应的解码方式,把这一坨01串还原为图像。


what-什么是超文本

超文本是相对文本而言的,文本就是普通字符串,超文本指的是包含超链接的字符串,可以链接到其他的内容。咱们来体会一下百度百科的定义:超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。 下图就是一个超文本在浏览器的显示,里面包含了很多到其他空间的链接。

image

目前最常用的超文本是用超文本标记语言写的,即HTML。


what-什么是HTTP

HTTP协议-HyperText Transfer Protocol,超文本传输协议,是用于从WWW服务器传输超文本到本地浏览器的传送协议。
理解一个东西,从其名字和定义上去理解就能有直观的、不错的理解。 HTTP名字里有三个关键词:超文本、传输、协议,说简单一点,这是一种用于传输超文本的协议。

HTTP协议的设计初衷是为了传输HTML文本,而后来又加了很多东西,就不仅限于传输HTML文本了,可以用来传图片、PPT、视频等各种文档,还可以用来传一些特定格式的字符串,比如json、XML。目前有三个版本:http/0.9;http/1.0;/http/1.1。目前http/1.0和1.1被广泛应用。
- http/0.9:仅用于传输HTML文档;
- http/1.0:支持多媒体数据的处理;支持keep-live(持久连接);有缓存功能;
- http/1.1:支持更多的请求方法和更精细的缓存控制;持久连接。

另外,注意,HTTP协议是应用层的协议,虽然带有“传输”二字。她不是传输层协议,传输层协议是管理传输过程的,比如大小、速率、校验、丢失重传等。我会找一写一篇文章介绍TCP/IP协议栈。这里不展开,如果你有强迫症或者学习欲望强烈,你可以自己去找相关文章阅读。


how-HTTP协议工作流程

image

HTTP采用请求响应模型来处理HTTP事务, HTTP事务有一条请求命令一个响应结果组成,它们通过HTTP报文进行数据传输。

HTTP报文

还用之前举过的例子,我提供加法计算的接口,你要给我传递2个数(a和b),我给你返回一个结果。

请求报文可能是:

POST http://192.168.98.178:8081/add HTTP/1.1Host: 192.168.98.178:8081
Connection: keep-alive
Host: 192.168.98.178:8081
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip,deflatea=1&b=2

响应报文可能是:

HTTP/1.1 200 OKServer: Apache-Coyote/1.1
Cache-Control: no-cache
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked{"sum":2}

这里不对HTTP报文的组成结构展开讲解,后续再讲。


How-如何执行HTTP接口测试

至此,如何执行HTTP接口测试,答案就变得很简单:
1. 构造一条符合要求的HTTP请求消息;
2. 发给我,我给你回响应;
3. 你读取HTTP响应,检查响应内容是否正确。

至于如何构造一条符合要求的HTTP消息,且听下回分解。


总结
  • 本文讲了什么是协议、什么是超文本、什么是HTTP、HTTP最基本的工作流程,以及如何执行HTTP接口测试。
  • 本文也提到了一种理解一个概念的方法:从名字本身去理解

如果你没get到今天的内容,不是你的问题,是我的锅,我没有讲得通俗易懂,请尽情拍板砖。

欢迎加QQ群讨论:604840452,或者加我个人QQ:2669885257,谢谢!

这篇关于2. 掀起接口测试的盖头-HTTP初窥(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/359082

相关文章

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (