tgoop.com/system_design_world/176
Last Update:
🏄♂️ Приключение web запроса.
❓ "Что произойдёт при отправке запроса пользователем?", - такой вопрос можно услышать на System Design собеседование уровня старшего разработчика и на junior позиции в мире web.
☝️ Разбираем алгоритм
1. Пользователь вводит адрес сайта в браузере - ya.ru/google.com/etc...
2. Браузер проверяет свой кэш. Если в кэше нет данных, нужно выполнить операцию резолвинга/разрешения доменного имени в целевой IP-адрес.
3. Запрос на резолвинг проходит через разные уровни DNS-серверы (root, TLD и authoritative).
4. На одном из уровней извлекается IP-адрес.
5. Браузер создаёт TCP-соединение с сервером с этим IP-адресом. Которое начинается с ранее описанного на канале 3ёх уровневого рукопожания.
6. Современные сайт - это уже не простые html страницы из 90ых с вкраплением пары картинок.
<h2>Welcome to my best web site!</h2>
<img src="https://..../super_welcome_image.png" />
За ограниченное время (чтобы пользователь не ушёл) необходимо загрузить
html, css, картинки, подгрузить js скрипты, ...
🛠 Браузер для этого может создать множество параллельных tcp-сессий. Это количество зависит от браузера, используемого протокола. Даже от версии http. Эволюция http описана ранее на канале здесь.
7. Браузер наконец-то делает те самые http запросы для получения ресурсов.
8. Браузер парсит полученное и рендерит всё в финальную страницу.
9. Пользователь смотрит и радуется результату. Радуется, когда response time 250-300ms.
А радостный пользователь - основа любого бизнеса 😊
🏁 Теперь вы знаете что происходит под капотом при вводе пользователем адреса сайта в адресной строке браузера. Обогатили свой опыт и стали более подготовленным к реальному собеседованию.
▶️ Для закрепления материала предлагаю в браузере в режиме разработчика сходить по IP-адресу из картинки. И увидеть что же там происходит 😏
Вам часто встречался такой вопрос на собеседованиях? Как считаете отдаваемый контент будет одинаковым у всех пользователей? Или зависит от чего-то?
BY System Design World

Share with your friend now:
tgoop.com/system_design_world/176