如果HTTP Content-Length与实际体型不同,该怎么办?

时间:2011-11-29 16:15:59

标签: http http-headers

如果HTTP服务器发送带有Content-Length标头和稍大于该长度的消息体的回复,那么处理这种不匹配的方法是什么?我应该默默地忽略额外的数据吗?我没有在HTTP / 1.1 RFC中看到这个,它只是说应该始终匹配。看起来可能有一些错误的服务器没有做到这一点。

感谢。

2 个答案:

答案 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错误的请求

由于语法格式错误,服务器无法理解该请求。客户不应在没有修改的情况下重复请求。