在http帖子标题中有空格会导致BAD请求吗?
我在其中一个请求中看到了这一点: Content-Type“text / xml; c harset = utf-8”
我收到HTTP / 1.1 400错误请求
但是如果发布相同的请求 Content-Type“text / xml; charset = utf-8”
即charset中没有空间。
在我的实现中,我没有进行任何验证。 所以我假设我的Jetty服务器抛出一个错误的请求,因为charset中有空格?
我是对的还是我的解释错了。
谢谢!
答案 0 :(得分:1)
是的,有一个空间放置它应该会导致错误的请求。
HTTP 1.1是由标准定义的协议。通过引用标准文档,可以确定什么是有效请求和什么不是有效请求。
您可以在RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1找到HTTP / 1.1的标准,您可能特别希望查看14.17 Content-Type和3.7 Media Types部分。
基本上,通过将空格插入"charset"
,您将创建无效的HTTP请求,因为协议无法理解"c"
和"harset"
部分。那些未被定义为该上下文中的有效文本。
此外,虽然协议知道什么似乎是有效的,什么不是,但它不够聪明,无法推断如何解决这样的简单错字。因此,服务器响应“400 Bad Request”是合适的并且符合协议标准。对于它的价值,你也会找到HTTP status codes in the RFC。状态码 400错误请求表示:
由于格式错误,服务器无法理解该请求 句法。客户端不应该重复请求 修改
即。不要那样做。 :)