网络概念
- 客户端
- 服务端
- 请求:
客户端向服务器获取数据的一种行 - 响应
- 服务器对客户端对请求做出的反应,一般指返回数据给客户端
http协议
1.http协议与https概念:为服务端与客户端答应
2.网站的URL会分为两部分:通信协议和域名地址
3.HTTP是一种使用明文数据传输的网络协议
4.HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密。
-
上述为GET方法的请求行
从上至下
- 客户能处理的类型
- 优先的压缩方法
- 中文的语言
- 持久连接
- cookie 保存用户信息,在开发中通常与session一起用
- 主机地址
状态码 状态描述 解释
200 OK 客户端请求成功
204 No Content 请求成功,但没数据可返回
206 Partial Content 对资源某一部分的请求
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized 需要http认证信息, 如已进行过一次请求, 则表示用户认证失败
403 Forbidden 接收到请求, 但不允许访问那资源
404 Not Found 服务器上没有请求的资源, url错误
500 Internal Server Error 服务器内部资源发生错误
503 Serveice Unavailable 服务器暂时处于超负载
TCP/IP协议族:
- 应用层
- 传输层
- 网络层
- 数据链路层
获取DNS地址 ipconfig
手动DNS设置 以太网 114 114 114 114
8 8 8 8 8
GET方法无请求体,一般作为不太重要内容的请求方法。
# pip install requests
import requests
import re
# 1.确定url地址
url = 'https://www.doutula.com/photo/list/?page=2'
# 1.2 设置ua
ua = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
# 2.请求
result = requests.get(url, headers=ua).content.decode()
# 查看支持的格式类型.
# result = requests.get(url, headers=ua).headers['content-type']
# 查看ua
# result = requests.get(url, headers=ua).request.headers
# print(result)
# 显示状态码
# result = requests.get(url, headers=ua).status_code
#
# print(result)
# # 3.删选数据 .*? . 通配符号,只匹配一个 *后面的按照前面的方式去匹配. ? 是非贪婪符号
image_urls = re.findall('data-original="(.*?)"', result)
# print(image_urls)
for image_url in image_urls:
# print(image_url)
image_name = image_url.split('/')[-1]
print(image_name)
image = requests.get(image_url).content
#
# # 4.保存数据
with open('./image/%s' % image_name, 'wb') as file:
file.write(image)
POST方法比GET方法更安全,有请求体,一般作为重要信息的请求方法
# 1.3 设置请求体 在页面的FORM data中
data = {
'color': '16777215',
'fontsize': '25',
'mode': '1',
'msg': '666',
'rnd': '1590672609',
'roomid': '73356',
'bubble': '0',
'csrf_token': 'adf0c7e476e27e0d13c1ae8448611775',
'csrf': 'adf0c7e476e27e0d13c1ae8448611775'
}
API接口
api接口,一般把url就看成是接口,url里面要传对应的字段,就是接口字段,拿手机短信验证码接口来说,其中配置项要传入初始化client,apikey作为所有请求的默认值,发送的信息及手机号。
接口和客户端功能测试的关系
- 客户端通过调用服务端提供的接口来获取数据
- 客户端功能测试过程中需要和接口交互的场景
1.客户端测试过程发现bug, 需要排查是客户端代码问题还是服务端代码问题
2.客服端借助接口调用生成一些放回数据,辅助客户端接口测试
3.跳过客户端代码的验证限制直接访问服务端
4.仿真弱网环境,进行弱网测试