技术分享 | 接口测试之HTTP 协议讲解
HTTP 协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网的数据通信的基础。客户端向服务端发送 HTTP 请求,服务端则会在响应中返回所请求的数据。了解了 HTTP 协议,才能对接口测试进行更深入的学习。
环境安装准备
HTTP 请求报文和响应报文都是由三个部分组成的:
- 开始行:请求报文中叫请求行,响应报文中叫状态行
- 首部行:用来说明浏览器服务器或报文主体的一些信息
- 实体主体:请求报文中一般不使用,响应报文中可能也没有
请求报文
- requests 报文结构
- 请求行:请求方法、请求资源的 URL、HTTP 版本信息
- 首部行:请求行的下一行一般为首部行的开始,包括主机域名、连接信息、用户代理等等信息
- 实体主体:一般不使用
请求信息的示例
> GET /uploads/user/avatar/31438/8216a3.jpg\u0021md HTTP/1.1
> Host: testerhome.com
> Accept-Encoding: deflate, gzip
> Connection: keep-alive
> Pragma: no-cache
> Cache-Control: no-cache
> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36
> Sec-Fetch-Dest: image
> Accept: image/webp,image/apng,image/*,*/*;q=0.8
> Sec-Fetch-Site: same-origin
> Sec-Fetch-Mode: no-cors
> Referer: https://testerhome.com/
> Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
> Cookie: user_id=bnVsbA%3D%3D--69ec4bae7d601a6036395dbe51d1d2ffcd6fa592; \
_homeland_session=7Sukl%2FrozWDlCgKard4LDAggLFboqpOh2O2tuEDrKAJQsGcBr%2BEo\
5YfUSQ%2BzCnQjz2YqVdLJZynbXI7rd96gawXmb%2FckmcX0VRzKeJUzg%2FddCkdLxHrPxOwD\
BugHvSRINOfLKfJSrX%2F7u%2BJqx8ZJ%2FUzMrdBw9PqmLTgKp9qG2hVRMmFvRdLoAg3Hj0WQ\
XoYmEkMwlfG%2BJTFpE2D8IdyN49iAkEcCu8mY%2FwYUXg%2FNdYyLZ29AEkdLU%2BFhU1GIXZ\
yYnBIfB4B34Z%2BuwST1%2F2wZ0Lr0YYaVC7MmYg%3D%3D--5Lp2FdyHJUsrhoaz--iUv%2Bp1\
4%2Bz76Qteb%2FsjsKHQ%3D%3D; _ga=GA1.2.877690763.1584004389; _gid=GA1.2.135\
846535.1584004389; _gat=1
>
请求报文的方法
常用的请求报文的方法为 GET、POST。会在后面的章节中进行详述。
响应报文
- 状态行:HTTP 版本、状态码、解释状态码短语
- 首部行:服务器信息、时间、内容类型、内容长度等等
- 实体主体
响应信息的示例
< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Thu, 12 Mar 2020 09:13:44 GMT
< Content-Type: image/png
< Content-Length: 11390
< Last-Modified: Sat, 27 Jan 2018 13:51:30 GMT
< Connection: keep-alive
< ETag: "5a6c83e2-2c7e"
< Accept-Ranges: bytes
<
状态码
状态码有 5 个大类,由第一位数字进行区分,每个大类下面还有不同的子类,每种子类的长度都是 3 位,都代表一个状态码,即一种类型的返回的信息。
- 1xx 表示通知信息,如请求收到了或正在进行处理
- 2xx 表示成功,如接受或知道了
- 3xx 表示重定向,如果要完成请求还必须才去进一步的行动
- 4xx 表示客户端的差错
- 5xx 表示服务器的差错
最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
软件测试工程师自学教程:
这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】
软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.
美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看
相关文章
- 5G技术将启动研究 峰值速率或达10Gbps
- 【华为云技术分享】一行代码就能写一个日志打印组件,你信吗?为你揭晓LiteOS中日志打印组件的核心
- 【华为云技术分享】Intel SGX和ARM TrustZone浅析
- 【华为云技术分享】【测试微课堂】缺陷处理流程和注意事项
- iOS之UI--通讯录的实例关键知识技术点积累
- 测试开发的技术体系
- 关于前端技术、经验、团队、流程的总结
- QUIC:基于udp的传输新技术
- QoS中拥塞避免机制详解——WRED技术详解
- 在技术社区编写技术博客的一些心得体会
- DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》课程讲解之十大知识领域之1个干系人—项目干系人管理
- 〖Python WEB 自动化测试实战篇⑯〗- WEB自动化的总结与未来技术上的展望
- 探索智能化测试技术
- 【华为云技术分享】浅谈服务化和微服务化(下)
- 100集华为HCIE安全培训视频教材整理 | 防火墙互联技术(一)
- 利用扩展双屏技术及Chrome浏览器,高速剖析优秀网页Div及CSS构成,并高效实现原型创作
- 软件测试技术之性能测试进阶—并发测试的方法
- 软件测试技术之性能测试问题与思考
- 软件测试技术之解析图灵测试离我们还有多远
- 测试开发 | Dubbo 接口测试技术,测试开发进阶必备(附源码)
- 充电技术测试方案
- 软件测试工程师的职场发展顺序,月薪30k的测试岗技术要求是真的高...
- 【技术分享】接口自动化测试,如何实现多套环境的自动化测试?
- 技术分享 | 常用测试策略与测试手段
- 阿里P8大佬的自动化测试学习路线!2021最新技术~
- 充电技术测试方案