接口测试需了解的HTTP基础

2019-11-04  苍穹 

HTTP,即超文本传输协议(HyperText Transfer Protocol),是互联网上应用最为广泛的一种网络协议,目前主要使用的 1.1 版本,基于 TCP/IP 通信协议来传递数据(HTML、文件、数据、API 接口消息等)。

  • HTTP 消息组成

客户端发送一个 HTTP 请求到服务器,请求消息包括以下格式:

请求行(request line)、请求头部(header)、空行和请求数据四个部分。如图


服务器接收并处理客户端发过来的请求,返回一个 HTTP 的响应消息。也由四个部分组成,分别是:

响应状态行、消息报头、空行和响应正文。 如图


  • HTTP 方法

HTTP 方法是请求消息中携带的关键信息,告知服务器本次请求希望进行的操作类型。目前在 HTTP1.1 版本中常见以下方法:

1、GET:请求指定的页面信息,并返回实体主体。

2、HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

3、POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

4、PUT:从客户端向服务器传送的数据取代指定的文档的内容。

5、DELETE:请求服务器删除指定的页面。

6、CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

7、TRACE:回显服务器收到的请求,主要用于测试或诊断。

8、PATCH:从客户端向服务器传送数据,取代指定文档的部分内容

  • HTTP 状态码

HTTP 状态码定义了服务器端处理 HTTP 请求的结果信息,主要包含以下五类:

1XX:已接收,待处理

2XX:请求处理成功(200)

3XX:重定向,资源位置发生变化(302)

4XX:客户端请求信息错误(401,404)

5XX:服务端处理发生错误(503)

1xx 消息

这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动。

2xx 成功

这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

3xx 重定向

这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。

4xx 客户端错误

这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。除非响应的是一个 HEAD 请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容

5xx 服务器错误

表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。除非这是一个 HEAD 请求,否则服务器应当包含一个解释当前错误状态以及这个状况是临时的还是永久的解释信息实体。浏览器应当向用户展示任何在当前响应中被包含的实体。这些状态码适用于任何响应方法。







63°|631 人阅读|0 条评论
登录 后发表评论