首页 文章

Jetty在格式错误的HTTP POST标头上返回“HTTP / 1.1 400错误请求” . 这是预期的吗?

提问于
浏览
2

在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 回答

  • 1

    是的,有一个空间放置它应该导致一个糟糕的请求 .

    HTTP 1.1是由标准定义的协议 . 通过引用标准文档,可以确定什么是有效请求和什么不是有效请求 .

    您可以在RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1找到HTTP / 1.1的标准,您可能特别想查看14.17 Content-Type3.7 Media Types部分 .

    实质上,通过将空格插入 "charset" ,您将创建无效的HTTP请求,因为协议不理解 "c""harset" 部分 . 那些未在该上下文中定义为有效文本 .

    此外,虽然协议知道什么似乎是有效的,并且什么不足以推断如何修复甚至像这样的简单拼写错误 . 因此,服务器响应"400 Bad Request"是合适的并且符合协议标准 . 为什么's worth, you'也会找到HTTP status codes in the RFC . 状态代码 400 Bad Request 表示:

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

    即不要这样做 . :)

相关问题