Что происходит при вводе адреса сайта в браузере и нажатии Enter
Что проверяют
Знаете ли вы полный путь запроса и умеете ли по нему локализовать проблему.
Как отвечать
По шагам, называя, что может пойти не так на каждом.
1. Разбор строки. Браузер решает, адрес это или поисковый запрос, дополняет схему.
2. Проверка списка обязательного шифрования. Если домен в нём, браузер сам заменяет незащищённое соединение на защищённое, не отправляя первый запрос.
3. Разрешение имени. Проверяются кэш браузера, кэш системы, файл соответствий, затем запрос уходит к резолверу провайдера, а он при необходимости идёт по цепочке от корневых серверов. Результат кэшируется на время, указанное в записи. Отсюда классическая ситуация, когда после смены адреса часть пользователей ещё ходит на старый сервер.
4. Установка соединения. Обмен пакетами для установки соединения, обычно к ближайшей точке сети доставки контента, а не к самому серверу.
5. Защищённое рукопожатие. Согласование версии и шифров, проверка сертификата: срок, цепочка доверия, соответствие домену. Здесь возникают ошибки просроченного или неверного сертификата.
6. Запрос. Отправляется строка запроса с заголовками и куками.
7. Обработка на сервере. Балансировщик, обратный прокси, приложение, база, кэш. Возможны перенаправления, и каждое это ещё один полный круг.
8. Ответ и отрисовка. Разбор разметки, построение дерева, стили, раскладка, отрисовка. Скрипты блокируют разбор, стили блокируют показ.
Отдельно стоит назвать кэши на пути: кэш браузера может отдать ответ вовсе без сети, а сервис-воркер способен перехватить запрос и ответить из своего хранилища.
Практическая ценность для тестировщика: каждый этап проверяется своим инструментом. Имя не разрешается, значит смотрим разрешение имён; соединение не устанавливается, значит проверяем доступность порта; сертификат не проходит, значит смотрим цепочку; ответ пришёл с ошибкой, значит идём в логи приложения.
Где спотыкаются
Начинают сразу с запроса, пропуская разрешение имени и рукопожатие.
Забывают про кэши и не понимают, почему изменения не видны.
Не знают про перенаправления и удивляются лишним запросам.
Не могут сказать, каким инструментом проверить конкретный этап.