http
HTTP协议的基本知识
**介绍:**全程超文本传输协议,用来在浏览器和服务器上来传输超文本信息,后来发展到服务器与服务器之间,app和服务器都有使用
**特点:**通讯双方分文客户端和服务端,目前所有HTTP协议是基于TCP协议的,所有首先要创建一个TCP连接
一定是客户端发送请求给服务端,TCP连接可以用一段时间,一段时间不用会消失
方法
请求
一般常用的请求方法:get , post, ptu, delete

请求头:HTTP/1.1下面的内容就是消息头
- GET是请求方法这一行为请求行
- HOST:告诉他访问的那个应用(同一个服务端口上面也可以运行很多网站服务,要告诉服务器访问哪个)
- User-Agent:告诉他是火狐,
- language:语言中文
请求的url,请求头中可以存放一些数据信息,但是有些数据通常放在信息体中,请求头和信息体用一行隔开
通常POST和PUT请求中,会存放一些json,xml,包括一些内容的描述,如名称,编码等等。json是现在主流的用于传输的格式
响应
在api接口中,返回的是文本
状态行:status line
协议版本 状态码 状态
** 状态码**
- 2**表示成功,一般没什么问题
- 3**表示我这个请求的url已经改变,需要重定向,会在响应中告诉客户端,重新请求另一个url
- 4**请求有错误
400 Bad Request 表示客户端请求不符合接口要求,比如格式完全错误,完全不知道格式意思
401 Unauthorized 表示客户端需要认证才能发送请求,比如没有登录就访问
403 Forbidden 表示客户端没有权限要求服务器处理这样的请求,比如普通用户请求删除别人账号
404 Not Found 表示请求的url不存在 - 5** 表示服务端在处理请求中,出现了未知的错误
通常代码问题,或者服务端子系统出现故障(比如数据库服务宕机了,断了)
消息的交互
接口测试:
内容依据接口规范,写出测试用例
直接通过消息接口,对被测的系统进行消息收发,检测是否正确
目前的软件系统之间的消息接口,都是基于HTTP协议的,客户端发一个请求给服务端,服务端就返回一个HTTP响应,和API程序调用神似
所以一般称为API接口测试
一般列出信息称为接口消息,网页,css都是静态资源,无需特殊处理
需要处理的信息,才是接口
…
测试 工具开发
Requests库简介
Requests经常被用来爬取网页信息,用它发起HTTP请求,从HTTP响应消息中提取消息。
response = requests.get(url)构建get方法,向这个url发送请求
response 是Requests库里面定义的一个对象
fiddler的使用(抓包)
- 为了避免抓的包太多我们一般会设置过滤项,在filters中进行设置

- inspectors查看我们抓的包
- 相当于一个代理,把自己当成一个系统代理,装在127.0.0.1:8888上
proxies = {
'http': http://127.0.0.1:8888"
}
response = requsets.get('http://mirrors.sohu.com/', proxies=proxies)#利用抓包工具进行代理
print(response.text)
手机抓包
手机的wifi和电脑需要连接同一个子网
构建URL请求参数
- 直接写在url里面(列如www.baidu.com/s?******************)
- 定义到一个字典里面, params=paras
消息头
消息体
格式都是字符串一般分为 :XML格式,json格式,urlencoded格式,或者其他的字符串

XML文件 :data=payload需要编码成字节码文件
urlencoded格式:把存在url ?后面的参数放到字典里。
json格式:字符串一律双引号
python中的数据对象json传入data , 上图中不是 字符串,我们需要使用data=json.dumps(payload)把它转换为字符串
如果payload中包含中文字符,他会用ascii码表示(payloa, ensure_ascii=False).encode()
检查HTTP响应
**返回的response中存放着 响应返回的所有信息
text = json.loads(response.content.decode(‘utf8’)返回JSON格式转换为python格式
text[‘a’],取出数据
Session详解
session是一个数据结构,存在数据库中,保存用户这次登录的相关操作,存一个sessionID,以方便来找到这些信息,当客户端再次请求 时候,一定会带上服务器上次返回的SessionID,这个SessionID放在HTTP消息的消息头Set-Cookie中,服务端通过SessionID去数据库里查找,会获得用户的相关信息。
由于HTTP协议规定Set-Cookie是请求头的必带字段,Session利用这个,把SessionID存在Cookie中
requests处理session-cookie
s = requests.Session()
resopnce = s.port(“”,data={***})
通过Session对象发送请求,response保存cookie消息
本文深入介绍了HTTP协议的基础知识,包括其特点、请求方法(GET、POST等)、消息头和消息体。讲解了常见的状态码及其含义,并详细阐述了接口测试、Requests库的使用以及Fiddler抓包工具的配置。同时,讨论了手机抓包、URL参数构建、HTTP响应检查以及Session的概念和工作原理。
4004

被折叠的 条评论
为什么被折叠?



