简介
一直想总结一下自己之前做的一个接口自动化测试的一个项目,想了一下直接来写的话有点大,就先从http开始吧。
http协议即超文本传输协议,是应用非常广泛的一种应用层协议,主要有以下特点:
1.支持客户端/服务器模式
2.简单快速。客户端向服务器请求服务时只需要传请求的方法和路径
3.灵活。http协议允许传送任意类型的数据对象,正在传输的类型由request或response的header中的Content-Type标记
4.无连接。http协议限制每次连接只处理一个请求,服务端处理完请求,并得到客户端的响应之后,即断开连接
5.无状态。http是无状态协议指对于每次的事务处理没有记忆功能。
url规则
http://host:[port][abs_path]
http表示使用http协议来定位网络资源,host表示请求的服务器的地址,port为请求的端口号,默认端口为80可以省略,ads_path为请求的路径,如果没有ads_path则用“/”的路径请求资源
http请求
http请求由3部分组成,请求行、消息报头、请求正文
1.请求行格式method request-url http-version crlf
method表示请求方法
request-url表示请求的url
http-version表示请求的协议版本
crlf表示换行和回车
常用的http请求方法:
get 请求获取request-url所表示的资源
post 在request-url所标识的资源后添加新的数据
head 请求获取request-url所标识的资源的响应消息报头
get 在浏览器中输入url访问网页,浏览器采用get方法向服务器获取资源
post 方法要求被请求的服务器接受后面附加的数据,常用来提交表单
head 方法用来获取响应头的header,可以用来测试链接的有效性、得到请求数据的大小(header中的Content-Length)而不用下载数据
http响应
http响应也有三部分组成,状态行、响应头、响应正文
http-version status-code Reason-Phrase crlf
http-version表示服务器的协议版本,status-code表示服务器返回的响应状态码,Reason-Phrase 状态代码的文本, crlf表示回车和换行
http响应状态码,由三位数字组成,第一个数字定义了响应的类别,有以下5中可能的取值
1xx:表示请求已接收正在处理
2xx:表示请求已成功接收
3xx:表示重定向,需要进一步处理
4xx:表示客户端错误,请求有语法错误或无法实现
5xx:表示服务端错误,服务器未能实现合法的请求
常用的http状态码
200/请求成功
400/客户端有语法错误,服务器不能理解
401/请求未经授权,一般和header有关系
403/服务器收到请求,但是拒绝提供服务(禁止访问,爬虫时多会遇到)
405/禁止访问资源(一般接口参数传错会返回此状态码)
500/服务器内部发生错误
503/服务器当前不能处理客户端请求
http消息报头
这里的消息报头即header
请求报头
Accept 表示请求客户端希望接收哪些类型的信息。Accept:image/gif表示客户端希望接收图片类型的数据,Accept:text/html表示客户端希望接收html文本
Accept-Charset表示请求客户端希望接收的字符集。Accept-Charset:iso-8859-1,gb2312如果未设置则表示可以接收任何字符集
Accept-Encoding用于指定可接受的内容编码
Host 发送请求时该报头域是必须的,用于指定被请求资源的地址和端口号
响应header
User-Agent 将请求客户端的操作系统、浏览器和其他属性告诉服务器。这个报头域不是必须的
响应报头
Location 响应报头域用于重定向接收者到一个新的位置
server 响应报头域包含了服务器处理该请求的软件信息,与User-Agent对应
实体报头
请求和响应消息可以传送一个实体报头
常用的实体报头
Content-Length实体报头域指明实体正文的长度,用十进制的字节数来表示
Content-Type实体报头域指明发送给接收者的正文类型
Content-Languaue实体报头域描述了资源所用的自然语言
Content-Encoding实体报头域被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制
网友评论