HTTP PUT的替代主体

时间:2009-06-11 17:04:29

标签: http rest put

我正在开发一个REST-ful Web服务,我对HTTP PUT方法有疑问。

我想允许人们使用应用程序/表单数据请求正文提交内容。但是,默认响应将在application / xml中。

这可以接受吗?

埃弗特

2 个答案:

答案 0 :(得分:3)

内容类型仅在单个请求的范围内很重要。他们所做的就是描述正在发送的内容的格式。

您的Web服务应提供其能够提供的客户端请求最可接受的响应。客户端请求应包含描述可接受内容类型的Accept标头。如果您的服务无法在此标头中提供任何内容类型,请返回406 Not Acceptable

在您的情况下,如果您的客户GET请求在Accept标头中包含application/xml,则可以使用application/xml进行回复,无论是否发出任何PUT请求请求的资源。

编辑:

406 Not Acceptable的{​​{3}}包含以下注释:

  

注意:允许HTTP / 1.1服务器返回响应   根据发送的接受标头不可接受   请求。在某些情况下,这甚至可能比发送一个更好   406回应。鼓励用户代理检查标题   传入的响应,以确定它是否可以接受。

因此,您可以随时返回application/xml

答案 1 :(得分:0)

RESTful服务应该为操作使用正确的HTTP方法(GET,HEAD,PUT,DELETE或POST),确保URI中包含任何作用域信息,并确保HTTP消息信封不包含另一个信封,即SOAP

Roy Fieldings 2000 Ph.D. dissertation: Architectural Styles and the Design of Network-Based Software Architectures构成了REST的基础。