HTTP www-form-urlencoded;没有 key/value 对的原始 POST?

HTTP www-form-urlencoded; raw POST without key/value pairs?

我有一个项目,我们通过 HTTP 发送包含特殊 ASCII 代码的文本有效负载。在这些特殊的 ASCII 代码上使用 URLEncode 会按预期工作。

问题是我被告知使用 x-www-form-urlencoded 内容类型,但接受原始正文就好像它不是表单一样(没有 key/value 对)并将接收到的内容作为单个有效负载进行 urldecode。

问:这样合理吗?我之前没有 运行 检查过 x-www-form-urlencode 的真实世界与潜在 'spec-breaking' 用法(即 'form' 部分无关紧要,可以忽略) .

交叉检查的 TIA!

回答你的问题:不,这不合理。如果数据不是 key/value 格式,那么使用 x-www-form-urlencoded 作为 Content-Type 没有多大意义(参见 standard and here is a good explaination)。

还有什么用? 这真的取决于你的数据。从标准 (RFC2045):

Content-Type Header Field

Content-Type字段的作用是描述数据 包含在正文中,足以让接收用户代理可以 选择合适的代理或机制将数据呈现给 用户,或以其他方式以适当的方式处理数据。这 此字段中的值称为媒体类型。

所以如果你真的只有 ASCII 字符,它仍然是 text/something 类型。如果原始数据对你的应用程序来说是特殊的,你可以 incen