HTTP 协议
理解 HTTP 协议的工作原理与交互模型
掌握请求和响应的完整结构
熟悉常用请求方法、状态码、请求头
核心讲解
HTTP(超文本传输协议)是互联网应用层的标准协议,接口测试的基础就是 HTTP 协议。
(1)工作原理请求 - 响应模型:客户端发请求,服务端返回响应
无状态:每次请求都是独立的,默认不保留上下文
基于 TCP:传输层可靠连接
请求行:
请求方法 URL 协议版本,比如GET /api/user HTTP/1.1请求头:键值对,客户端信息、格式、认证等
常见:
Host、User-Agent、Content-Type、Cookie、Authorization
空行:分隔头和体
请求体:传输的数据,GET 一般没有,POST 有
GET:查询获取数据,参数在 URL 里,幂等
POST:提交数据,新增资源,请求体传参
PUT:修改资源,整体更新
DELETE:删除资源
PATCH:局部更新
状态行:
协议版本 状态码 状态描述响应头:服务端信息、内容类型等
响应体:返回的数据,一般是 JSON 格式
2xx 成功:200 OK、201 Created
3xx 重定向:301 永久、302 临时
4xx 客户端错误:400 参数错误、401 未认证、403 无权限、404 不存在、405 方法不允许
5xx 服务端错误:500 服务器内部错误、502 网关错误、503 服务不可用
代码示例
# 用requests查看HTTP结构
import requests
resp = requests.get("https://www.baidu.com")
print("状态码:", resp.status_code)
print("状态描述:", resp.reason)
print("\n响应头:")
for k, v in resp.headers.items():
print(f" {k}: {v}")
print("\n响应体长度:", len(resp.text))
常见误区
GET 和 POST 的区别只是参数位置:本质是语义区别,GET 查、POST 增,不是能不能带请求体
状态码记混:4xx 是客户端问题,5xx 是服务端问题,不要一报错就找后端
Content-Type 和请求体不对应:JSON 格式就要设
application/json,表单是x-www-form-urlencodedHTTP 是有状态的:HTTP 本身无状态,Cookie/Session 是用来维持状态的
课后练习
用浏览器 F12 开发者工具,查看一个网页的请求和响应
整理常见的 10 个状态码及其含义
说明 GET 和 POST 的核心区别,至少 3 点

