intermediate
Request lifecycle
Прослеживайте request через parsing, auth, validation, business logic, persistence, response, logging и cleanup.
HTTP-запрос в Node проходит слои от сокета до ответа — порядок важен, чтобы не дублировать работу и не забыть cleanup.
Типичный путь:
- Принятие TCP; TLS при необходимости.
- HTTP-парсер строит `req`/`res` (или аналоги фреймворка).
- Middleware: correlation ID, body parser, auth, rate limit.
- Handler: валидация, бизнес-логика, персистентность.
- Сериализация ответа и заголовки.
- Логи/метрики с длительностью и исходом.
- Keep-alive или закрытие; снятие слушателей.
Client → балансировщик → Node server → middleware → handler → DB/cache
↑___________________________________|
ответ + логирование
Долгий handler снижает параллелизм на инстансе, если держит event loop или соединение без streaming/таймаутов.
На интервью: пройдите POST end-to-end; где auth, validation и бизнес-правила; таймауты и AbortSignal.
Типовые ошибки: парсинг body до auth; PII в логах; нет таймаута на edge и сервере.
Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.
Чеклист:
- Упорядоченные cross-cutting шаги.
- Correlation ID через async-цепочку.
- Таймауты сервера и upstream.
- Cleanup на `res.close` / `aborted`.