如果HTTP服务器发送带有Content-Length标头和稍大于该长度的消息体的回复,那么处理这种不匹配的方法是什么?我应该默默地忽略额外的数据吗?我没有在HTTP / 1.1 RFC中看到这个,它只是说应该始终匹配。看起来可能有一些错误的服务器没有做到这一点。
感谢。
答案 0 :(得分:0)
长度由Content-Length标头字段(或Chunked Encoding,或关闭连接)定义。
如果长度不匹配,则意味着额外字节属于下一条消息。如果这些额外的字节不代表额外的HTTP消息,那就是通信错误。只需关闭连接并报告错误。
(见https://greenbytes.de/tech/webdav/rfc7230.html#message.body.length)
答案 1 :(得分:0)
通过HTTP状态代码定义,返回“ 400错误请求”并通知客户端这两个长度不匹配似乎是最适当的操作。
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
10.4.1 400错误的请求
由于语法格式错误,服务器无法理解该请求。客户不应在没有修改的情况下重复请求。