至少在 Rails 社区中,通过重定向而不是返回来响应成功的 POST
、PUT
或 DELETE
请求似乎很常见成功。例如,如果我 PUT
对我的用户个人资料进行合法更改,惯用的响应将是对个人资料页面的 302 重定向
。
这不是错了吗?我们不应该从请求中返回 200 OK
吗?还是 201 Created
,如果是 POST
请求?在 HTTP/1.1 Status Definitions 中的任何一个无论如何,都允许(或要求)包含回复。
我想我想知道,在我去“修复”我的应用程序之前,是否有一个很好的理由该死的为什么社区已经采用了重定向而不是成功响应的方式。
最佳答案
尽管您使用了 PUT
动词,但我假设您正在谈论一个主要通过浏览器访问的网络应用程序。在这种情况下,使用重定向跟进 POST 的通常原因是 post-redirect-get pattern ,这避免了用户刷新或使用浏览器的后退和前进控件引起的重复请求。似乎在许多情况下,这种模式通过重定向到用户最有可能访问的下一个页面而不是成功页面而过载。我认为您提到的任何一种方式都不一定是错误的,但是以不严格遵守 HTTP 语义为代价进行重定向可能会更加用户友好。
关于http - 我应该在成功的 POST 或 PUT 请求后停止重定向吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029525/