跳轉到內容

解析響應包

當服務端收到客戶端的請求包後必須響應一個響應包回來

ℹ️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