IP-адрес — это адрес устройства в сети, по которому пакеты находят получателя.
IPv4 использует 32 бита (примерно 4,3 млрд адресов), записывается как четыре числа через точку. IPv6 использует 128 бит, адресов на порядки больше, запись — через двоеточия.
Из практики: при интеграционных проблемах важно сразу смотреть, какой именно IP видит сервер и нет ли подмены через прокси или NAT.
Частые ошибки
Игнорируют NAT/прокси.
Путают приватные/публичные диапазоны.
Дополнительные вопросы
Как узнать свой внешний IP?
Когда важна фиксация IP в логах?
Что QA важно знать про cookie и кэш?
Junior
Cookie хранят состояние сессии, настройки пользователя и токены авторизации. Проверяю атрибуты безопасности: HttpOnly (недоступен JS), Secure (только HTTPS), SameSite (защита от CSRF), срок действия.
Кэш браузера может отдавать устаревшие данные — проверяю корректность заголовков Cache-Control и Expires в ответах, а также поведение при принудительном обновлении.
Из практики: после выкладки новой версии дефекты часто объясняются именно кэшем — пользователь видит старый JS/CSS. Проверяю, что cache-busting работает через хэши в именах файлов.
Частые ошибки
Тестируют с «грязным» кэшем.
Не учитывают SameSite/домены/пути.
Дополнительные вопросы
Когда очищать кэш/куки?
Как проверить флаги безопасности?
Какие заголовки HTTP вы проверяете в первую очередь и почему?
Middle
Ключевые заголовки запроса, которые проверяю: Authorization (тип токена и его валидность), Content-Type (application/json vs form-data), Accept, X-Request-ID для трассировки.
Заголовки ответа: Content-Type (соответствует ли реальному содержимому), Cache-Control (правильно ли кэшируется), X-RateLimit, Set-Cookie (атрибуты Secure, HttpOnly, SameSite), CORS-заголовки.
Из практики: ошибка в одном заголовке часто ломает весь сценарий — неверный Content-Type в запросе даёт 415, отсутствие Authorization — 401, но без понятного тела ошибки.
Частые ошибки
Отсутствие заголовков безопасности в продакшене.
Неверный Content-Type для API-ответов.
Дополнительные вопросы
Как автоматизируете проверку заголовков безопасности?
Есть опыт валидации пользовательских заголовков?
Какие коды ответов HTTP вы считаете ключевыми и как их проверяете?
Middle
Ключевые коды: 200 OK, 201 Created (POST с созданием), 204 No Content (DELETE без тела), 400 Bad Request (невалидный запрос), 401 Unauthorized (нет авторизации), 403 Forbidden (нет прав), 404 Not Found.
Дополнительно: 409 Conflict (дубликат), 422 Unprocessable Entity (семантическая ошибка), 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable.
Из практики: проверяю не только код, но и тело ответа — код 400 без понятного описания ошибки заставляет разработчика клиента гадать, что именно не так.
Частые ошибки
Путаница 401 (authentication) vs 403 (authorization).
Неправильное использование 200 вместо 201 для создания.
Дополнительные вопросы
Когда используете 422 vs 400?
Как тестируете rate limiting (?
Как устроены HTTP-запрос и HTTP-ответ и что важно проверять QA?
Middle
HTTP-запрос обычно состоит из метода, пути, заголовков, параметров и тела.
HTTP-ответ содержит код статуса, заголовки и тело; в проверках я всегда смотрю согласованность всех трёх частей, а не только код.
Из практики: много дефектов находится, когда код 200, но тело или заголовки не соответствуют договору.
Частые ошибки
Игнорирование case-sensitivity headers (Host vs host).
Неправильная обработка Content-Length vs chunked encoding.
Дополнительные вопросы
Как тестируете malformed HTTP requests?
Опыт с HTTP/2 binary framing?
В чём разница между HTTPS и HTTP и что проверяет QA?
Middle
HTTPS — это HTTP поверх шифрования, чтобы данные не перехватили по пути.
В тестах проверяю сертификат, срок действия и корректную работу защищённого соединения.
Из практики: проблемы с сертификатами часто всплывают после продления или смены окружения.
Частые ошибки
Игнорирование certificate warnings в тестах.
Отсутствие HSTS тестирование.
Дополнительные вопросы
Как тестируете certificate pinning?
Опыт с mutual TLS (mTLS) authentication?
Что такое VPN, как он работает и зачем нужен QA?
Junior
VPN создаёт зашифрованный канал между устройством и удалённой сетью, скрывая прямой маршрут трафика.
Для QA он нужен для безопасного доступа к внутренним стендам и сервисам, недоступным из открытого интернета.
Из практики: при проблемах доступа первым делом проверяю маршрут, DNS и политику VPN-профиля.
Частые ошибки
Диагностика сети без учета VPN-правил.
Сбои из-за split-tunnel/маршрутизации.
Дополнительные вопросы
Как проверите, что трафик идёт через VPN?
Как воспроизвести гео-блокировки?
Что такое HTML?
Junior
HTML — язык разметки, который определяет структуру и содержимое веб-страницы с помощью тегов: заголовки, параграфы, ссылки, формы, изображения.
Браузер парсит HTML и строит DOM-дерево; JavaScript работает с этим деревом динамически. QA важно понимать DOM, чтобы строить надёжные локаторы и понимать, почему элемент может быть недоступен.
Из практики: при нестабильных локаторах в автотестах первым делом смотрю структуру DOM — часто элемент есть в HTML, но ещё не отрендерен или скрыт стилями.
Частые ошибки
Путают HTML с языком программирования – это язык разметки, он не выполняет логику, а описывает структуру.
Не закрывают теги или неправильно вкладывают элементы, что может привести к некорректному отображению или проблемам с парсингом.
Дополнительные вопросы
Что такое валидность HTML и как ее проверить?
Для чего предназначен тег <head> и какие данные в него помещаются?
Что такое CSS?
Junior
CSS — язык описания стилей: задаёт оформление HTML-элементов (цвета, шрифты, размеры, отступы, расположение). Работает каскадно — несколько правил могут применяться к одному элементу, приоритет определяется специфичностью.
QA важно понимать CSS для тестирования адаптивности (медиа-запросы), кроссбраузерных различий и доступности (контраст, размеры шрифтов).
Из практики: визуальные баги часто связаны с конфликтами CSS-правил или неожиданным поведением flexbox/grid на разных браузерах — DevTools → Computed Styles быстро локализует проблему.
Частые ошибки
Не разделяют стиль и структуру: пишут inline-стили прямо в HTML или дублируют стили вместо использования CSS классов.
Используют!important повсеместно, нарушая каскадность и усложняя поддержку стилей.
Дополнительные вопросы
Что такое селектор в CSS и какие виды селекторов бывают?
Как браузер решает, какое из конфликтующих CSS-правил применить к элементу?
Зачем тестировщику Charles Proxy или Fiddler и как вы их применяете?
Middle
Эти инструменты позволяют перехватывать и анализировать HTTP(S)-трафик между клиентом и сервером.
С их помощью удобно проверять заголовки, подменять ответы, имитировать медленную сеть и воспроизводить нестандартные сбои.
Из практики: прокси-инструменты сильно помогают при расследовании багов, которые не ловятся только через интерфейс.
Частые ошибки
Не устанавливают сертификат для HTTPS.
Забывают выключить прокси после тестов.
Дополнительные вопросы
Как смоделировать 500 от сервера?
Как снять трафик с iOS/Android?
Как работает браузер: рендеринг, DOM, CSSOM и JavaScript?
Middle
Браузер загружает HTML, строит DOM, затем CSSOM, после чего формирует дерево рендера и отрисовывает страницу.
JavaScript может менять DOM и стили, поэтому при тестировании важно учитывать момент выполнения скриптов и блокирующие ресурсы.
Из практики: многие визуальные баги связаны не с версткой, а с порядком загрузки скриптов и стилей.
Частые ошибки
Игнорируют влияние блокирующих ресурсов.
Не проверяют ошибки в консоли.
Дополнительные вопросы
Как DevTools помогает найти блокирующие ресурсы?
Что такое CORS?
Как вы тестируете кросс-браузерность и адаптивность UI?
Middle
Кросс-браузерность: тестирую на основных движках — Blink (Chrome, Edge), Gecko (Firefox), WebKit (Safari). Использую DevTools → device emulation для быстрых проверок и BrowserStack для реальных устройств.
Адаптивность: проверяю контрольные точки (breakpoints) — 375px (мобильный), 768px (планшет), 1280px (десктоп). Смотрю переносы текста, доступность кнопок, поведение таблиц и форм.
Из практики: самые частые кроссбраузерные дефекты — в Safari (WebKit) и мобильных браузерах. Особенно внимательно проверяю CSS Grid, input[type=date] и обработчики событий.
Частые ошибки
Тестируют только один браузер.
Нет чеков responsive-правил.
Дополнительные вопросы
Какие комбинации считаете критичными?
Как фиксируете различия?
Как вы используете инструменты разработчика (Network, Console, Storage) в тестировании?
Middle
В Network проверяю запросы: адрес, метод, код ответа, время и соответствие тела договору API.
В Console ищу ошибки скриптов и предупреждения, в Storage — токены, куки и кэш, влияющие на состояние пользователя.
Из практики: связка Network + Console обычно быстрее всего выводит на корень проблемы.
Частые ошибки
Смотрят только UI без сетевых ошибок.
Не фиксируют HAR для отчёта.
Дополнительные вопросы
Как снять HAR и зачем?
Что проверите в заголовках ответа?
Какие отличия HTTP 1.1, 2 и 3 важны для QA?
Senior
HTTP/1.1 часто страдает от ограничений параллельности, HTTP/2 лучше мультиплексирует запросы, HTTP/3 снижает задержки за счёт транспорта на основе QUIC.
Для QA важно проверять не только скорость, но и стабильность работы в целевой версии протокола на реальном контуре.
Из практики: после переключения версии протокола обычно всплывают проблемы в балансировщиках и сетевых настройках.
Частые ошибки
Предположение о HTTP version в автотестах.
Игнорирование server push в HTTP/2 тестирование.
Дополнительные вопросы
Как тестируете HTTP/2 multiplexing?
Опыт с QUIC connection migration тестирование?
Что проверишь, если данные приходят, но отображаются неверно?
Middle
Проверяю схему данных и маппинг полей в UI, особенно nullable значения и форматы дат/денег.
Смотрю локализацию, округления, timezone и кеширование, потому что там часто скрывается причина.
Из практики: в отладке решает не догадка, а последовательность шагов — логи, запросы, данные, гипотеза, проверка.
Частые ошибки
Игнорируют форматирование и локали.
Дополнительные вопросы
Какие проверки добавишь для дат и валюты?
Как проверить кроссбраузерность критичного сценария?
Middle
Выделяю ключевые браузеры по аналитике пользователей и прогоняю один и тот же критичный поток в каждом: Chrome, Firefox, Safari, Edge — и мобильных браузерах.
Проверяю не только внешний вид, но и работу форм, валидаций, загрузок файлов и сообщений об ошибках — браузеры по-разному обрабатывают события и CSS.
Из практики: самые частые кроссбраузерные дефекты — в Safari (другой движок рендеринга) и в мобильных браузерах (разный обработчик событий touch vs click). Проверяю их в приоритете.
Частые ошибки
Тестируют в случайных браузерах без опоры на реальных пользователей.
Дополнительные вопросы
Какие браузеры возьмёшь в обязательный набор?
Как тестировать адаптивность интерфейса?
Junior
Проверяю основные контрольные ширины экрана и ориентации устройства, чтобы убедиться, что интерфейс не распадается.
Смотрю читаемость текста, доступность кнопок и поведение таблиц и форм на малых экранах.
Из практики: на мобильных ширинах часто ломаются sticky-элементы и таблицы, их проверяю отдельно.
Частые ошибки
Проверяют только один размер экрана.
Дополнительные вопросы
Какие разрешения считаешь обязательными для проверки?
Какие проверки сделать для доступности интерфейса?
Middle
Проверяю навигацию с клавиатуры (Tab, Enter, Escape), видимость фокуса, корректный порядок фокусировки элементов и доступность всех интерактивных элементов без мыши.
Проверяю контрастность текста и фона (WCAG AA: минимум 4.5:1), alt-тексты изображений, aria-labels для иконочных кнопок и понятность сообщений об ошибках для экранных читалок.
Из практики: доступность проще тестировать через axe DevTools и ручную проверку с VoiceOver/NVDA — автоматические инструменты ловят ~30% проблем, остальное требует ручной проверки.
Частые ошибки
Считают доступность второстепенной задачей.
Дополнительные вопросы
Какие проверки доступности можно автоматизировать?
Как проверить загрузку тяжёлой страницы?
Middle
Смотрю время до First Contentful Paint (FCP) и Time to Interactive (TTI) — момент, когда пользователь может начать действовать.
Проверяю, что при медленной загрузке есть понятное промежуточное состояние: скелетоны, спиннеры или прогресс-бар — пустой экран без индикатора воспринимается как зависание.
Из практики: тяжёлые страницы чаще всего тормозят из-за блокирующего JS или большого количества синхронных запросов — проверяю через Network в DevTools в режиме медленной сети.
Частые ошибки
Оценивают только полное время загрузки, игнорируя первый полезный экран.
Дополнительные вопросы
Какие метрики загрузки отслеживаешь в первую очередь?
Как тестировать файловую загрузку в веб-форме?
Middle
Проверяю допустимые типы и размер файла, несколько загрузок подряд и удаление перед отправкой.
Из практики: дополнительно сверяю, что файл корректно отдается по API и метаданные не теряются.
Частые ошибки
Проверяют только успешную загрузку одного файла.
Дополнительные вопросы
Как проверишь, что файл действительно сохранился?
Как тестировать локализацию интерфейса?
Middle
Проверяю переводы на полноту и корректность, формат дат и чисел по локали (dd.mm.yyyy vs mm/dd/yyyy), разделители тысяч и десятичных дробей, валютные символы.
Смотрю, что длинные переводы не обрезаются и не ломают вёрстку, RTL-языки отображаются корректно, сообщения об ошибках переведены, а не остаются на языке по умолчанию.
Из практики: самые частые дефекты локализации — необрезанный английский placeholder в переведённом интерфейсе и неверный формат дат, который ломает логику сортировки.
Частые ошибки
Проверяют только корректность перевода без проверки макета.
Дополнительные вопросы
Какие языки возьмёшь в набор обязательной проверки?
Что проверить в уведомлениях браузера и мобильного приложения?
Middle
Проверяю запрос на разрешение уведомлений, содержимое уведомления (заголовок, текст, иконка), переход по нажатию на нужный экран и корректность состояния приложения после открытия.
Смотрю частоту отправки, отсутствие дублей, поведение при отказе от разрешения и корректность группировки уведомлений на устройстве.
Из практики: самый частый дефект — уведомление ведёт не туда или открывает приложение в неподготовленное состояние. Проверяю все состояния приложения: активное, свёрнутое, закрытое.
Частые ошибки
Не проверяют переход по уведомлению в разные состояния приложения.
Дополнительные вопросы
Как протестируешь уведомление при закрытом приложении?
Как протестировать смену языка во время активного пользовательского сценария?
Middle
Проверю, что после смены языка сохраняются введённые данные и пользователь остаётся в том же шаге.
Проверю переводы, формат дат/чисел и корректность сообщений об ошибках после переключения.
Из практики: такие дефекты часто всплывают в длинных формах и шагах оплаты.
Частые ошибки
Проверяют смену языка только на стартовом экране.
Дополнительные вопросы
Какие проверки сделаете для сохранения состояния формы?
Из каких частей состоит HTTP-запрос?
Junior
Стартовая строка (метод, путь, версия), заголовки (Host, User-Agent, Accept, Content-Type и др.) и (необязательно) тело сообщения.
Заголовки разделены пустой строкой от тела. Запросы GET, DELETE обычно без тела; POST, PUT, PATCH — с телом.
Из практики: для тестирования важно различать query parameters (в URL после ?), path parameters, тело и заголовки — все они могут влиять на поведение.
Частые ошибки
Считать, что в GET всё передаётся только через URL — это так, и поэтому секретам там не место.
Путать заголовки и тело.
Дополнительные вопросы
Что такое Content-Type и зачем он?
Чем query parameter отличается от path parameter?
Какие группы HTTP-статусов есть и что значат?
Junior
1xx — informational (101 Switching Protocols). 2xx — success (200 OK, 201 Created, 204 No Content). 3xx — redirect (301 Permanent, 302 Found, 304 Not Modified). 4xx — client error (400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict, 422 Unprocessable). 5xx — server error (500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout).
Каждый код несёт смысл. Например, 401 — «не авторизован» (логиньтесь), 403 — «авторизован, но запрещено».
Из практики: тестировщик обязан различать 401/403, 400/404/409/422 — это основа правильного API-дизайна и часто источник пользовательских недоразумений.
Частые ошибки
Возвращать 200 с error: true в теле — антипаттерн.
Путать 400 и 404 — 400 для невалидного запроса, 404 — для несуществующего ресурса.
Дополнительные вопросы
Чем 422 отличается от 400?
Когда уместно 503?
Чем отличаются методы GET, POST, PUT, PATCH, DELETE?
Junior
GET — получить ресурс, без побочных эффектов, идемпотентен. POST — создать ресурс (или выполнить действие), не идемпотентен. PUT — заменить ресурс целиком, идемпотентен. PATCH — частично обновить, обычно не идемпотентен. DELETE — удалить, идемпотентен.
Идемпотентный метод — это тот, повтор которого даёт тот же результат на сервере. Это важно для повторов запросов после сбоя.
Из практики: реальные API не всегда строго следуют семантике — встречаются «POST для всего». При тестировании важно понимать, что обещает REST и что фактически делает API.
Частые ошибки
Использовать GET для изменяющего действия — нарушает кеширование и идемпотентность.
Считать PATCH строго идемпотентным.
Дополнительные вопросы
Что такое идемпотентность и почему она важна?
Чем PUT отличается от PATCH?
Что такое cookies и какие важные флаги?
Junior
Cookies — это пары ключ-значение, которые сервер устанавливает в браузере и которые автоматически отправляются обратно в каждом запросе на тот же домен.
Важные флаги: Secure (только по HTTPS), HttpOnly (недоступны JS — защита от кражи через XSS), SameSite (Lax/Strict/None — защита от CSRF), Expires/Max-Age (срок жизни), Domain и Path.
Из практики: для сессионных и токен-cookies всегда HttpOnly + Secure + SameSite. Отсутствие любого из этих флагов — типовая находка пентеста.
Частые ошибки
Хранить чувствительный токен без HttpOnly — украдут через XSS.
Использовать SameSite=None без Secure — браузер откажет.
Дополнительные вопросы
Чем session cookie отличается от persistent cookie?
Что такое third-party cookies и куда они делись?
Что такое CORS и как с ним работают тесты?
Middle
CORS (Cross-Origin Resource Sharing) — это механизм браузера, позволяющий запросы из одного источника к другому только если сервер разрешил это через заголовки Access-Control-Allow-Origin и др.
Простые запросы (GET, POST с типовым Content-Type) уходят сразу, а сервер по ответу либо разрешает, либо блокирует. Сложные запросы предварительно делают OPTIONS preflight.
Из практики: типичные баги — забыли разрешить нужный домен на сервере, не вернули нужный метод в Access-Control-Allow-Methods, забыли credentials. В тестах часто проверяют, что preflight OPTIONS возвращает корректные заголовки.
Частые ошибки
Включать Access-Control-Allow-Origin: * с credentials — браузер откажет.
Думать, что CORS — это защита сервера. Это защита браузера, сервер всегда должен валидировать запрос.
Дополнительные вопросы
Что такое preflight запрос?
Чем CORS отличается от CSRF?
Что такое HTTPS и как он защищает?
Junior
HTTPS — это HTTP поверх TLS. TLS обеспечивает шифрование канала (никто посередине не прочитает данные), подлинность сервера (сертификат) и целостность (никто не подменит ответ).
Для тестировщика важно понимать: HTTPS защищает данные в дороге, но не на клиенте и не на сервере. Чувствительные данные нужно дополнительно защищать.
Из практики: проверяют валидность сертификата, отсутствие смешанного содержимого (HTTPS-страница, грузящая HTTP-ассеты), наличие HSTS, корректные редиректы с HTTP на HTTPS.
Частые ошибки
Считать, что HTTPS защищает данные после доставки — нет, дальше как обычно.
Полагаться на HTTPS как «полную безопасность» — нужны другие меры.
Дополнительные вопросы
Что такое HSTS?
Что значит смешанное содержимое (mixed content)?
Что такое WebSocket и чем отличается от HTTP?
Middle
WebSocket — это протокол поверх TCP, который начинается с HTTP-handshake и переходит в двусторонний канал. После handshake клиент и сервер могут слать сообщения в любом направлении без новых запросов.
В отличие от HTTP, где каждый запрос — отдельная сделка, WebSocket держит постоянное соединение. Подходит для чатов, биржевых тикеров, уведомлений, многопользовательских игр.
Из практики: тестируют через инструменты вроде wscat, или встроенные в Postman, или библиотеки в коде. Проверяют переподключение при разрыве, обработку ошибок, упорядоченность сообщений.
Частые ошибки
Считать WebSocket подходящим для всего — для редких уведомлений хватит SSE или polling.
Не реализовать heartbeat — соединение умирает в proxy через таймаут.
Дополнительные вопросы
Что такое Server-Sent Events?
Как реализовать heartbeat в WebSocket?
Что такое DNS и как тестировщик с ним сталкивается?
Junior
DNS преобразует имя (example.com) в IP-адрес. Делается это иерархически: корневые серверы → TLD-серверы (.com) → авторитативные серверы зоны.
В работе тестировщик сталкивается с DNS, когда нужно: проверить новые поддомены, разобраться, куда указывает запись, симулировать поломку DNS, дебажить кэширование.
Из практики: утилиты dig и nslookup помогают посмотреть конкретную запись (A, CNAME, MX, TXT). Для теста разных окружений иногда правят /etc/hosts.
Частые ошибки
Полагаться, что DNS-изменения видны сразу — есть TTL и кеширование на разных уровнях.
Тестировать на /etc/hosts, не отражая реальные TTL и каскад резолверов.
Дополнительные вопросы
Что такое TTL в DNS?
Какая разница между A и CNAME записями?
Что такое прокси и как использовать его в тестировании?
Middle
Прокси — это сервер-посредник, проходящий запросы клиента к серверу. Forward proxy представляет интересы клиента (Charles, Fiddler, Burp), reverse proxy — серверной стороны (nginx, HAProxy, Envoy).
В тестировании forward proxy (например, Charles) даёт перехват, просмотр и модификацию HTTP/HTTPS-трафика мобильного приложения или браузера. Позволяет проверить, что приложение отправляет правильно, и эмулировать ответы сервера.
Из практики: незаменимый инструмент при отладке клиент-серверного взаимодействия, особенно в мобильной разработке. Для HTTPS нужно установить корневой сертификат прокси на устройстве.
Частые ошибки
Забыть отключить прокси и потом удивляться странному трафику.
Не установить сертификат прокси — HTTPS-запросы будут рваться.
Дополнительные вопросы
Чем Charles отличается от Burp Suite?
Что такое Man-in-the-Middle и почему он опасен?
Что такое Charles Proxy и для чего его используют QA?
Junior
Charles — HTTP/HTTPS прокси для мониторинга и модификации трафика. Удобно перехватывать запросы мобильного приложения, видеть, что отправляется/получается.
Из практики: незаменим для отладки мобильных приложений. Альтернативы — Burp Suite (security-фокус), Proxyman, Fiddler.
Частые ошибки
Не установить корневой сертификат — HTTPS-трафик не разбирается.
Забыть отключить Charles и тормозить работу.
Дополнительные вопросы
Что такое breakpoint в Charles?
Чем Proxyman удобнее на macOS?
Что такое HTTP/2 и /3?
Middle
HTTP/2 — бинарный, многоплекширование (один соединение, много запросов), server push, header compression (HPACK).
HTTP/3 — на основе QUIC (UDP-based), убирает head-of-line blocking, лучше для нестабильных мобильных сетей.
Из практики: для современных серверов и CDN HTTP/2 — стандарт. HTTP/3 распространяется, требует поддержки на стороне клиента и сервера.
Частые ошибки
Полагать, что HTTP/2 устраняет необходимость в bundling.
Не настраивать HTTP/2 — повышенная latency.
Дополнительные вопросы
Что такое head-of-line blocking?
Чем QUIC лучше TCP?
Что такое CDN edge worker?
Middle
Worker'ы на edge — это код, выполняющийся в CDN-узлах близко к пользователю. Cloudflare Workers, AWS Lambda@Edge, Vercel Edge Functions.
Применения: A/B-тесты, динамический контент с низкой latency, security checks, image manipulation, geo-routing.
Из практики: серверная логика без managing инфраструктуры. Минусы — ограничения CPU/memory, специфичный runtime.
Частые ошибки
Делать сложную бизнес-логику на edge — обычно не подходит.
Не учитывать ограничения platform.
Дополнительные вопросы
Что такое serverless?
Чем Cloudflare Workers отличается от Lambda?
Что такое сетевой протокол? Какие модели знаешь (OSI, TCP/IP)?
Junior
Сетевой протокол — набор правил для обмена данными между узлами: формат пакетов, порядок установления соединения, обработка ошибок. Без общего протокола машины не понимают друг друга.
OSI — концептуальная модель из 7 уровней: физический, канальный, сетевой, транспортный, сеансовый, представления, прикладной. TCP/IP — практическая модель из 4 уровней: link, internet, transport, application. Большинство современных систем работает по TCP/IP.
Из практики: знать OSI полезно для общего словаря: «это L4-балансер», «проблема на L7». В реальности почти всегда работают TCP/IP-протоколы (HTTP, TCP, IP, Ethernet).
Частые ошибки
Путают уровни — назначают HTTP к транспортному.
Спорят о «правильности» OSI vs TCP/IP — это разные подходы.
Дополнительные вопросы
Чем UDP отличается от TCP?
Какие протоколы на каком уровне?
Что такое TLS/SSL?
Middle
TLS (Transport Layer Security) — криптографический протокол поверх TCP, обеспечивающий шифрование канала, аутентификацию сервера (а опционально и клиента) и целостность данных. SSL — устаревший предшественник TLS.
Использует асимметричное шифрование при handshake (для обмена сессионным ключом) и симметричное — для самих данных. Аутентификация — через сертификаты X.509, выданные доверенным CA.
Из практики: TLS — основа HTTPS, защищённой почты, многих API. Современный стандарт — TLS 1.3 (быстрее handshake, удалены небезопасные алгоритмы). TLS 1.0/1.1 — выводятся из эксплуатации.
Частые ошибки
Используют термин «SSL-сертификат» — формально это TLS-сертификат.
Не обновляют сертификаты — продакшен падает в неожиданный момент.
Дополнительные вопросы
Что такое certificate pinning?
Чем TLS 1.3 отличается от 1.2?
Что происходит, когда ты вводишь URL в браузере и нажимаешь Enter?
Middle
1) Браузер разбирает URL (схема, хост, путь). 2) DNS-резолв: имя хоста → IP (через кэш, /etc/hosts, рекурсивный DNS). 3) TCP-соединение (или QUIC для HTTP/3). 4) TLS handshake (для https). 5) HTTP-запрос с заголовками. 6) Сервер возвращает ответ (через CDN/балансер/app). 7) Браузер парсит HTML, строит DOM, грузит ресурсы (CSS, JS, шрифты, картинки), исполняет JS, рендерит.
По дороге включаются прокси, балансировщики, кэши на разных уровнях. Не каждый шаг занимает время, но любой может сломаться.
Из практики: вопрос любят на собеседованиях, чтобы понять, насколько кандидат знает «весь стек». Идеален развёрнутый ответ с возможностью углубиться в любую точку.
Частые ошибки
Пропускают DNS или TLS — это самые частые источники проблем.
Описывают только клиентскую часть, забывают про серверный путь.
Дополнительные вопросы
Что такое critical rendering path?
Как ускорить first contentful paint?
Что такое DNS?
Junior
DNS (Domain Name System) — иерархическая распределённая система, преобразующая доменные имена в IP-адреса. Резолв проходит по цепочке: корневые сервера → TLD-сервера (.com) → серверы домена.
Записи: A (имя → IPv4), AAAA (IPv6), CNAME (псевдоним), MX (почта), TXT (произвольный текст, SPF/DKIM), NS (delegation), SRV (сервис). TTL — сколько хранить ответ в кэше.
Из практики: «странные» проблемы DNS чаще всего из-за кэширования и TTL. После изменения записи нужно подождать TTL — иначе пол-мира видит старое.
Частые ошибки
Думают, что DNS «мгновенный» — пропускают эффект TTL и кэша провайдеров.
Делают CNAME на корневом домене (apex) — большинство DNS не позволяют.
Дополнительные вопросы
Что такое DNS over HTTPS?
Чем authoritative DNS отличается от recursive?
Что такое CORS?
Middle
CORS (Cross-Origin Resource Sharing) — механизм браузера, разрешающий или запрещающий веб-странице с одного origin (схема+домен+порт) делать запросы к другому origin. По умолчанию запросы блокируются Same-Origin Policy.
Сервер указывает разрешения через заголовки Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, Access-Control-Allow-Credentials. Для «небезопасных» методов браузер сначала шлёт preflight (OPTIONS).
Из практики: CORS — это про защиту пользователя браузером, не про защиту сервера. Сервер всё равно сам проверяет авторизацию.
Частые ошибки
Ставят `Access-Control-Allow-Origin: *` вместе с credentials — браузер блокирует.
Считают, что CORS защитит API — нет, это только клиентская защита в браузере.