服务端请求边界
这些限制适用于 respire-server serve 的 HTTP 入口。它们约束传输工作,不改变认证或同步语义。
| 变量 | 默认值 | 用途 |
|---|---|---|
RSRS_MAX_BODY_BYTES | 8,388,608 | 请求体最大大小 |
RSRS_HEADER_TIMEOUT_MS | 10,000 | 请求头截止时间 |
RSRS_BODY_TIMEOUT_MS | 30,000 | 请求体截止时间 |
RSRS_CONNECTION_TIMEOUT_MS | 70,000 | 绝对连接截止时间,包括写入响应 |
RSRS_MAX_CONNECTIONS | 64 | 活跃连接及关联数据库任务的最大数量 |
配置值必须为十进制正整数。配置无效时会在监听前失败;容量和平台边界也会检查。
flowchart LR TCP["已接受连接"] --> Capacity["容量许可"] Capacity --> Headers["请求头截止时间"] Headers --> Body["请求体大小与截止时间"] Body --> DB["有界 Postgres 工作线程"] DB --> Reply["在连接截止时间内响应"]
| 输入 / 事件 | 结果 |
|---|---|
| 请求体超过限制 | 413;不进入数据库处理 |
| 请求体恰好等于限制 | 传输层接受;仍执行正常验证 |
| 分块请求体 | 强制限制累计大小 |
| 截断或格式错误的请求 | 显式失败,不视为成功的空请求 |
| 请求体超过截止时间 | 408 或连接失败 |
| 容量耗尽 | 拒绝连接,不进行无界排队 |
| 数据库不可用 | API 报告时为 503,不错误地表示认证失败 |
连接超时会关闭套接字,不会回滚已经开始的数据库工作。服务端不会自动重放提交结果不确定的请求。
日志
日志包含方法、路径、状态和耗时等有界诊断信息,不包含请求体、授权标头、密码哈希、盐、会话令牌和查询字符串。