我知道缺少内容长度标头是411,但不确定当内容长度中给定的值与实际内容长度不匹配时我应该如何响应
标准似乎对要响应的实际代码保持沉默,只是两个长度必须匹配,HTTP/1.1代理必须通知用户。
我只想使用400 Bad Request
代码,因为这毕竟是问题所在(一个违反标准的请求),而其他400系列代码似乎都不够匹配。x00
代码还定义了状态的类,因此可用于通用代码。
请记住,代码是可扩展的,您可以始终定义自己的代码,并且不识别它的代理无论如何都需要将其视为x00
变体(RFC2616第6.1.1节):
HTTP状态代码是可扩展的。HTTP应用程序不需要理解所有注册状态代码的含义,尽管这种理解显然是可取的。但是,应用程序必须理解任何状态代码的类,如第一位数字所示,并将任何未识别的响应视为等效于该类的x00状态代码,但不能缓存未识别的应答。例如,如果客户端接收到无法识别的状态代码431,则可以安全地假设其请求有问题,并将响应视为接收到400状态代码。在这种情况下,用户代理应该向用户呈现与响应一起返回的实体,因为该实体可能包括人类可读的信息,这些信息将解释异常状态。