在RESTful MVC框架中使用HTTP重定向可以吗



我正在尝试开发一个MVC框架。

当用户创建新记录时,如果成功创建,那么显示新记录对我来说似乎是有意义的。

可以使用http重定向将用户移动到新记录的视图吗?

不要这么做!针对这种情况,请使用正确的HTTP响应代码。例如,如果用户将新记录张贴到您的系统:

POST record/id
New record stuff

给出反馈不仅是一个面带微笑的HTML表示,而且是正确的HTTP响应代码。

201 Created

在显示新创建的记录时,您应该用语义答案(即HTTP 201-Created)响应"创建"操作,这通常被认为是规范。

此外,为新添加的项目添加一个指示"读取"操作的Location标头甚至更好。

你可能想看看Richardson成熟度模型对此的看法,Martin Fowler写了一篇很好的文章

如果您正在创建一个记录,那么HTTP 201是推荐的状态代码。

然而,在某些情况下,您可能需要重定向。例如,您的api已不在当前url中,并且您希望将用户重定向到新url。

最新更新