Что это значит, когда мы говорим, что сервер tomcat «запущен»? Что именно происходит за кулисами

#java #tomcat #webserver

#java #tomcat #веб-сервер

Вопрос:

Что означает, что сервер tomcat запущен. Я знаю, как используется tomcat, но что это значит, что сервер запущен. И что происходит, когда мы останавливаем tomcat. Я не ищу использование tomcat для ответа на запрос. Я хочу знать, что означает «запуск» сервера tomcat

Комментарии:

1. Обычно? Что сервер доступен и прослушивает входящие запросы клиентов. Контраст с «не запущен». У клиентов, которые пытаются подключиться, в конечном итоге истечет время ожидания и произойдет сбой.

2. @ElliottFrisch да, но я сомневаюсь в том, что происходит на сервере за кулисами, когда мы говорим «сервер доступен». Мы запускаем tomcat, так что происходит, чтобы он был доступен. Что происходит, когда мы останавливаем его, что он перестает прослушивать запросы

3. Как Apache Tomcat работает внутри?

4. @Spectric Я хотел бы знать, почему tomcat принимает / не принимает запросы, когда мы запускаем / останавливаем его. Что именно делает его доступным / недоступным для обработки запросов. Это похоже на то, когда мы открываем документ word и закрываем его? Память выделяется tomcat и освобождается, когда мы ее останавливаем? Я хочу знать, что означает выражение «сервер запущен».

Ответ №1:

На очень высоком уровне, с точки зрения непрофессионала, при запуске Tomcat он вызывает операционную систему и говорит: «Если вы получаете входящее TCP / IP-соединение на порту 8080 1, пожалуйста, передайте его мне», затем просто сидит и ждет, пока ОС передаст входящие соединения.

Когда вы останавливаете Tomcat, этот запрос к ОС отменяется, и процесс Tomcat завершается.

Пока Tomcat запущен, любой входящий запрос отправляется в Tomcat, который обработает запрос в меру своих возможностей.

Когда Tomcat остановлен, нет зарегистрированных программ для обработки входящего запроса, поэтому входящие запросы отклоняются ОС.

1) Номер порта варьируется, но 8080 является общим значением по умолчанию

Комментарии:

1. Спасибо. Это устраняет некоторые из моих сомнений. Не могли бы вы также объяснить, что вы подразумеваете под «сидит и ждет запросов». Итак, какой-либо код постоянно выполняется?

2. @Greg Нет, он действительно просто простаивает , ничего не делая. Он выполняет вызов «получить следующий запрос» в ОС, и этот вызов не вернется, пока запрос не будет доступен. ОС просто откладывает вызов в сторону и принимает его при поступлении запроса. Это похоже на то, когда вы зависаете на своем телефоне. Вы просто сидите и ждете, пока кто-нибудь не будет готов поговорить с вами.