假设,UI正在调用休息服务,服务器停止。
当REST Api停止时,UI /浏览器/客户端将显示“无法获得任何响应连接错误”错误,无论请求类型如何:PUT / POST。
回答你的问题:
UI是否了解服务器的状态?如果Server停止,您将收到如下错误:连接服务器时出错。哪个可以追溯到多个rootcauses。其中一个可能是:服务器已停止。
如果出现错误,可以使用各种错误代码将服务器状态发送到客户端,例如:500内部服务器错误500状态代码或内部服务器错误,表示服务器无法处理未知原因的请求。以下是REST APis的状态代码列表:https://www.w3.org/Protocols/HTTP/HTRESP.html
UI是否从服务器获得任何响应?如果服务器停止,UI / Client将不会收到响应。
如果其余的呼叫是POST或PUT,会有什么不同?如果服务器已停止,则没有任何区别。
您可以使用浏览器运行此方案,并在本地计算机中运行任何app / REST服务。 (对于此测试,您不需要在本地运行任何REST应用程序,因为您只想在停止时进行测试)
例如,如果您的REST应用程序服务器已启动且在端口8080处可用,则可以通过从浏览器发送请求向此服务器发送请求:http://localhost:8080
要使用POST / PUT集合进行测试,您可以使用任何API开发工具,例如:Postman。
让我们确定您的REST Api,公开以下网址:
/ myPostRequest POST / myPutRequest PUT
当您从POSTMAN中搜索这些网址时,您会得到相同的响应:
POST http://localhost:8080/myPostRequest:
无法得到任何回复连接到http://localhost:8080/transition-order时出错。
PUT http://localhost:8080/myPutRequest:
无法得到任何回复连接到http://localhost:8080/transition-order时出错。
客户端(可能是UI)和服务器是两个愚蠢的应用程序。他们会说并告诉他们。
因此,每当客户端尝试在套接字上调用服务器并且没有服务器监听它时,就没有响应返回给客户端。客户可以以任何方式解释它。大多数浏览器显示<host> refused to connect.
但是,如果服务器正在侦听套接字,它会以编程方式响应客户端。服务器发送适当的状态代码,并期望客户端知道如何解释它。服务器可以发送它想要的任何随机数...捕获的是,客户端必须知道如何解释它。否则,这只是单向沟通。
为了提供顺畅的客户端 - 服务器通信,RFC 2616的第10节定义了具有特定含义的各种代码,如下所示:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
对于所有类型的Http方法,这些状态代码都是相同的。