Мне было интересно, что происходит, когда мы печатаем URL-адрес, например http://www.mydomain.com
? Как он узнает, куда можно перейти на страницы mydomain.com? Как все это происходит?
4
1 ответ
8
URL - это просто адрес, ссылка. Вот как это происходит:
- пользователь вводит URL в браузере. Это обрабатывается драйвером клавиатуры, который отправляет события клавиатуры в браузер, который отвечает обновлением адресной строки набранными символами
- браузер анализирует URL в различных частях, как определено в RFC 3986
- браузер выберет часть хоста, и он будет использовать внутреннюю библиотеку распознавателя, чтобы найти IP-адрес. Наиболее используемый распознаватель - DNS. Для этого библиотека распознавателя, которая отображается внутри приложения, отправит UDP-запрос на порт 53 на DNS-сервере, настроенном для клиентского компьютера. DNS-сервер будет искать запрос во внутреннем кэше и, если он истек или отсутствует, он сделает рекурсивный запрос, пытаясь найти адрес.
- браузер подключается к HTTP-серверу через порт по умолчанию (TCP/80).
- браузер отправляет запрос GET и указывает также заголовок HOST согласно HTTP/1.1, см. RFC 2616
- http-сервер проанализирует запрос и отправит запрос на виртуальный хост, указанный в запросе
- приложение возвращает сгенерированный контент (обычно HTML) в браузер
- браузер анализирует результат, генерирует некоторые события JavaScript/DOM и отображает страницу (например, движок Gecko в FireFox).
Это очень очень сжатое объяснение. Я не говорю о SSL, сжатии, согласовании языка и кодировки символов, аутентификации, CGI, конвейерной обработке и keep-alives.