Ответ
Модуль http (и его безопасный аналог https) — это низкоуровневый API Node.js для создания HTTP-серверов и клиентов. Он является фундаментом для большинства веб-фреймворков в экосистеме.
Основные сценарии использования:
- Создание HTTP-сервера: Обработка входящих запросов (GET, POST и т.д.) и отправка ответов.
- Создание HTTP-клиента: Выполнение исходящих запросов к другим серверам (например, для взаимодействия с внешними API).
Пример простого сервера:
const http = require('http');
const server = http.createServer((req, res) => {
// Устанавливаем заголовки ответа
res.writeHead(200, { 'Content-Type': 'text/plain' });
// Отправляем тело ответа и завершаем запрос
res.end('Hello from Node.js HTTP server!');
});
server.listen(3000, () => {
console.log('Server listening on port 3000');
});
Почему он "низкоуровневый" и что это значит на практике?
В отличие от Express.js или Fastify, модуль http не предоставляет встроенных абстракций для:
- Маршрутизации (роутинга) по URL и методам.
- Промежуточного ПО (middleware).
- Парсинга тела запроса (например, JSON или form-data).
Поэтому его часто используют напрямую для:
- Простейших сервисов или прокси.
- Создания кастомных, высокопроизводительных решений, где контроль над каждым этапом обработки запроса критичен.
- Как строительный блок для собственных фреймворков или библиотек.