intermediate

Request lifecycle

Прослеживайте request через parsing, auth, validation, business logic, persistence, response, logging и cleanup.

HTTP-запрос в Node проходит слои от сокета до ответа — порядок важен, чтобы не дублировать работу и не забыть cleanup.

Типичный путь:

  1. Принятие TCP; TLS при необходимости.
  2. HTTP-парсер строит `req`/`res` (или аналоги фреймворка).
  3. Middleware: correlation ID, body parser, auth, rate limit.
  4. Handler: валидация, бизнес-логика, персистентность.
  5. Сериализация ответа и заголовки.
  6. Логи/метрики с длительностью и исходом.
  7. 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`.