Браузер, интернет-браузер, web-браузер
-
от англ. browser - окно просмотра, программа для просмотра текстового и графического содержания (контента) web-ресурсов Интернет, проигрывания мультимедийной информации (звука, видео, виртуальной реальности), передачи управляющей, почтовой, форм-интерактивной и иных форм информации от пользователя Интернет,
поиска информации в Интернет с помощью поисковых систем.
Браузер представляет собой компьютерную программу, - так называемый "тонкий клиент", - в системе клиент-серверной технологии современного сетевого обмена информацией, когда "тонкому клиенту" делегируется лишь незначительная часть полнопочий по управлению информационным процессом, не позволяя влиять на жизненно важные его элементы, от которых завистит работоспособность информационной системы.
Наиболее популярные браузеры - Сафари, FireFox, Google Chrom, Internet Explorer, Opera.
Архитектура браузера
Общая архитектура всех современных популярных браузеров однотипна:
она состоит из нескольких независимых компонентов (систем, модулей).
Между собой компоненты взаимодействуют посредством специальных интерфейсов.
Блочная организация структуры браузера имеет ряд достоинств:
легко менять дизайн браузера;
легче локализировать ошибки кода;
каждый компонент можно улучшать отдельно;
каждый компонент можно использовать повторно;
каждый компонент можно использовать отдельно (например, веб-браузер GNOME использует движок Gecko от Mozilla, но свои интерфейсы).
Это упрощенная блок-схема браузера. На самом деле компонентов гораздо больше:
это встроенные плагины, мультимедиа, модуль для работы с почтой, help и многое другое.
Но все это мало интересно front-end разработчику. Однако, для понимания работы браузера
наиболее интересно его ядро.
Каждая составная часть этой архитектуры находится на своем уровне и может
взаимодействовать только с непосредственно связанным компонентом по иерархии.
Потому архитектуру браузеров еще называют многоуровневой. Несложно подсчитать, что таких независимых компонентов у браузера восемь. Рассмотри их детальней.
Интерфейс пользователя (user interface)
Интерфейс пользователя представляет собой буфер между пользователем и
сердцем браузера - его движком. Именно ему приходится принимать все мыслимые
и немыслимые пожелания от пользователя и обрабатывать его действия.
Интерфейс пользователя обеспечивает стандартный набор функций (ввод информации,
печать, визуализацию процесса загрузки данных, панели инструментов и настроек),
- в общем все то, что пользователь ждет от обычного ПО.
Высокоуровневый движок браузера
В некоторых источниках этот уровень называют движком браузера (browser engine).
Но многие привыкли называть движком браузера, модуль, отвечающий за рендеринг
страницы. А это, что на самом деле является графическим движком. Поэтому, для
исключения путаницы, будем называть этот движок браузера - высокоуровневым движком.
Этот модуль отвечает за высокоуровневые действия браузера: начало загрузки страниц, их обновление, переходы вперед/назад, работа с закладками, историей и настройками браузера. Эти настройки влияют на работу графического движка. Например, ярким примером будет отключение стилей или javascript, выбор кодировки, масштаб и т.п.
Дополнительной задачей этого движка является информирование пользователя о текущей сессии браузера: ход загрузки документа, оповещение об ошибках javascript.
Графический движок (rendering engine или layout engine, или browser engine)
Это и есть самая главная часть любого веб браузера, - его мотор (engine).
Графический движок отображает на экране содержимое запрашиваемого ресурса.
Именно эта часть браузера анализирует полученный HTML или XML, при этом учитывает влияние CSS и Javascript, а так же других объектов, расположенных на веб странице (например, изображения или flash). На основе всех этих данных, движок создает макет (разметку) страницы, который видит пользователь на экране.
Ключевыми компонентами графического движка являются HTML и CSS парсеры - сложные программные комплексы, поскольку они позволяет графическому движку отобразить документ даже при наличии ошибок в HTML и CSS.
Самые распространенные движки браузеров на сегодня:
Trident — Internet Explorer;
Gecko — браузеры Mozilla;
Webkit — Chrome, Safari;
Presto — Opera.
Некоторые из этих движков совмещают в себе графический и высокоуровневый движки.
Сеть (networking)
Этот компонент предоставляет функциональные возможности для получения и обработки URL-адресов, используя общие протоколы Интернет HTTP и FTP. Управляет всеми аспектами связи через Интернет и безопасности. Именно этот компонент осуществляет кэширование полученных данных для минимизации сетевого трафика.
Javascript движок
Отвечает за выполнение кода Javascript, то есть является интерпретатором языка Javascript. Результаты выполнения передается графическому движку для отображения содержимого документа.
HTML-XML парсер
Используется для разбора HTML-XML-документов.
В последних версиях движков похоже на то, что XML парсер перебрался в ядро графического движка. Связано с тем, что то же SVG и MathML уже могут быть непосредственно встроены в HTML документ (спецификация HTML5).
Display Backend
Тесно связан с операционной системой. Обеспечивает отображение примитивной графики (стандартные скролбары, элементы форм, оформление окон), которые зависят от операционной системы.
Сохранение данных
Отвечает за сохранение данных пользователя такие как закладки, настройки, пароли, а также сохранение
получаемых данных в кэше браузера для уменьшения трафика идентичных элементов web-страниц и просмотра их в режиме "off-line".
Для этого типичным является использование движков монопольных СУБД, таких, как SQLite.
Знаете ли Вы, в чем фокус эксперимента Майкельсона?
Эксперимент А. Майкельсона, Майкельсона - Морли - действительно является цирковым фокусом, загипнотизировавшим физиков на 120 лет.
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается: - Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе. В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя. Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.