在http帖子 Headers 中有空格会导致BAD请求吗?
我在其中一个请求中看到了这一点:Content-Type“text / xml; c harset = utf-8”
我收到HTTP / 1.1 400错误请求
但是如果使用Content-Type“text / xml; charset = utf-8”发布相同的请求
即它在charset中没有空间 .
在我的实现中,我没有做任何验证 . 所以我假设我的Jetty服务器抛出了一个错误的请求,因为charset中有空格?
我是对的,还是我的解释错了 .
谢谢!!
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"是合适的并且符合协议标准 . 为什么's worth, you'也会找到HTTP status codes in the RFC . 状态代码 400 Bad Request 表示:
即不要这样做 . :)