• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Python接口自动化测试必备基础:http协议

武飞扬头像
PHP中文网
帮助47

HTTP协议与特点

如果将 HTTP协议当做一个人来比较的话,想要深入了解这个人的时候,肯定会先去了解对方的性格特征等。那么 HTTP协议 有什么特征呢?总的来说有以下几个特点:

HTTP的请求与响应

现在我们知道 HTTP协议 是一种请求与响应的模式,那么就来一起认识一下 HTTP的请求和响应吧,先从 HTTP协议的请求说起。

HTTP的请求

请求 是发送给接口的数据对象,包括接口的地址(也就是常说的 URL)、请求的方法(get、post…)、参数、请求头(Headers)、Cookies、数据等等… 见下图:


学新通技术网


学新通技术网


上图中的报文内容就是典型的 HTTP协议的 post 与 get 请求报文(忽略get请求报文的请求体,那是我瞎编的 。):


HTTP的响应

熟悉了 HTTP 的请求,再来看一下响应。见下图:


学新通技术网

可以从响应报文的样式看出,与请求的报文比较相像,他也分为三个部分:请求行对应响应行、请求头对应响应头、请求体对应着响应体。

  • 1、响应行分为两部分:报文协议版本及响应状态码。
  • 2、响应头也分为服务器类型、相应数据类型响应时间等多个参数。
  • 3、响应体就是我们真正想要的干货,就是请求的最终返回内容。主要针对这个内容进行解析,比如说请求的是一个页面,这个时候请求的返回就是一个比较大的 HTML

HTTP请求方法剖析

更多内容参考 HTTP协议状态及报文组成 一文的 HTTP请求方法

GET 方法

GET方法 用来请求访问已被 URI 识别的资源,指定的资源经服务器端解析后返回响应内容。(见下图)


学新通技术网


PSOT 方法

POST方法GET方法 功能类似,一般用来传输实体的主体;主要的目的不是为了获取响应主体的内容,是向 WEB服务器提供表单数据,尤其是大批量的数据

POST方法 其实是克服了 GET方法 的一些缺点,通过 POST 请求,数据就不是作为一个 URL 请求的一部分了,而是作为标准数据的格式来传递给 WEB服务器 这也就克服了 GET方法 中数据无法保密且数据量有限制的缺点。


学新通技术网


接下来就是一些不太常用的一些方法的介绍了。

PUT 方法

  • 从客户端向服务器传送的数据取代指定的文档的内容。
  • PUT方法与POST方法最大的不同的是:PUT是幂等的,而POST是不幂等的。因此,更多的时候我们将 PUT方法用作传输资源。
  • 开启 PUT方法 需要控制权限,否则会造成一定的安全隐患,比如向服务器传输带有恶意 payload 的攻击脚本。

HEAD 方法

  • HEAD方法 几乎与 GET 方法相同,只不过HEAD方法只请求消息报文头,返回的响应中没有具体的内容,用于获取报头。

DELETE 方法

  • 请求服务器删除指定的资源,也就是删除文件。(一般服务器会控制此方法的权限,否则会造成重大的安全漏洞。)

OPTIONS 方法

  • 用来查询针对请求的 URI 指定的资源支持的方法,就是询问 请求的URL能够支持什么方法

学新通技术网

该方法在实际工作中使用的是非常少的,在安全领域经常会被攻击者、渗透测试工程师用于信息收集。


TRACE 方法

  • 用于回显服务器收到的请求,主要用于测试或诊断。(不常用)
  • 在安全领域经常被用于跨站攻击。

CONNECT 方法

  • 开启与客户端所请求的资源之间的双向沟通的通道,所以更多的时候是用它来建立隧道。(使用代理的时候就是使用的这个方法)

HTTP状态码详解

HTTP 状态码

在我们使用浏览览器向WEB网页所在服务器发出请求时,当服务器接收我们的请求并响应的情况下。浏览器会接收并显示网页,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应我们在浏览器中的请求。

HTTP状态码的英文为HTTP Status Code。
下面是常见的HTTP状态码

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

HTTP状态码分类

分类 描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

HTTP状态码表

状态码

英文名称
中文描述
100 Continue 继续。客户端应继续其请求
101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。
只能切换到更高级的协议,例如,切换到HTTP的新版本协议
200 OK 请求成功。一般用于GET与POST请求
201 Created 已创建。成功请求并创建了新的资源
202 Accepted 已接受。已经接受请求,但未处理完成
203 Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205 Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。
可通过此返回码清除浏览器的表单域
206 Partial Content 部分内容。服务器成功处理了部分GET请求
300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表
用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,
浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常
会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
306 Unused 已经被废弃的HTTP状态码
307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向
401 Unauthorized 请求要求用户的身份认证
402 Payment Required 保留,将来使用
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可
设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed 客户端请求中的方法被禁止
406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408 Request Time-out 服务器等待客户端发送的请求时间过长,超时
409 Conflict 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突
410 Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,
网站设计人员可通过301代码指定资源的新位置
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412 Precondition Failed 客户端请求信息的先决条件错误
413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会
关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理
415 Unsupported Media Typ 服务器无法处理请求附带的媒体格式
416 Requested range not satisfiabl 客户端请求的范围无效
417 Expectation Failed 服务器无法满足Expect的请求头信息
500 Internal Server Erro 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器
的Retry-After头信息中
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanfegaf
系列文章
更多 icon
同类精品
更多 icon
继续加载