测试过程中,尤其是web测试,我们在了解一个接口的时候,首先需要了解传输过程中的协议,因为开发人员在开发过程中最常用的就是HTTP协议,所以了解这个对于测试人员进行接口测试有着很大的意义。
1.HTTP是什么?
HTTP协议又称为超文本传输协议,原名HyperText Transfer Protocol,是互联网上应用最广泛的一种网络协议
2.HTTP请求类型
请求行以一个方法符号开头,以空格分开,后面跟着请求的URL协议的版本,格式如下:Method Request-URL Http-version CRLF,其中method表示请求的方法,Request-URL是一个统一资源标识符,Http-version表示请求的HTTP协议版本,CRLF表示回车或者换行。
常见的两种类型为get/post:
Get 指请求获取Request-URL所标志的资源
Post指在Request-URL所标志的资源后附加的新的数据
head指请求获取由Request-URL所标志的资源的响应信息报头
3.HTTP常见响应状态码和状态说明
状态码有三位数字组成,第一个数字定义了响应的类别,且有5种可能的取值:
1XX:指示信息,表示请求已接收,继续处理
2XX:成功,表示请求已被成功接收、理解、接受
3XX:重定向,要完成请求必须进行进一步的操作
4XX:客户端错误,表示请求有语法错误或请求无法实现
5XX:服务器错误,服务器未能实现合法的请求。
常见的状态码说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态码必须和www.authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝服务
404 Not Found //请求资源不存在 ps:输入了错误的URL
500 Internal Server Error //服务器发生了不可预测的错误
503 Server Unavaliable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
4.HTTP请求头和响应头信息详解
如图所示,上部分属于响应头信息。响应报头允许服务器传递不能放在状态中的附加响应信息,以及关于服务器信息和对Request-url所标识的资源进行下一步访问的信息。常用的响应报文:
location:响应报文用于重定向接受者到一个新的位置。loacation响应报文内容常常出现在更换域名的时候
server:响应报头域包含了服务器用于处理请求的软件信息,与User-Agent请求报头域相对应
www-Authenticate :响应报头域必须包含在401(未授权)的响应信息中,客户端收到401响应信息的时候,并发送Authorization报头域请求服务器对其进行验证时, 服务器响应报文中才显示。
x-Frame-Options:有三个值,DENY表示该页面不允许在frame中展示,即便是在相同域名的页面中嵌套也不允许。SAMEORIGIN表示该页面可以在相同的域名页面的
frame中展示。Allow-from url表示该页面可以在指定来源的frame中展示。
下部分属于请求头信息,即允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。
Accept:用于指定客户端接受哪些类型的信息。Accept:image/gif,表示客户端希望接受gif图像格式的资源。accept:text/html表明客户端希望接受html的文本。
Accept-Encoding:用于指定可接受的内容编码
Accept-Language:用于指定一种自然语言
Connection:允许发送指定链接的选项,例如指定连接是连续,或者指定close选项,表示通知服务器,在响应完成后,关闭连接。从HTTP1.1起,默认都开启了keep-Alive,保持其连续特性。
Host:指定请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来。
User-Agent:指定允许客户端将它的操作系统、浏览器和其他属性告诉服务器,但这个不是必需的,如果自己编写一个浏览器,不使用User-Agent请求报头域,那么服务器端就无法得知我们的信息。