Веб браузер — програма, через яку здійснюється перегляд інтернет-сторінок. Загальна архітектура всіх популярних оглядачів схожа: вона складається з декількох компонентів, незалежних один від одного, які згодом об’єднуються через спеціальні інтерфейси.
Інструкція
- Спочатку з’являються налаштування мережі: JavaScript, XML парсер і Display Backend (обробка подій на екрані). Це 4 незалежних модуля, які здійснюють своє функціонування в рамках графічного движка. Далі програмується високорівнева движок, який, як і інтерфейс користувача, здатний зберігати певні дані. Існують ще додаткові компоненти (плагіни, мультимедіа, модуль роботи з поштою, допомога, засоби розробки і т. п.), проте вони не так впливають на структуру браузера.
- Кожна складова частина архітектури знаходиться на певному рівні і може взаємодіяти тільки з найближчим елементом. Тому архітектура браузера називається багаторівневою.
- Інтерфейс користувача є своєрідним буфером, які існує між движком і користувачем. Саме він приймає всі побажання від юзера, дає йому всі можливості і обробляє всі його дії. Інтерфейс допомагає забезпечити стандартний набір функцій. Високорівнева движок відповідає за обробку сторінки, т. е. за виведення всієї графічної частини. Також він починає завантажувати сторінку, оновлює їх, переходить назад або вперед, працює з закладками, історією та налаштуваннями, які впливають на роботу графіки.
- Сам же графічний движок є головною частиною будь-якого браузера. Він відображає вміст ресурсу та аналізує HTML і XML, враховуючи вплив CSS і JS, а також інших об’єктів (зображення, flash). На основі всіх даних, які зібрав движок, здійснюється генерація макета, який користувач бачить на моніторі.
- Компоненти мережа, JS, XML парсер є спеціалізованими частинами програми, які працюють над відповідними параметрами. Display Backend пов’язаний з ОС і забезпечує висновок самої примітивної графіки (скролбари, форми, оформлення вікон і т. п.), яка залежить від операційки.
- Завдяки компонентної системі браузер може легко міняти дизайн, легше локалізувати помилки програми, кожен компонент поліпшується окремо і не впливає на програму в цілому, кожен компонент можна використовувати окремо.