#any #полезно
Собесился я как-то в фирму(штат 700+ человек). Формат мне понравился, вопросы классные, но я не об этом. А поведаю очень интересный вопрос (мне лично попался он только один раз за все собесы и могут его задать как фронту, так и бекендеру):
- "Что происходит, когда вводим домен в адресную строку и нажимаем enter ?"
Вот казалось бы, чел 3+ года опыта(накрученного), много чего успел потыкать и должен шарить за это. Но нет! Кое-что я упустил. 😤
А теперь давайте чуть подробнее разберу его тут, чтобы вы не совершали моих ошибок. 🧐
1. Разрешение DNS: Браузер проверяет, есть ли у него закэшированные записи DNS для введенного домена. Если записей нет, браузер отправляет запрос к DNS-серверу для получения IP-адреса, связанного с доменным именем. Этот процесс включает в себя взаимодействие с корневыми, TLD (top-level domain) и авторитативными DNS-серверами.
2. Установка TCP-соединения: Браузер инициирует трехэтапное рукопожатие TCP для установления надежного соединения с сервером, используя полученный IP-адрес и порт (обычно 80 для HTTP и 443 для HTTPS). Это включает в себя SYN, SYN-ACK и ACK пакеты для установления соединения.
3. Отправка HTTP-запроса: Браузер формирует HTTP-запрос, содержащий метод (GET, POST и т.д.), заголовки (User-Agent, Cookies, Accept, Host и другие) и URL-адрес. Затем он отправляет этот запрос на сервер через установленное TCP-соединение.
4. Обработка запроса сервером: Сервер анализирует HTTP-запрос, определяет целевой ресурс и обрабатывает запрос, используя серверное программное обеспечение (например, Apache, Nginx) и серверные скрипты (например, PHP, Python, Node.js). Сервер может также взаимодействовать с базами данных для извлечения или хранения данных.
5. Получение HTTP-ответа: Браузер получает HTTP-ответ от сервера, который содержит код состояния (200 OK, 404 Not Found и т.д.), заголовки ответа (Content-Type, Set-Cookie, Cache-Control и другие) и тело ответа (HTML, CSS, JavaScript и т.д.).
6. Рендеринг страницы: Браузер начинает обрабатывать полученный HTML-код, строит DOM-дерево, CSSOM-дерево и инициализирует JavaScript-контекст выполнения. Затем он осуществляет рендеринг страницы, применяя стили, выполняя JavaScript и создавая визуальное представление страницы.
7. Загрузка ресурсов: Браузер разбирает HTML-код и обнаруживает ссылки на внешние ресурсы (изображения, стили, скрипты), отправляя дополнительные HTTP-запросы на сервер для их загрузки. Этот процесс может включать параллельную загрузку и оптимизацию загрузки ресурсов.
8. Завершение загрузки: Браузер постепенно обновляет содержимое страницы по мере загрузки ресурсов, выполняет встроенные и внешние скрипты JavaScript и отображает все ресурсы, при этом учитывая их приоритеты и зависимости.
🟥 YouTube
™️ TikTok
⛩ Общий чат
🔵 Discord
Post #51
475
- 👍 5