Что произойдет, если пользовательский интерфейс сделает перерыв и сервер остановится? - PullRequest
0 голосов
/ 24 марта 2019

Предположим, пользовательский интерфейс звонит в службу покоя, и сервер останавливается.

  • Узнает ли пользовательский интерфейс о состоянии сервера?
  • Получает ли пользовательский интерфейс ответ от сервера?
  • Какая разница, если остальным был POST или PUT?

Ответы [ 2 ]

1 голос
/ 24 марта 2019

Когда REST Api остановлен, пользовательский интерфейс / браузер / клиент покажет «Не удалось получить ответ» При подключении к ошибке произошла ошибка независимо от типа запроса: PUT /POST.

Чтобы ответить на ваши вопросы:

Узнает ли пользовательский интерфейс о состоянии сервера? Если сервер останавливается, вы получите сообщение об ошибке: ошибка подключения к серверу. Который можно проследить до нескольких корневых причин. Одним из них может быть: Сервер остановлен.

В случае ошибки, состояние сервера может быть отправлено клиенту с использованием различных кодов ошибок, таких как: 500 Внутренняя ошибка сервера Код состояния 500, или Внутренняя ошибка сервера, означает, что сервер не может обработать запрос по неизвестной причине. Вот список кодов состояния для REST APis: https://www.w3.org/Protocols/HTTP/HTRESP.html

Получает ли пользовательский интерфейс ответ от сервера? Если сервер остановлен, пользовательский интерфейс / клиент не получит ответа.

Какая разница, если оставшийся вызов был POST или PUT? Если сервер остановился, это не имеет значения.

Этот сценарий можно запустить с помощью браузера и запустить любое приложение / службу REST на локальном компьютере. (Для этого теста вам не нужно запускать какое-либо приложение REST в вашем локальном компьютере, так как вы хотите проверять его только после его остановки)

Например, если ваш сервер приложений REST работает и доступен на порту 8080, вы можете отправить запрос на этот сервер, отправив запрос из браузера: http://localhost:8080

Для тестирования с коллекциями POST / PUT вы можете использовать любые инструменты разработки API, такие как: Почтальон.

Давайте предположим, что ваш REST Api предоставляет следующие URL:

/ myPostRequest POST / myPutRequest PUT

Когда вы нажимаете эти URL из POSTMAN, вы получаете такой же ответ:

POST http://localhost:8080/myPostRequest:

Не удалось получить ответ При подключении к http://localhost:8080/transition-order.

произошла ошибка

PUT http://localhost:8080/myPutRequest:

Не удалось получить ответ При подключении к http://localhost:8080/transition-order.

произошла ошибка
1 голос
/ 24 марта 2019

Клиент (может быть пользовательским интерфейсом) и Сервер - это два глупых приложения. Они делают и говорят то, что им говорят.

Таким образом, всякий раз, когда клиент пытается вызвать сервер в сокете и сервер не прослушивает его, клиенту не возвращается ответ. Клиент может интерпретировать это так, как он хочет. Большинство браузеров показывают <host> refused to connect.

Но если сервер прослушивает сокет, он отвечает клиенту в зависимости от того, как он был запрограммирован. Сервер отправляет соответствующий код состояния и ожидает, что клиент знает, как его интерпретировать. Сервер может отправить любое случайное число, какое захочет ... подвох в том, что клиент должен знать, как его интерпретировать. в противном случае это просто односторонняя связь.

Чтобы обеспечить бесперебойную связь клиент-сервер, в разделе 10 RFC 2616 определены различные коды с определенным значением, как показано здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

Эти коды состояния одинаковы для всех типов методов Http.

...