1、400简介
400是一种HTTP状态码,告诉客户端它发送了一条异常请求。400页面是当用户在打开网页时,返回给用户界面带有400提示符的页面。其含义是你访问的页面域名不存在或者请求错误。主要分为两种。
1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
2、请求参数有误。
400的主要有两种形式:
1、bad request意思是"错误的请求";
2、invalid hostname意思是"不存在的域名"。
2、log
2023/8/7 15:15:10:378\]\[D\]content:\
\[2023/8/7 15:15:10:378\]\
\
400 Bad Request\\
\[2023/8/7 15:15:10:378\]\
\[2023/8/7 15:15:10:378\]\
\400 Bad Request\
\
\[2023/8/7 15:15:10:378\]\
\
nginx\
\[2023/8/7 15:15:10:378\]\
\[2023/8/7 15:15:10:378\]\
# 3、wireshark 数据包分析

从上面数据可以看出mbedtls的流程已经完成,到了Application Data数据帧来,然后服务器主动断开了连接。可以推断该问题大概率会device端数据的异常导致的(**语义有误,当前请求无法被******[服务器](https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8/100571?fromModule=lemma_inlink "服务器")******理解**)。
# 4、调试
(1) 异常数据

(2) 正常数据

接下来重点就看程序读取MAC地址填写异常的代码段即可。