首页 > 其他分享 >技术分享 | 接口测试之HTTP 协议讲解

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

时间:2022-08-15 12:12:14浏览次数:76  
标签:HTTP 请求 image 接口 Accept 测试 讲解 报文

原文链接

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

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。会在后面的章节中进行详述。

响应报文

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自动化测试,扫码可领取课程资料哦~

获取更多相关资料,请添加微信ceshiren001

标签:HTTP,请求,image,接口,Accept,测试,讲解,报文
From: https://www.cnblogs.com/chengzi-ceba/p/16587818.html

相关文章

  • 接口测试经典面试题:Session、cookie、token有什么区别?
    原文链接HTTP是一个没有状态的协议,这种特点带来的好处就是效率较高,但是缺点也非常明显,这个协议本身是不支持网站的关联的,比如https://ceshiren.com/和https://ceshiren.co......
  • 技术分享 | 实战详解接口测试请求方式Get、post
    原文链接本文节选自霍格沃兹测试开发学社内部教材在日常的工作当中,http请求中使用最多的就是GET和POST这两种请求方式。那么掌握这两种请求方式的原理,以及两种请......
  • JS学习-Web Workers API接口
    WebWorkersAPI接口通过使用WebWorkers,Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作。这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线......
  • 技术分享 | 接口自动化测试之JSON Schema模式该如何使用?
    原文链接JSONSchema模式是一个词汇表,可用于注释和验证JSON文档。在实际工作中,对接口返回值进行断言校验,除了常用字段的断言检测以外,还要对其他字段的类型进行检测。对......
  • HTTP_路径、HTTP_案例路径_绝地路径
    HTTP_路径路径的写法:路径的分类:相对路径:通过相对路径不可以确定唯一资源如:./index.thml不以/开头,以,开头路径规则:......
  • HCIA学习笔记十七:Trunk接口
     一、配置Trunk接口\\创建VLAN[SWA]vlan3[SWA]vlan5\\配置端口类型[SWA-Ethernet0/3]portlink-typetrunk\\配置Trunk-Link端口PVID[SWA-Ethernet0/3]port......
  • 基于requests框架实现接口自动化测试项目实战
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试requests......
  • HTTP_响应消息_响应头、Response对象
    HTTP_响应消息_响应头响应头格式:头名称:值常见的响应头:Content-Type:服务器告诉客户端响应本体数据以及编码格式Content-disoislition:服务器告......
  • HTTP协议、HTTP协议响应行_状态码
    HTTP协议请求消息:客户端发送给服务端的数据数据格式:1,请求行2,请求头3,请求空行4,请求体响应消息:服务端发送给客户端的数据......
  • http状态码
    100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个......