Браузер, интернет-браузер, 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.
Знаете ли Вы, что такое мысленный эксперимент, gedanken experiment? Это несуществующая практика, потусторонний опыт, воображение того, чего нет на самом деле. Мысленные эксперименты подобны снам наяву. Они рождают чудовищ. В отличие от физического эксперимента, который является опытной проверкой гипотез, "мысленный эксперимент" фокуснически подменяет экспериментальную проверку желаемыми, не проверенными на практике выводами, манипулируя логикообразными построениями, реально нарушающими саму логику путем использования недоказанных посылок в качестве доказанных, то есть путем подмены. Таким образом, основной задачей заявителей "мысленных экспериментов" является обман слушателя или читателя путем замены настоящего физического эксперимента его "куклой" - фиктивными рассуждениями под честное слово без самой физической проверки. Заполнение физики воображаемыми, "мысленными экспериментами" привело к возникновению абсурдной сюрреалистической, спутанно-запутанной картины мира. Настоящий исследователь должен отличать такие "фантики" от настоящих ценностей. Релятивисты и позитивисты утверждают, что "мысленный эксперимент" весьма полезный интрумент для проверки теорий (также возникающих в нашем уме) на непротиворечивость. В этом они обманывают людей, так как любая проверка может осуществляться только независимым от объекта проверки источником. Сам заявитель гипотезы не может быть проверкой своего же заявления, так как причина самого этого заявления есть отсутствие видимых для заявителя противоречий в заявлении. Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта"). Максимально, на что может претендовать "мысленный эксперимент" - это только на внутреннюю непротиворечивость гипотезы в рамках собственной, часто отнюдь не истинной логики заявителя. Соответсвие практике это не проверяет. Настоящая проверка может состояться только в действительном физическом эксперименте. Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем. Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.