微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HTTP DELETE 请求是否允许实体主体?

如何解决HTTP DELETE 请求是否允许实体主体?

该规范没有明确禁止或阻止它,所以我倾向于说它是允许的。

微软也有同样的看法(我能听到观众的低语),他们在 MSDN 文章中关于ADO.NET 数据服务框架的 DELETE 方法的文章中指出:

如果 DELETE 请求包含实体主体,则该主体将被忽略 […]

此外,这里是RFC2616 (HTTP 1.1) 关于请求的内容

  • 实体 主体 仅在存在 消息主体 时才存在(第 7.2 节)
  • 消息体 的存在通过包含一个Content-Lengthortransfer-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 举报,一经查实,本站将立刻删除。