HTTP连接之出现400 Bad Request分析

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 数据包分析 ![](https://file.jishuzhan.net/article/1690255609787584514/995c75b7099b4f6bbbd8a2200f2b3be6.jpeg) 从上面数据可以看出mbedtls的流程已经完成,到了Application Data数据帧来,然后服务器主动断开了连接。可以推断该问题大概率会device端数据的异常导致的(**语义有误,当前请求无法被******[服务器](https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8/100571?fromModule=lemma_inlink "服务器")******理解**)。 # 4、调试 (1) 异常数据 ![](https://file.jishuzhan.net/article/1690255609787584514/8eeb70d0fe0340adb4b3830566861db0.png) (2) 正常数据 ![](https://file.jishuzhan.net/article/1690255609787584514/f4cf506d7c7546af9b07192e5132b146.png) 接下来重点就看程序读取MAC地址填写异常的代码段即可。

相关推荐
sR916Mecz40 分钟前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
java·linux·服务器
0xDevNull1 小时前
Linux服务器日志查看完全指南
linux·运维·服务器
songx_991 小时前
Linux基础1
linux·运维·服务器
菱玖1 小时前
Linux 系统性能排查常用指令
linux·运维·服务器
皮卡蛋炒饭.2 小时前
进程间通信
linux·运维·服务器
艾莉丝努力练剑2 小时前
【Linux系统:信号】线程安全不等于可重入:深度拆解变量作用域与原子操作
java·linux·运维·服务器·开发语言·c++·学习
楼田莉子2 小时前
同步/异步日志系统:日志的工程意义及其实现思想
linux·服务器·开发语言·数据结构·c++
泰白聊AI2 小时前
AI 编程时代的规范驱动开发:OpenSpec 实践指南
服务器·人工智能·驱动开发·ai·aigc·ai编程
w6100104662 小时前
CKAD-2026-Secret
运维·k8s·ckad
无巧不成书02182 小时前
基于WSL 2的Docker远程开发全栈实战指南
运维·docker·容器·docker desktop·wsl 2·vs code远程开发·容器化开发