2. HTTP/HTTPS 协议基础
在 ERP 系统的前后端分离架构中,前端(浏览器/客户端)与后端(API 网关/微服务)之间的每一次数据交互,都基于 HTTP/HTTPS 协议。理解请求方法、状态码、头部字段以及加密原理,是定位通信故障、调试接口、实现安全穿透查询的必备基础。
2.1 HTTP 请求方法
ERP 系统中,CRUD(增删改查)操作通常映射为以下四种核心方法:
| 方法 | 语义 | ERP 典型场景 | 请求体 | 幂等性 |
|---|---|---|---|---|
| GET | 查询资源 | 获取财务报表列表、查询订单详情 | 无 | 是 |
| POST | 创建资源 / 提交处理 | 新增采购订单、提交凭证审批 | 有(JSON/XML) | 否 |
| PUT | 全量更新资源 | 修改客户主数据、更新库存数量 | 有 | 是 |
| DELETE | 删除资源 | 作废未审核单据、移除废弃物料 | 通常无 | 是 |
调试提示: 在浏览器开发者工具(F12)的 Network 面板中,通过筛选方法类型,可以快速定位某个操作对应的请求。例如,财务报表穿透查询通常使用 GET 请求携带查询参数,若误用 POST 可能导致缓存失效或跨域问题。
2.2 HTTP 状态码
状态码是服务器对请求处理结果的数字标识。ERP 调试中,以下状态码出现频率最高:
- 2xx 成功
200 OK:请求成功,响应体包含数据(如报表 JSON)。201 Created:资源创建成功(如新增凭证后返回新 ID)。204 No Content:删除成功,无返回体。
- 3xx 重定向
301/302:资源地址变更。ERP 中若 API 网关配置了路由重写,需关注此状态。304 Not Modified:可使用本地缓存,减少重复查询。
- 4xx 客户端错误
400 Bad Request:请求参数格式错误(如日期格式不匹配)。401 Unauthorized:未提供或提供了无效的认证令牌。403 Forbidden:已认证但无权限访问该报表或数据。404 Not Found:API 路径错误或资源不存在。422 Unprocessable Entity:业务校验失败(如借贷不平衡)。
- 5xx 服务端错误
500 Internal Server Error:后端代码异常,需查看日志。502 Bad Gateway:网关或代理层无法获取上游响应。504 Gateway Timeout:查询超时,常见于复杂报表聚合计算。
避坑指南: 在财务报表穿透查询中,若遇到
403 状态码,应优先检查请求头中的 Authorization 令牌是否携带了正确的行级权限;504 超时则需考虑在后端增加查询超时配置或优化 SQL 索引。
2.3 请求头与响应头
头部字段承载了认证、内容协商、缓存控制等关键信息。ERP 调试中必须关注的头部如下:
| 类别 | 头部名称 | 作用 | 调试示例 |
|---|---|---|---|
| 请求头 | Authorization |
携带 Bearer 或 Basic 认证 | Bearer eyJhbGciOiJIUzI1NiIs... |
Content-Type |
声明请求体格式 | application/json; charset=utf-8 |
|
Accept |
期望服务器返回的格式 | application/json |
|
| 响应头 | Set-Cookie |
服务端设置会话 Cookie | sessionId=abc123; Path=/; HttpOnly |
Cache-Control |
控制缓存策略 | no-cache, no-store, must-revalidate |
|
Access-Control-Allow-Origin |
CORS 跨域允许来源 | https://erp.example.com |
2.4 HTTPS 加密原理
ERP 系统涉及财务、客户、供应商等敏感数据,必须使用 HTTPS 保障传输安全。其核心加密流程如下:
- 客户端发起 ClientHello:浏览器发送支持的 TLS 版本、加密套件列表。
- 服务端回应 ServerHello:选择 TLS 版本和加密套件,并发送数字证书(含公钥)。
- 证书验证:客户端验证证书的合法性(CA 签名、域名、有效期)。
- 密钥交换:客户端生成预主密钥,用服务器公钥加密后发送;服务器用私钥解密。
- 会话密钥生成:双方基于预主密钥独立计算出对称加密的会话密钥。
- 加密通信:后续所有 HTTP 数据使用会话密钥进行对称加密传输。
关键结论: HTTPS 通过 非对称加密(RSA/ECC)安全交换密钥,再使用 对称加密(AES)加密实际业务数据。ERP 调试时,若遇到证书错误(如
NET::ERR_CERT_AUTHORITY_INVALID),应检查服务器证书是否由受信任的 CA 签发,或是否使用了自签名证书且未在客户端信任链中安装。
2.5 调试常用工具与命令
在 ERP 通信调试中,以下工具可帮助快速验证请求/响应细节:
- 浏览器开发者工具(F12):Network 面板查看请求方法、状态码、请求头、响应头及时间线。
- cURL 命令行:模拟请求,精确控制头部和参数。
- Postman / Apifox:可视化构造请求,支持环境变量和自动化测试。
# 使用 cURL 模拟 GET 请求,携带 和 JSON 格式期望
curl -X GET "https://erp-api.example.com/api/v1/finance/reports?period=2025-01" \
-H "Authorization: Bearer <your_>" \
-H "Accept: application/json" \
-v # -v 参数可输出完整请求/响应头
实战建议: 在调试财务报表穿透查询时,优先使用
curl -v 或浏览器 Network 面板的“复制为 cURL”功能,可以完整复现请求上下文,避免因工具差异导致的头部丢失问题。