跳到主要內容

解析響應包

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

信息

當包頭中的 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