Ответы на вопросы на должность Frontend разработчика.
Вы вводите адрес в строку адреса в браузере.
Браузер ищет в своём кэше запись о DNS сервере соответствующего IP-адреса.
DNS (Domain Name System) — это база данных с url-адресами сайтов и связанными с ними IP. Каждый URL в интернете имеет свой уникальный IP. IP адрес принадлежит компьютеру, на котором находится сервер запрашиваемого вебсайта.
Чтобы найти запись DNS браузер проверяет 4 кэша:
DNS запрос ищет нужный IP на разных DNS серверах. Такой поиск называется рекурсивным, потому что переходит от сервера к серверу, пока не найдет IP или не вернёт ошибку о невозможности его найти. DNS запросы отправляют небольшие пакеты данных с информацией о содержимом запроса и IP адресом, откуда это запрос пришел (IP адрес провайдера). Если эти пакеты теряются, выводится ошибка. При нахождении нужного DNS сервера пакеты берут верный IP адрес и возвращают его браузеру.
После этого TCP соединение установлено.
Браузер посылает HTTP запрос к web серверу. Браузер отсылает GET запрос для нужной веб страницы. Если мы отправляем форму, это будет POST запрос. Этот запрос содержит дополнительную информацию о браузере (заголовок User-Agent), типы запросов, которые он может принять (Accept заголовок) и заголовки соединения (нужно ли сохранять соединение). Также в запросе будет информация о cookies, которые браузер хранит для этого домена.
Сервер обрабатывает запрос и даёт ответ. Сервер получает запрос и передаёт его обработчику запросов для чтения и создания ответа. Обработчик запроса — это программа (написанная на PHP, Ruby и т.д.), которая читает запрос, заголовки и cookies, распознаёт, какая информация запрошена и обновляет данные на сервере, если необходимо. Далее собирается ответ в определённом формате (JSON, XML, HTML).
Сервер высылает HTTP ответ.
Ответ сервера содержит запрошенную веб страницу вместе с кодом статуса, типом сжатия (Content Encoding), информацией о том, как кэшировать страницу, cookies и т.д.
В первой строчке ответа находится код статуса. Существует 5 типов:
Таким образом, если вы столкнулись с ошибкой, вы можете посмотреь на HTTP ответ и проверить код, который вы получили.
Браузер отображает HTML контент в несколько стадий.