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

solo · 2017年07月19日 · 最后由 胖胖的程序媛 回复于 2020年03月16日 · 1332 次阅读

认识事物一个比较好的、符合人类天性的方法是:从宏观到微观。科学家们由此发现了分子、原子、电子、质子、中子、夸克。

上一篇文章介绍了 HTTP 最基础的知识,今天咱们来将 HTTP 解剖一下,来认识 HTTP 消息的结构。

HTTP 请求的消息结构

image

HTTP 请求 method

最常用的 HTTP 请求方法是 get 和 post,现在比较流行的 Restful 架构,常用的请求方法除了 get 和 post,还有 put 和 delete。下面列出这几种请求方法代表的意思,当前不理解也无大碍。

method 解释
GET 请求获取一个资源;而需要服务器发送
HEAD 请求一个资源,但是不需要服务器发送资源而仅传回响应的首部信息
POST 提交表单;支持 HTML 表单提交;表单中有用户填入的数据;这些数据会发送到服务器端;由服务器存储至某位置
PUT 向服务器写入文档;例如发布系统
DELETE 请求删除 URL 指向的资源
OPTIONS 探测服务器端对某资源所支持的请求方法
TRACE 跟踪请求资源传输所经过防火墙、代理或网关等
CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器

HTTP body

消息体是 HTTP 消息的主体内容,比如我提供加法计算的接口,你要给我两个数 a 和 b,我给你返回和,a 和 b 是就放在 body 中。上图中 body 就是 “a=1&b=2”。

HTTP headers

头部是用于服务端沟通的一些控制字段,比如写一封信,信的内容是 body,发件人、收件人、地址、邮编等信息就是头部。如下罗列几个常见头部。

  • Content-Type:用于标记 body 部分是什么内容,比如 image/jpeg 表示内容是一种 jpeg 的图片、text/html 标记内容是 HTML 文本。
  • Content-Length: 用于标记消息长度。
  • Connection:表示长短连接

HTTP 响应的消息结构

image

关于 HTTP 响应的消息结构,我只讲一下 status 字段,也叫状态码。

status

http 响应中的 status 状态码分为五种:

1xx:信息性状态码

2xx:成功状态码

200:OK

201:created

3xx:重定向状态码

301:Moved Permanentl;在响应报文中使用首部"Location:URL";指定资源现在所在的位置

302:Fonud(临时重定向);在响应报文中使用首部"Location:URL";指定临时资源位置

304:Not Modified(可以使用缓存);告诉客户端没有更改资源;条件式请求中使用

4xx:客户端错误信息

403:Forbidden;请求被服务器拒绝
404:Not Found;服务器无法找到请求的 URL
405:Method Not Allowed;不允许使用此方法请求相应的 URL

5xx:服务器端错误信息

500:Internal Server Error;服务器内部错误
502:Bad Gateway;代理服务器从上级收到了一条伪响应
503:Service Unavailable;服务器此时无法提供服务;但是将来可能可用

小结

  1. 今天咱们分解了 HTTP 的消息结构并进行了初步讲解,有了这些基础知识,咱们下面就可以切入正题 - 如何进行执行接口测试了。
  2. 我以往的写文章风格,每一部分都会标明讲的是 What、Why 还是 How,这篇文章没有标明,因为这篇文章通篇讲的都是 what。并且很多时候,理解了 what,why 是可以自己推理出来的。举个栗子,Content-Type,what-它是什么?是指 body 的类型,why-为什么有这个字段?答案完全可以自己推测出来:因为对方知道了内容的类型才能正确读取出来。

欢迎关注我公众号 “鹿爷聊测试”。

共收到 2 条回复 时间 点赞

这个图片无法显示怎么办

蟹蟹分享~~~

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册