我在Web应用程序中有 PRIMARY url,它通过POST请求接受一些数据。
此网址将此数据发送到 内部 网址(用户无法访问)
INTERNAL url长时间处理该数据,例如30分钟。
发布请求后,我的 PRIMARY 网址必须重定向到 MAIN 网址。发布后,我必须在 PRIMARY 网址中发送什么回复HTTP STATUS CODE标头?
的 202 ? - 是的,也许,因为它意味着“请求已被接受处理,但处理尚未完成。”
但我必须重定向回用户..重定向使用“3xx”HTTP状态代码。那么“ 303 ”还是没有?
答案 0 :(得分:2)
也许reding rfc2616-sec10会帮助你,他们会对状态代码202说以下内容:
10.2.3 202接受
请求已被接受处理,但处理尚未完成。该请求最终可能会或可能不会被执行,因为在实际处理时可能不允许该请求。没有从异步操作中重新发送状态代码的工具。
202回复是故意不承诺的。其目的是允许服务器接受对某些其他进程的请求(可能是每天只运行一次的面向批处理的进程),而不要求用户代理与服务器的连接持续到进程完成为止。返回此响应的实体应该包括请求的当前状态的指示,以及指向状态监视器的指针或用户可以期望满足请求的某些估计。
wiki.apache.org CommonHTTPStatusCodes:
202 - 已接受 - 已接受请求进行处理,但处理尚未完成。这在客户端向httpd发送请求时使用,但是可以或者不能维持持久连接足够长时间以等待最终响应。包含202状态代码的响应还应包含一个实体,该实体描述可以监视请求状态的位置,或者可以预期何时满足请求的某些估计。
this page还有一些信息。
如果页面上有活动(您的用户访问过的页面),并且您不打算通过重定向将其发送到其他位置,因为页面内容尚未移动,请不要使用3xx状态代码。如果在旅游网站上完成这项工作需要很长时间,您可能需要让访问者等待任务,并通过临时等待消息或进度条让他们知道..
我希望这会帮助你走向正确的方向
答案 1 :(得分:1)
我会说您的内部应用程序应该使用202
回复,并且您的面向用户的应用程序应该使用302
进行回复以重定向。