如何解决HTTP DELETE 请求是否允许实体主体?
微软也有同样的看法(我能听到观众的低语),他们在 MSDN 文章中关于ADO.NET 数据服务框架的 DELETE 方法的文章中指出:
如果 DELETE 请求包含实体主体,则该主体将被忽略 […]
此外,这里是RFC2616 (HTTP 1.1) 关于请求的内容:
- 实体 主体 仅在存在 消息主体 时才存在(第 7.2 节)
-
消息体 的存在通过包含一个
Content-Length
ortransfer-encoding
标头来表示(第 4.3 节) - 当请求方法的规范不允许发送 实体主体时,不得包含消息主体 ( 第 4.3 节) __
- 仅在 TRACE 请求中明确禁止实体主体,所有其他请求类型均不受限制(特别是第 9 节和第 9.8节 )
对于响应,已定义:
- 是否包含 消息体 取决于请求方法 和 响应状态(第 4.3 节)
- 在响应 HEAD 请求时明确禁止 消息体(特别是第 9 节和第 9.4 节)
- 在1xx(信息性)、204(无内容)和 304(未修改)响应中明确禁止 消息体(第 4.3 节)
- 所有其他响应都包括一个消息体,尽管它的长度可能为零(第 4.3 节)
解决方法
发出 HTTP DELETE 请求时,请求 URI 应完全标识要删除的资源。但是,是否允许在请求的实体主体中添加额外的元数据?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。