Что такое движок браузера и чем различаются Blink, Gecko и WebKit? Узнайте, какой движок реально использует ваш браузер и почему user-agent может лгать.
Движок браузера — это программа внутри вашего браузера, которая превращает HTML, CSS и JavaScript страницы в пиксели, которые вы видите, и в поведение, которое вы ощущаете. Сегодня почти весь веб держится на трёх движках: Blink (Chrome, Edge и большинство других браузеров), Gecko (Firefox) и WebKit (Safari и каждый браузер на iOS). От того, какой из них вы используете, зависит, как сайты отрисовываются, какие функции работают и насколько вы узнаваемы, — а строка user-agent, которая якобы сообщает об этом, может быть подделана. Это руководство объясняет каждый движок, как они связаны и как проверить ваш настоящий.
Что такое движок браузера?
Движок браузера — также называемый движком рендеринга или компоновки — это компонент, который читает код веб-страницы и размещает его на экране. Когда вы открываете страницу, движок разбирает HTML в дерево документа, применяет CSS, чтобы оформить и расположить всё, и отрисовывает результат. Параллельно с ним работает отдельный движок JavaScript, который выполняет скрипты страницы.
Эти две части часто путают. В Chrome, например, Blink — это движок рендеринга, тогда как V8 — движок JavaScript, а Chromium — это проект с открытым исходным кодом, который объединяет их в браузер. Firefox сочетает Gecko (рендеринг) со SpiderMonkey (JavaScript); Safari сочетает WebKit с JavaScriptCore. Когда говорят «движок браузера», обычно имеют в виду движок рендеринга, ведь именно он определяет, как выглядит страница.
Blink (Chrome, Edge и большинство браузеров)
Blink — это движок рендеринга от Google и самый используемый с большим отрывом. На нём работают Chrome, Microsoft Edge, Opera, Brave, Vivaldi и множество других браузеров на основе Chromium — вместе они занимают подавляющее большинство десктопного веба, порядка трёх четвертей рынка.
Blink известен быстрой работой JavaScript (благодаря V8), стремительным внедрением новых функций и широкой поддержкой веб-платформы, поэтому разработчики часто тестируют под него в первую очередь. Обратная сторона такого доминирования — снижение разнообразия движков: когда один движок контролирует большую часть веба, его особенности и решения фактически становятся стандартом де-факто, согласны с этим формальные спецификации или нет.
Gecko (Firefox)
Gecko — это движок рендеринга Mozilla с открытым исходным кодом, используемый Firefox и его производными. Его доля рынка невелика — примерно в пределах единиц процентов, — но роль его непропорционально велика: Gecko остаётся главным независимым, не-Chromium движком на десктопе, поэтому он не даёт вебу превратиться в монокультуру с единственным движком.
Gecko делает упор на веб-стандарты и приватность, а масштабная переработка Mozilla под названием «Quantum» модернизировала его производительность и параллелизм. Для разработчиков тестирование в Gecko — самый надёжный способ выявить места, где сайт случайно стал зависеть от поведения, специфичного для Blink.
WebKit (Safari и все браузеры на iOS)
WebKit — это движок Apple, построенный на основе более старого движка KHTML. На нём работает Safari на macOS и iOS, и он оптимизирован под оборудование Apple с упором на энергоэффективность и стабильность. На десктопе его доля скромна, но на мобильных устройствах она очень велика из-за одного важнейшего правила.
На iOS и iPadOS каждый браузер обязан использовать WebKit — включая «Chrome» и «Firefox» на iPhone. Эти приложения оборачивают WebKit от Apple, а не поставляют Blink или Gecko, поэтому на iPhone вы всегда работаете на WebKit, по какой бы иконке браузера вы ни нажали. Вот почему сайт может отрисовываться иначе в iOS Chrome, чем в Android Chrome, несмотря на одно и то же название.
Blink против Gecko против WebKit — сравнение
| Движок | Создатель | Примерная доля | На чём работает | Чем известен |
|---|---|---|---|---|
| Blink | ~3/4 десктопа | Chrome, Edge, Opera, Brave | Скорость, быстрое внедрение функций, доминирование | |
| Gecko | Mozilla | единицы процентов | Firefox | Стандарты, приватность, независимость движка |
| WebKit | Apple | мало на десктопе, много на мобильных | Safari, все браузеры на iOS | Энергоэффективность, стабильность |
Практический вывод: большинство «разных» браузеров — это на самом деле один и тот же движок Blink в разных интерфейсах, тогда как Gecko и WebKit — это две по-настоящему самостоятельные альтернативы, что остались.
Краткая история: KHTML → WebKit → Blink
Три движка связаны теснее, чем кажется. WebKit появился в 2001 году, когда Apple ответвила KHTML — движок проекта KDE, — чтобы создать Safari. Долгие годы WebKit питал и Safari, и Chrome от Google. Затем в 2013 году Google ответвил WebKit, чтобы создать Blink и развивать движок на собственных условиях. Gecko всё это время развивался отдельно в Mozilla (а ранее в Netscape).
Таким образом, Blink и WebKit имеют общего предка, поэтому они порой ведут себя похоже, тогда как Gecko происходит из независимой родословной.
Как проверить, какой движок использует ваш браузер
Самый быстрый способ — запустить проверку ядра браузера от BrowserInsight, которая определяет движок рендеринга, на котором ваш браузер действительно работает, а не доверяет названию на иконке. Это различие важно, потому что строку user-agent — фрагмент текста, который браузер отправляет, чтобы представиться, — изменить элементарно. Браузер может заявлять, что он Chrome на Windows, будучи на деле чем-то совсем иным.
Именно поэтому определение движка смотрит дальше user-agent на реальное поведение движка: какие веб-API существуют, как реализованы те или иные функции и другие признаки, которые сложно подделать. Если хотите понять, как этот разрыв эксплуатируется и обнаруживается, см. как обнаружить подмену user-agent, а для более глубокого взгляда на один специфичный для движка сигнал — как ваш GPU выдаёт вашу личность через WebGL.
Часто задаваемые вопросы
Какой движок браузера использует Microsoft Edge?
Edge использует Blink — тот же движок, что и Chrome. Microsoft отказалась от своего старого движка EdgeHTML в 2020 году и перестроила Edge на Chromium, поэтому сегодня Edge и Chrome отрисовывают страницы почти одинаково; различия — в интерфейсе и встроенных сервисах, а не в движке.
Является ли Chrome на iPhone настоящим Chrome?
Не в смысле движка. На iOS Apple требует, чтобы каждый браузер использовал WebKit, поэтому «Chrome» и «Firefox» на iPhone — это интерфейсные оболочки поверх движка WebKit от Apple. Они синхронизируют ваши данные и выглядят как десктопные приложения, но фактический рендеринг — это WebKit, отчего страницы могут вести себя иначе, чем на Android.
В чём разница между движком браузера и движком JavaScript?
Движок браузера (рендеринга) компонует HTML и CSS в то, что вы видите; движок JavaScript выполняет скрипты страницы. Они работают вместе, но являются отдельными компонентами — Blink сочетается с V8, Gecko со SpiderMonkey, а WebKit с JavaScriptCore.
Могу ли я сменить движок своего браузера?
Внутри обычного браузера — нет, движок встроен. Ваш единственный практический выбор — сменить браузер: выберите браузер на Chromium для Blink, Firefox для Gecko или Safari для WebKit. На iOS этот выбор полностью отсутствует, поскольку все браузеры используют WebKit.
Заключение
Три движка — Blink, Gecko и WebKit — отрисовывают почти весь веб, и выбор браузера во многом сводится к выбору между ними. Blink доминирует, Gecko сохраняет независимость веба, а WebKit правит iOS по предписанию. Знать, какой движок вы действительно используете, важно как для совместимости, так и для приватности, а поскольку user-agent способен исказить это, единственный надёжный способ узнать — определить реальное поведение движка, а не доверять его названию.
Рекомендуем прочитать: