Я предполагаю, что они должны иметь сервер базы данных так же, как веб-приложение имеет сервер базы данных.
На чем основано это предположение? Веб-браузеры и веб-приложения - это разные вещи, и они делают разные вещи; поэтому они не разделяют автоматически требования.
Вы правильно догадались, что браузеры могут и часто используют базы данных - но они делают это «потому что веб-приложения используют базу данных». Если / когда они используют базу данных, у них есть особая потребность в ней: долгосрочное, доступное для поиска, хранилище данных. Вот и все.
Для многих веб-приложений потребность в базе данных очевидна: если у них есть учетные записи пользователей, они должны где-то хранить эти учетные записи; если у них есть редактируемые пользователем страницы, они должны где-то хранить содержимое страницы; и так далее. Должно ли веб-приложение иметь базу данных? Только если для этого нужно хранить данные.
По сравнению с этим, что будет хранить веб-браузер? Как правило, он не запускает веб-приложение - он только отображает HTML-страницы, которые отправляет веб-приложение. Большинство внутренних элементов веб-приложения, включая то, использует ли оно базу данных или нет, полностью скрыты от браузера.
Вместо этого основное использование базы данных в веб-браузерах предназначено для реализации собственной функциональности браузера : для хранения истории просмотров, ваших закладок или файлов cookie. (И да, в наши дни веб-страница может попросить браузер сохранить некоторые вещи с помощью JavaScript (IndexedDB), но это не основное хранилище большинства веб-приложений.)
Так что же использует веб-браузер или любое другое настольное приложение? Ну, он не использует сервер базы данных - он использует встроенную базу данных .
Базы данных не требуют выделенной «серверной» программы. Существуют серверы баз данных для реализации многопользовательских функций (аутентификация, проверка привилегий, репликация). Но если база данных полностью принадлежит вам и достаточно мала по размеру (например, только ваши веб-закладки), тогда эти функции не нужны, и фактическое хранилище может быть реализовано с использованием простой локальной библиотеки.
Если вам нужен полный SQL, возможно, самая популярная «однофайловая» база данных - SQLite . И Firefox, и Chrome используют SQLite для хранения закладок; история; сертификаты; предпочтения; и так далее.
Что касается простых не-SQL баз данных «ключ / значение», то Беркли БД был популярным выбором - хотя из-за проблем с лицензированием и несколько устаревшего дизайна вы часто видите, что его заменяют LMDB и LevelDB (или даже тот же SQLite).
Например: когда веб-страницы используют API-интерфейс JavaScript IndexedDB, Chrome сохраняет данные в базе данных LevelDB; Internet Explorer использует Windows ESENT; и Firefox использует SQLite.
(Есть много других встроенных типов база данных - статья в Википедии я связан с ранее имеет длинный список - но они нигде не рядом как популярные Даже Windows, сами, который поставляется с двигателем базы данных ESENT. Построен в, может быть перехвачена с помощью SQLite в раз.)
Наконец, многие виды данных достаточно малы, что они не нужен полный движок базы данных на все и могут быть непосредственно введены в файлы . Многие браузеры на самом деле хранят файлы cookie в текстовых файлах «cookie jar» - один файл cookie на строку, один файл на домен. Mozilla / Netscape используется для хранения закладок в виде одной почти HTML-страницы. Современный выбор, как правило, заключается в форматировании данных с использованием JSON перед их сохранением.
Как я уже отметил, это не является чем-то конкретным для веб-браузеров. Они просто используют базу данных, потому что у них есть данные для хранения, но то же самое можно сказать о почтовых клиентах, музыкальных проигрывателях, играх и т. Д., Которые часто имеют какую-то встроенную базу данных для хранения вещей.
(Не забывайте, что реестр Windows, где большинство программ сохраняют свои настройки, также является базой данных ключ / значение, как и сама файловая система.)