【性能】性能测试之协议

常见的接口协议

应用层

HTTP 超文本传输协议  80

HTTPS 安全超文本传输协议 = HTTP + SSL  443 or 8443

FTP 文件传输协议  21

SSH 22

SMTP  25

POP3 110

MySQL 3306

Oracle  1521

MS SQL  1433

传输层

TCP 网络控制协议

UDP 用户数据协议

网络层

IP 互联网协议

HTTP协议详解

URL

URL:统一资源定位符

URI:统一资源标识符

URL的构成,通常来说有五个部分:

protocol,协议是通信双方对于通信的数据的组织格式、含义、规程等所作的约定。

domain,域名是指我们要访问的服务器的服务器地址,可以是IP地址、机器名或域名等。

port,端口是由被访问的服务器来设置的,是服务器用于监听客户端的请求,从而能够实时的接收和处理客户端请求。

端口和域名很多时候是合并在一起的,格式为domain:port。

如果服务器所设置的监听端口是其服务所使用的通信协议的默认通信端口,则客户端在访问服务器时,可以省略端口。

path,路径是指跟在<域名:端口>之后的所有内容,它其实就是我们要访问的资源或者服务在服务器的容器(根目录)下的绝对路径。

URL parameters,URL地址参数是指path中问号之后的所有内容。

url地址参数本身就属于path的一部分。

url地址参数是通过键值对的方式来实现值得传递,多个键值对用&连接。

HTTP协议 

http协议,Hpye Text Transfer Protocol,超文本传输协议。

Http协议是一种基于request和response的协议。

Http协议是一种简单、灵活的协议。

Http协议是一种无连接的、快速的协议。

http 1.0及之前是无连接(短连接)的。

http 1.1及之后默认是长连接的。

短连接是指一个http请求时基于一个tcp连接,当http请求结束,底层的tcp连接也跟着关闭。

长连接是指一个http请求申请一个tcp连接,当http请求结束,会保持tcp连接,继续提供下一个http请求去使用,即一个tcp连接之上可以建立多个http请求。

Http协议是一种无状态的协议。

后来引入了session和cookie机制来保存状态。

 http request

http请求,所有接口和性能测试脚本的实现都是和http请求直接相关。一个http请求通常分为三个部分:

  • request line,请求行,是指请求数据包的第一行内容

示例

GET /phpwind/ HTTP/1.1

request method 请求方法为GET

        常见的请求方法有get、post、put、patch、delete

request path 请求路径,即URL中的path部分,包含url地址参数

protocol/version 协议/版本

  • request headers,请求头,是指请求数据包从第二行开始,到第一个空行截止的所有内容

请求头是客户端用来和服务器进行通信、交互控制的,一般来说和业务本身的实现逻辑无关。

请求头是简直对应的,格式为<请求头名:值>。

比较重要的请求头有:

        User-Agent,简称UA,是客户端用来告知服务器,客户端的配置信息。对于服务器来说,通常会根据该信息来识别用户的身份,session的维持和该信息头有关。

        Accept-Encoding,是否支持压缩,如果客户端不发送该信息头,一般服务器就不会做压缩处理。对性能测试有影响。

        Content-Type,该信息头是客户端用来告知服务器,请求主体中的数据的组织格式。如果请求主体中有值,又或者说我们抓包发现有该请求头,则必须保持一致。若不设置,则默认是以text/plain格式发送。

        其它和状态有关的信息头:

                cookie一般不用特别处理。如果工具不做处理,则需要手动处理。

                token/authoration一般需要做关联处理。

  • request body,请求体是指请求数据包种从第一个空行之后的所有内容。

请求主体是客户端发送给服务器的内容,一般和业务挂钩。

请求主体的数据的组织格式是由设计和开发决定。

一旦请求主体有数据,则必须指定Content-Type。

  • http response,响应行是指响应数据包中的第一行内容。

示例 HTTP/1.1 200 OK

通常包含以下信息:

protocol/version:协议/版本

response code:响应代码

response message:响应信息是服务器用来响应代码的含义的。

  •  response code,响应代码又叫status code,状态码。

服务器是通过响应代码来告知客户端,服务器对于请求的逻辑(通信层面,非业务层面)处理状态。

响应代码通常是由三位长度的数字构成,根据首位数字的不同,可以分为5类:

1xx表示连接建立过程中的交互信息(通信成功)

2xx典型的200表示服务器处理请求成功(通信成功)

4xx表示客户端错误,即请求本身有问题,不符合服务器的要求。401、403权限相关,404资源未找到(通信失败)

5xx表示服务器端错误(通信失败)

99.99%的工具都会自动对响应代码进行检测,因此没必要手动断言响应代码,尤其是断言200。一般来说,在接口、性能测试的脚本调试阶段,出现4xx和5xx错误,在排除服务器问题的情况下,基本上都是性能脚本本身的数据封装有问题导致。

  • response headers,响应头,参考请求头。

响应头是服务器返回给客户端的,其中主要有用的是和状态有关的响应信息头。

Set-Cookie:服务器告诉客户端,服务器所产生的cookie信息。如果客户端自动接收和处理了(后续请求自动化发送cookie),则不需要做操作,如果客户端没有自动处理,则需要做关联操作。

  •  response body,响应主体通常来说就是服务器对于请求的业务处理结果。

你可能感兴趣的:(性能测试,测试工具,网络,服务器,http)