记一次Http问题排查
程序员文章站
2024-01-27 18:16:58
...
问题经过
最近业务开发时,与服务端调试接口时。被一个蛋疼的问题给纠缠了好几小时,一个post的请求,body数据少时(小于1KB),上传的数据可以正常被解析。多于1k时,服务端就报错了。对比了其他类似的接口其他数据量比这还大都没有发生错误。几经对比和摸索始终定位不到问题。
gzip解压缩引发
经过问了其他同事,才知道如来客户端超过1kb的数据会用gzip压缩,服务端没有根据协议头信息来解压body的数据直接读,因此报错。
反思
- 排查问题的思路:一开始只想着和同类接口用法的对比,没有什么异常。底层网络请求的排查也trace过,但是没有深入分析可能存在的原因,因此没有找到真正的原因。定位不了问题,无法推动服务端的排查。
- 排查此类问题的工具:获取body 16进制的文件,还原成原始body文件看是否有问题
- http协议的理解:请求header Accept-Encoding: gzip
- 之后类似问题的快速定位