intermediate
Headers и cookies
Используйте headers и cookies для content negotiation, cache directives, auth context, security policies, session state и browser constraints.
Заголовки согласуют представление, кэш, безопасность и трассировку. Частые request: `Accept`, `Authorization`, `Content-Type`, `If-None-Match`, `X-Request-Id`. Response: `Content-Type`, `Cache-Control`, `ETag`, `Set-Cookie`, `Location`.
Cookies несут идентификаторы сессии или настройки. Важны атрибуты: `HttpOnly` блокирует доступ из JS; `Secure` требует HTTPS; `SameSite` управляет cross-site отправкой; `Domain` и `Path` задают область; `Max-Age` или `Expires` — срок жизни.
Set-Cookie: sid=abc; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=3600
В Node задавайте cookies через helpers фреймворка с корректным кодированием атрибутов. Считайте `Authorization` и cookies секретами в логах.
На интервью: content negotiation, зачем `Vary` для кэшей, баги scope cookies на поддоменах, лимиты размера заголовков (~8 KB на многих серверах).
Типовые ошибки: логирование Cookie или Authorization целиком; wildcard Domain на родительском сайте; без Secure в production.
Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.
Чеклист:
- Negotiation и cache-заголовки.
- Осознанные security-атрибуты cookies.
- Request ID для трассировки.
- Редактирование чувствительных заголовков в логах.