繁体   English   中英

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

[英]Can HTTP PUT request have application/x-www-form-urlencoded as the Content-Type?

在 HTTP PUT 请求中发送表单数据是否有效? 如果您能指出我的规格,那就太好了。

我已经通过了 HTTP 1.1 规范。 但我没有发现 PUT 请求是否可以有表单数据。

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

从规范中,我了解到 POST 用于创建新资源(请求 URI 标识的资源的子资源),而 PUT 用于创建或更新资源。

但我的疑问是 PUT 方法是否也可以包含表单数据? 我试图根据规范找出是否可以。 我在 HTTP 1.1 规范中找不到任何关于此的内容。

是的,您可以将 application/x-www-form-urlencoded 与 PUT 一起使用。 HTTP 规范不限制什么方法可以用于什么媒体类型。

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

由于PUT 方法用于在提供的 URI 下存储封闭的实体,并且Content-Type header 字段实体 header 字段,因此在 PUFT 请求中使用Content-Type Z099FB995346F33C749F6E40E3Z 字段是合法的。

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

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

这是 wc3 中的 HTTP 规范

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

此外,这里是 Content-Type 的页面

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

和放

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

如果您需要有关 HTTP PUT 的特定语言的帮助,请使用具体信息更新您的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM