写点什么

技术分享 | 接口测试之 HTTP 协议讲解

  • 2022-10-12
    北京
  • 本文字数:1524 字

    阅读完需:约 5 分钟

本文节选自霍格沃兹测试开发学社内部教材

HTTP 协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网的数据通信的基础。客户端向服务端发送 HTTP 请求,服务端则会在响应中返回所请求的数据。了解了 HTTP 协议,才能对接口测试进行更深入的学习。

环境安装准备

HTTP 请求报文和响应报文都是由三个部分组成的:

  • 开始行:请求报文中叫请求行,响应报文中叫状态行

  • 首部行:用来说明浏览器服务器或报文主体的一些信息

  • 实体主体:请求报文中一般不使用,响应报文中可能也没有

请求报文

  • requests 报文结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OK6c6B96-1664261272407)(upload://6txDvFRBFiXtoLXyFVAHcxzbpHQ.jpeg)]

  • 请求行:请求方法、请求资源的 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>

复制代码

请求报文的方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TT5cO6zJ-1664261272410)(upload://sszZ0mejbC0t4zUDwblWUZtIRQF.png)]

常用的请求报文的方法为 GET、POST。会在后面的章节中进行详述。

响应报文



1、状态行:HTTP 版本、状态码、解释状态码短语

2、首部行:服务器信息、时间、内容类型、内容长度等等

3、实体主体

响应信息的示例

< 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 表示服务器的差错

「Python App 自动化测试训练营」全面升级,资深测试开发工程师带你从 0 到 1 快速上手 APP 自动化测试,扫码可领取课程资料哦~


点击下方链接免费领取:性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档

http://qrcode.testing-studio.com/f?from=infoQ&url=https://ceshiren.com/t/topic/22265

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
技术分享 | 接口测试之HTTP 协议讲解_霍格沃兹测试开发学社_InfoQ写作社区