接口测试-常见接口协议解析
先看几张图:
通过这几张图,我们可以清楚的看到一些常用协议,下面我们一一介绍:
1. HTTP协议详解
· http报文结构
· 请求报文方法
· 常见状态码
· 请求与响应格式分析
http报文结构
请求报文方法
常见状态码
· 状态码有5个大类,由第一位数字进行区分,每个大类下面还有不同的子类,每种子类的长度都是3位,都代表一个状态码
即一种类型的返回的信息。
o 1xx表示通知信息,如请求收到了或正在进行处理
o 2xx表示成功,如接受或知道了
o 3xx表示重定向,如果要完成请求还必须才去进一步的行动
o 4xx表示客户端的差错
o 5xx表示服务器的差错
TCP/IP协议
TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。
基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。
TCP/IP协议族按照层次由上到下,层层包装。最上面的是应用层,这里面有http,ftp,等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标。第四层是数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。
上图清楚地表示了TCP/IP协议中每个层的作用,而TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程。入栈的过程,数据发送方每层不断地封装首部与尾部,添加一些传输的信息,确保能传输到目的地。出栈的过程,数据接收方每层不断地拆除首部与尾部,得到最终传输的数据
TCP和UDP
TCP/UDP都是是传输层协议,但是两者具有不同的特性,同时也具有不同的应用场景,下面以图表的形式对比分析。
面向报文
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。
面向字节流
面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。
关于拥塞控制,流量控制,是TCP的重点,后面讲解。
TCP和UDP协议的一些应用
什么时候应该使用TCP?
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。
什么时候应该使用UDP?
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。
HTTPS协议
HTTPS特点:
基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护
通过抓包可以看到数据不是明文传输,而且HTTPS有如下特点:
内容加密:采用混合加密技术,中间者无法直接查看明文内容
验证身份:通过证书认证客户端访问的是自己的服务器
保护数据完整性:防止传输的内容被中间人冒充或者篡改
**混合加密:**结合非对称加密和对称加密技术。客户端使用对称加密生成密钥对传输数据进行加密,然后使用非对称加密的公钥再对秘钥进行加密,所以网络上传输的数据是被秘钥加密的密文和用公钥加密后的秘密秘钥,因此即使被黑客截取,由于没有私钥,无法获取到加密明文的秘钥,便无法获取到明文数据。
**数字摘要:**通过单向hash函数对原文进行哈希,将需加密的明文“摘要”成一串固定长度(如128bit)的密文,不同的明文摘要成的密文其结果总是不相同,同样的明文其摘要必定一致,并且即使知道了摘要也不能反推出明文。
**数字签名技术:**数字签名建立在公钥加密体制基础上,是公钥加密技术的另一类应用。它把公钥加密技术和数字摘要结合起来,形成了实用的数字签名技术。
收方能够证实发送方的真实身份;
发送方事后不能否认所发送过的报文;
收方或非法者不能伪造、篡改报文。
内容加密和数据完整性保护
非对称加密过程需要用到公钥进行加密,那么公钥从何而来?其实公钥就被包含在数字证书中,数字证书通常来说是由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,证书中包含了一个密钥对(公钥和私钥)和所有者识别信息。数字证书被放到服务端,具有服务器身份验证和数据传输加密功能。
FTP协议
FTP是File Transfer Protocol(文件传输协议)的英文简称,建立在TCP协议之上,用于Internet上文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用是:让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
端口
FTP协议主要使用的端口有两个,控制端口21,数据端口20,21端口主要用于传输控制命令,20端口主要用于传输数据。
传输格式
主要使用的传输格式和TFTP协议类似,二进制传输格式和文件传输格式,默认是二进制传输格式。
传输模式
传输模式主要分为两种,主动模式和被动模式,主动模式是在进行数据连接时,服务端主动连接客户端;被动模式是在进行数据连接时,客户端主动连接服务端。在客户端有防火墙的情况下,建议使用被动模式,因为在主动模式下,服务端连接客户端时,由于连接的客户端端口大于1024,有可能被客户端的防火墙挡住,导致连接失败。
FTP错误码
错误一般是3个数字,2开头的数字一般表示成功,3开头的数字一般表示权限问题,4开头的数字一般表示文件问题,5开头的数组一般表示服务器问题,具体错误码的含义如下:
· 150 文件状态良好,打开数据连接
· 200 命令成功
· 212 目录状态
· 213 文件状态
· 110 重新启动标记应答
· 500 格式错误,命令不可识别
· 501 参数语法错误
· 502 命令未实现
· 120 在X 分钟内准备好
· 125 连接打开准备传送
· 214 帮助信息,信息仅对人类用户有用
· 215 名字系统类型
· 220 对新用户服务准备好
· 221 服务关闭控制连接,可以退出登录
· 202 命令未实现
· 211 系统状态或系统帮助响应
· 225 数据连接打开,无传输正在进行
· 226 关闭数据连接,请求的文件操作成功
· 227 进入被动模式
· 230 用户登录
· 331 用户名正确,需要口令
· 332 登录时需要帐户信息
· 350 请求的文件操作需要进一步命令
· 421 连接用户过多
· 425 不能打开数据连接
· 426 关闭连接,中止传输
· 450 请求的文件操作未执行
· 451 中止请求的操作:有本地错误
· 452 未执行请求的操作:系统存储空间不足
· 250 请求的文件操作完成
· 257 创建"PATHNAME"
· 503 命令顺序错误
· 504 此参数下的命令功能未实现
· 530 账号或密码错误
· 532 存储文件需要帐户信息
· 550 未执行请求的操作
· 551 请求操作中止:页类型未知
· 552 请求的文件操作中止,存储分配溢出
· 553 未执行请求的操作:文件名不合法
更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。