跳转到内容

当服务端收到客户端的请求包后必须响应一个响应包回来

ℹ️Info

当包头中的 type 值为 2 时,数据包为请求包

结构

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| type=2|v|g|re.|    cmd_code   |           request_id          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |  status_code  |    body_len   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            body_len           |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                       body(by body_len)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                        nonce(optional)                        +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                      signature(optional)                      +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

字段说明:

字段长度 (bit)长度(字节)说明
cmd_code81指令 cmd 值
request_id32(uint32)4请求 id,同一个连接的 id 需要唯一,从 1 开始,到达 4294967295 后从新开始。
status8(uint8)1状态码 0 - 成功;参考状态码表
body_len24(uint32)3body 长度,单位:字节,最大 16 MB 数据;如果 gzip 为 1,该值为 body 压缩后的长度
body可变长度,由 body_len 决定可变长度body,最大 16 MB
nonce648仅当包头中的 verify 为 1 时存在
signature12816仅当包头中的 verify 为 1 时存在

响应包状态码

响应包有状态说明:

标识说明
0SUCCESS成功,类似于 HTTP 200
1SERVER_TIMEOUT服务端超时,类似于 HTTP 408
3BAD_REQUEST请求错误,通常为参数错误,类似于 HTTP 400
5UNAUTHENTICATED鉴权失败,类似于 HTTP 401
7SERVER_INTERNAL_ERROR服务端内部错误,类似于 HTTP 500

基于 MIT 许可发布