Python接口测试学习笔记(一) - HTTP协议

本文学习笔记整理自【Python开发】接口测试教程

一. HTTP

1. HTTP(超文本传输协议)是一个基于请求与响应模式的, 无状态的, 应用层的协议

2. URL详解:

名称 解释 举例
http/https 协议类型 https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D
host

主机地址或域名

192.168.xx.xx:8080 地址+端口号

www.baidu.con 域名

localhost:8080 本机地址

https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D
port 端口号(默认端口号是80,可省略) http://192.168.xx.xx:8080/ (其中192.168.xx.xx是主机地址)
path 请求的路径 https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D
? 分割符号 https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D
参数 name=value https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D
& 多个参数用&隔开 https://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D

 

二. Request

1. 请求方法:

GET, POST, HEAD, PUT, DELETE, CONNECT, OPTIONS, TRACE

GET请求指定的页面信息, 并返回实体主体

POST向指定的资源提交数据进行处理请求(例如提交表单或者上传文件). 数据被包含在请求体中, POST请求可能会导致新的资源的建议和/或已有资源的修改

HEAD 类似于GET请求, 只不过返回的响应中没有具体的内容, 用于获取报头

PUT 从客户端向服务器传送的数据取代指定的文档内容

DELETE 请求服务器删除指定的页面

CONNET HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

OPTIONS 允许客户端查看服务器的性能( & 获取服务器支持的HTTP请求方法)

TRACE 回显服务器收到的请求, 主要用于测试或诊断

2. Request组成:

请求行, 请求头部, 空一行, 请求体(body)

3. 请求头Headers:

Client:

Accept:浏览器可接受的媒体类型

Accept-Encoding: 编码类型, 声明可以接受的媒体格式

Accept-Language: 语言, 声明可解析的语言

User-Agent: 客户端类型

Cookie:

Cookie:一个HTTP cookie 是服务端传给客户端浏览器的一小部分数据,可为无状态的HTTP协议提供前后请求间的上下文会话.(引用)

Entity:

Content-Type:发生post时, body的数据类型声明

 4. GET/POST请求参数

GET的请求参数都在请求行里, 即URL里的name=value那段.(可通过Fiddler的WebForm查看)

POST请求参数同GET, 请求体分如下几种(通过Content-Type声明):

application/json: json格式

text/xml: xml 格式

application/x-www-form-urlencoded: name=value 形式(可通过Fiddler的WebForm查看, 请求参数为上方的QueryString, body为下方Body)

multipart/form-data: 表单格式, 一般用来传输多媒体格式, 如上传文件

三. Response

HTTP响应也由四个部分组成: 状态行, 消息报头, 空行, 响应正文

Response返回类型也有Content-Type: text/html格式, 可通过WebView查看

状态码

状态码由三位数字组成, 第一个数字定义了响应的类别, 共分五种类别:

1xx: 消息 - 请求已被接受,需要继续处理

2xx: 成功 - 请求已成功被服务器接收、理解、并接受

3xx: 重定向 - 需要客户端采取进一步的操作才能完成请求

4xx: 客户端错误 - 客户端看起来可能发生了错误,妨碍了服务器的处理

5xx: 服务的错误 - 服务器无法完成合法有效的请求

常见状态码:

200: OK - 客户端请求成功

400: Bad Request - 客户端请求有语法错误, 不能被服务器所理解

401: Unauthorized - 请求未经授权, 这个状态码必须和www-authenticate报头域一起使用

403: Forbidden - 服务器收到请求, 但是拒绝提供服务

404: Not Found - 请求资源不存在

500: Internal Server Error - 服务器发送不可预期的错误

503: Server Unavailable - 服务器当前不能处理客户端的请求, 一段时间后可能恢复正常

 

 

posted on 2020-01-12 11:49  Faye_Z  阅读(270)  评论(0编辑  收藏  举报