ExpressJS использует встроенные nodejs http / https модули в качестве своего http-сервера. Ваш express экземпляр сам по себе является http-сервером.
Он не работает как Apache или CGI, где где-то еще есть http-сервер, который перенаправляет вам определенные запросы, или в случае CGI он может делиться с другими приложениями или даже другими арендаторами (в многопользовательской среде), запускать программы или сценарии, когда что-то совпадает с вашим URL.
Вместо этого ваш экземпляр express сам по себе является сервером http. Он получает свои собственные http-запросы, анализирует путь запрашиваемого ресурса и используемый глагол http, а затем проверяет его по вашим различным Express -определенным маршрутам, чтобы увидеть, какие совпадения, чтобы он мог вызвать обратные вызовы, связанные с этими маршрутами.
Таким образом, вместо того, чтобы http-сервер представлял собой совершенно отдельную вещь, которая работает сама по себе и может быть настроена на выполнение многих задач от имени множества отдельных приложений, в nodejs http-сервер - это просто компонент что серверное приложение может использовать. Фактически, он может иметь несколько http-серверов на разных портах для разных целей, являющихся частью одного и того же тела кода. Например, может быть внешний сервер https, который отправляет входящие запросы от клиентов на порт 80, и может быть отдельный http-сервер на порт 4000 (часто называемый контрольным портом), используемый для операций обслуживания, таких как настройки ведения журнала или управления нагрузкой, действия по диагностике c, такие как доступ к внутренней статистике сервера и т. д. c ...