如果UI进行休息呼叫并且服务器停止会发生什么?

问题描述 投票:0回答:2

假设,UI正在调用休息服务,服务器停止。

  • UI是否了解服务器的状态?
  • UI是否从服务器获得任何响应?
  • 如果其余的呼叫是POST或PUT,会有什么不同?
spring rest api single-page-application
2个回答
1
投票

当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时出错。


1
投票

客户端(可能是UI)和服务器是两个愚蠢的应用程序。他们会说并告诉他们。

因此,每当客户端尝试在套接字上调用服务器并且没有服务器监听它时,就没有响应返回给客户端。客户可以以任何方式解释它。大多数浏览器显示<host> refused to connect.

但是,如果服务器正在侦听套接字,它会以编程方式响应客户端。服务器发送适当的状态代码,并期望客户端知道如何解释它。服务器可以发送它想要的任何随机数...捕获的是,客户端必须知道如何解释它。否则,这只是单向沟通。

为了提供顺畅的客户端 - 服务器通信,RFC 2616的第10节定义了具有特定含义的各种代码,如下所示:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

对于所有类型的Http方法,这些状态代码都是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.