![]() |
1
4
http没有这样的状态代码,但是有一个最佳实践允许您处理这样的情况-在post操作之后重定向用户。 这里有一个故障-
因此,您的“已保存数据但无法立即检索”用例将转换为初始post的302重定向,然后是后续get的500重定向。 这种方法还有其他优点—您可以摆脱烦人的“是否确实要重新提交数据?”信息。同时保持后退/前进/刷新按钮可用。 |
![]() |
2
3
如果服务器知道它遇到了问题,它通常应该返回5xx错误。最普通的是
然后客户有责任重新尝试请求。如果前一个请求是部分提交的,则服务器(或数据库)有责任回滚该请求,或适当地处理重复事务。 |
![]() |
3
1
我同意@daniel的说法,正确的响应是http 500(服务器错误)。必须编写web应用程序,以便在出现错误时回滚事务,而不是让事情半途而废。 在web应用程序中可以利用的一件事是“等幂性”。这是一个函数(或操作)的属性,您可以在相同的结果中任意重复它多次。例如,如果读取失败,客户端可以简单地重试,直到成功为止。如果删除失败,则无论要删除的资源是否已消失,客户端都可以再次重试,服务器都会将该请求视为有效。如果更新失败,客户端可以重试,直到从服务器获得成功的返回。构建web服务的rest方法充分利用了幂等性,使操作在错误面前更加健壮。 |
![]() |
Julian Koster · $\u发布内容的持续时间(生存期) 7 年前 |
![]() |
chris hyun ho kim · 用于“拆分”记录的HTTP谓词 7 年前 |
![]() |
Ian.V · Golang CSRF在结构中保存模板字段 7 年前 |