mat*_*sev 19 rest http-status-codes http-headers
当服务器返回202 - Accepted
异步请求的状态代码时,为请求完成提供估计的适当方法是什么?
从HTTP规范(我添加的斜体):
202接受
该请求已被接受处理,但处理尚未完成.[...]
返回此响应的实体应该包括请求的当前状态的指示,以及指向状态监视器的指针或用户可以期望满足请求的某些估计.
以下是一些想法:
Cache-Control
吗?X-
响应标头,但X-
在RFC 6648中不推荐使用标头?X-
)特定响应标头?如果是这样,它应该如何命名?SO问题自定义HTTP标头:命名约定给出了一些想法,但在弃用之后它只回答了如何格式化HTTP标头,而不是如何命名它们.Jon*_*Jon 11
绝对不要滥用现有的HTTP标头.由于它是您自己的服务器,因此您可以定义响应的外观.您可以(并且应该)选择最适合此信息的预期接收者的任何响应,并在响应正文中返回实际信息.
例如,如果您只对显示人类可读消息感兴趣,那么您可以返回text/plain
说"您的请求可能会在接下来的30分钟内处理".
在频谱的另一端,您可能想要以所有REST方式返回application/json
,也许这样格式化(我完全在现场制作):
{
"status": "pending",
"completion": {
"estimate": "Thu Sep 08 2011 12:00:00 GMT-0400",
"rejected-after": "Fri Sep 09 2011 12:00:00 GMT-0400",
},
"tracking": {
"url": "http://server/status?id=myUniqueId"
}
}
Run Code Online (Sandbox Code Playgroud)
Rem*_*eau 10
您可以使用Location
标头指定状态监视器的URL.诸如当前状态和估计之类的事情可以在自定义标题中(除了您自己的软件之外没有人使用),或者在响应主体中(至少是Web浏览器将向用户显示).
虽然没有明确提到202 - Accepted
响应代码,但Retry-After
标题似乎是一个合适的选项.从文档:
可以使用Retry-After响应头字段来指示服务预期对请求客户端不可用的时间.
归档时间: |
|
查看次数: |
18527 次 |
最近记录: |