1.通过状态代码识别
状态代码(Status-Code)由3位数字组成,表示请求是否被理解或被满足。它在WSP Reply的第2(面向连接)或第3(无连接)个字节,状态代码的第一位数字定义了回应的类别,后面两位数字没有具体分类。首位数字有5种取值的可能。
·1××:接收请求,继续。
·2××:成功,操作被接收、理解、接受(received,understood,accepted)。
·3××:重定向(Redirection),要完成请求必须进行进一步操作。
·4××:客户端出错,请求有语法错误或无法实现。
·5××:服务器端出错,服务器/网关无法实现合法的请求。
如果状态代码为4××、5××,则认为业务失败。对于每次请求,如果返回的状态代码为2××,则认为业务成功。
2.数据完整性检查
如果网关/服务器返回200 OK(在WSP Reply类型数据包中采用一字节编码0x20),还需要客户得到完整的数据内容才算此次服务请求成功,所以,需要判断数据传输的完整性。判断采用以下方法:WSP Reply类型数据包的Headers中包含Content-Length字段,则字段内容表示传输数据的大小。数据内容完整性检查指示数据包如图7-20所示。(www.xing528.com)
图7-20 数据内容完整性检查指示数据包
如果WSP Reply数据包的Headers部分不包含Content-Length字段,则采用如下方法计算数据长度。
(1)响应数据包(WSP Reply)不分片
·面向连接情形
Length(数据)=传输层Length字段值-(传输层长度+WTP层长度+2+WSP Headers Length字段所占字节+WSP Headers Length数值)
·无连接情形
Length(数据)=传输层Length字段值-(传输层长度+3+WSP Headers Length字段所占字节+WSP Headers Length数值)
(2)响应数据包(WSP Reply)分片
每个分片数据包都采用方法(1)计算数据长度,然后将所有分片数据长度累加,得到数据总长度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。