Браузер, интернет-браузер, 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.
Знаете ли Вы, что такое "Большой Взрыв"? Согласно рупору релятивистской идеологии Википедии "Большой взрыв (англ. Big Bang) - это космологическая модель, описывающая раннее развитие Вселенной, а именно - начало расширения Вселенной, перед которым Вселенная находилась в сингулярном состоянии. Обычно сейчас автоматически сочетают теорию Большого взрыва и модель горячей Вселенной, но эти концепции независимы и исторически существовало также представление о холодной начальной Вселенной вблизи Большого взрыва. Именно сочетание теории Большого взрыва с теорией горячей Вселенной, подкрепляемое существованием реликтового излучения..." В этой тираде количество нонсенсов (бессмыслиц) больше, чем количество предложений, иначе просто трудно запутать сознание обывателя до такой степени, чтобы он поверил в эту ахинею. На самом деле взорваться что-либо может только в уже имеющемся пространстве. Без этого никакого взрыва в принципе быть не может, так как "взрыв" - понятие, применимое только внутри уже имеющегося пространства. А раз так, то есть, если пространство вселенной уже было до БВ, то БВ не может быть началом Вселенной в принципе. Это во-первых. Во-вторых, Вселенная - это не обычный конечный объект с границами, это сама бесконечность во времени и пространстве. У нее нет начала и конца, а также пространственных границ уже по ее определению: она есть всё (потому и называется Вселенной). В третьих, фраза "представление о холодной начальной Вселенной вблизи Большого взрыва" тоже есть сплошной нонсенс. Что могло быть "вблизи Большого взрыва", если самой Вселенной там еще не было? Подробнее читайте в FAQ по эфирной физике.