HTTP PUT请求可以将application / x-www-form-urlencoded作为Content-Type吗?

时间:2011-06-10 12:13:01

标签: http rest specifications

如果我需要在HTTP PUT请求中发送表单数据,它是否有效?

如果你能指出一个规范,那就太棒了。

[更新]

我已经完成了HTTP 1.1规范。但我没有发现PUT请求是否可以有Form数据。

我正在使用Java来创建和访问RESTful webservices。 POST支持application / x-www-form-urlencoded作为Content-Type。

根据规范,我了解POST用于创建新资源(由请求URI标识的资源的子资源),PUT用于创建或更新资源。

但我怀疑PUT方法是否也可以包含表格数据?我试图根据规格找出它是否合适。我在HTTP 1.1规范中找不到任何相关内容。

谢谢, 保罗

3 个答案:

答案 0 :(得分:6)

是的,您可以使用带有PUT的application / x-www-form-urlencoded。 HTTP规范不限制哪些方法可以与哪种媒体类型一起使用。

目前正在进行的Httpbis规范对PUT http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-14#page-18

的讨论进行了大量扩展

答案 1 :(得分:3)

由于PUT method用于在所提供的URI下存储随附的entity,而Content-Type header fieldentity header field,因此使用内容是合法的PUT请求中的-Type 标头字段。

现在剩下的问题是接收服务器是否可以正确处理此类请求和 Content-Type 信息。在最坏的情况下,它无法处理 Content-Type 标头字段并返回501响应:

  

实体的收件人不得忽略任何内容 - *      (例如 Content-Range )标头,它不理解或实现      并且在这种情况下必须返回501(未实现)响应。

答案 2 :(得分:1)

这是来自wc3的HTTP规范

http://www.w3.org/Protocols/rfc2616/rfc2616.html

此外,以下是Content-Type

的页面

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17

和PUT

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6

如果您希望获得有关HTTP PUT的特定语言,请使用详细信息更新您的问题