Найти тему
Winterview

Что фронтендер обязан знать о браузере?


Техническое собеседование часто начинается с вопроса: «Что происходит, когда в адресной строке вы набираете yandex.ru и нажимаете Enter?».
Этот вопрос используют, чтобы снять напряжение, разговорить вас и проверить общее понимание работы браузера, протоколов, сети.

Поскольку это первый вопрос, именно он и сформирует первое впечатление о вас, которое потом будет трудно переломить. Если завалите этот вопрос — вас посчитают джуном, даже если на остальные вы ответите идеально. Скажут, что не хватило «фундаментальных» знаний.

Что же нужно знать?
⁃ Как парсится URL
⁃ Отличие HTTP от HTTPS
⁃ Обязательно упомянуть Handshake и сертификаты
⁃ Как работает DNS
⁃ Что уходит на сервер
⁃ Методы: GET, POST, PUT, PATCH, DELETE
⁃ REST
⁃ Заголовки и Cookies
⁃ Как сервер обрабатывает запрос в общих чертах;
⁃ Что возвращается от сервера
⁃ Что значат популярные коды ответа
⁃ Заголовки и как изменяются Cookies на сервере
⁃ Как браузер парсит HTML, если он приходит кусками
⁃ Когда начинает строиться DOM
⁃ Блокирующая и неблокирующая загрузка стилей и скриптов.
⁃ Ленивая подгрузка изображений
⁃ Рендеринг DOM
⁃ Когда происходит повторный рендеринг

Формат моих постов не позволяет разобрать каждый шаг детально, поэтому я специально подготовил документ с инструкцией. В нём описана последовательность событий и краткая, но достаточная выжимка правильных ответов.

Как получить эту инструкцию?
⁃ Поставьте лайк
⁃ Обязательно поделитесь этим постом с коллегой
⁃ Скачайте инструкцию по ссылке под этим постом

Распечатайте инструкцию и повторяйте перед сном.
Вряд ли вы запомните все детали, но здесь на вас будет работать тот же принцип, что и в посте
Перестать бояться собеседований.

Бонус
[JavaScript] напишите функцию, которая проверяет, что строки являются анаграммами

an('thing', 'NiGht'); // true
an('dog', 'god'); // true
an('wrong', 'answer'); // false