1
4
http没有这样的状态代码,但是有一个最佳实践允许您处理这样的情况-在post操作之后重定向用户。 这里有一个故障-
因此,您的“已保存数据但无法立即检索”用例将转换为初始post的302重定向,然后是后续get的500重定向。 这种方法还有其他优点—您可以摆脱烦人的“是否确实要重新提交数据?”信息。同时保持后退/前进/刷新按钮可用。 |
2
3
如果服务器知道它遇到了问题,它通常应该返回5xx错误。最普通的是
然后客户有责任重新尝试请求。如果前一个请求是部分提交的,则服务器(或数据库)有责任回滚该请求,或适当地处理重复事务。 |
3
1
我同意@daniel的说法,正确的响应是http 500(服务器错误)。必须编写web应用程序,以便在出现错误时回滚事务,而不是让事情半途而废。 在web应用程序中可以利用的一件事是“等幂性”。这是一个函数(或操作)的属性,您可以在相同的结果中任意重复它多次。例如,如果读取失败,客户端可以简单地重试,直到成功为止。如果删除失败,则无论要删除的资源是否已消失,客户端都可以再次重试,服务器都会将该请求视为有效。如果更新失败,客户端可以重试,直到从服务器获得成功的返回。构建web服务的rest方法充分利用了幂等性,使操作在错误面前更加健壮。 |
FilRose · 在Django中包含身份是否重要? 2 年前 |
Qwerty · 如何获取CORS http失败飞行前请求的状态代码 7 年前 |
mko · 失败的POST请求使用什么HTTP响应代码? 7 年前 |
Max Peng · 返回1xx状态代码时,弹簧引导请求挂起 7 年前 |
userMod2 · 为什么发送API状态代码? 8 年前 |
Ben Crowhurst · 错误标识符的最合适HTTP状态代码 10 年前 |