2

Какой сервер баз данных наиболее часто используется для веб-браузеров, таких как Chrome, Firefox, Opera или Safari? Возможно, я не понимаю веб-браузеры, но я предполагаю, что они должны иметь сервер базы данных так же, как веб-приложение имеет сервер базы данных.

1 ответ1

5

Я предполагаю, что они должны иметь сервер базы данных так же, как веб-приложение имеет сервер базы данных.

На чем основано это предположение? Веб-браузеры и веб-приложения - это разные вещи, и они делают разные вещи; поэтому они не разделяют автоматически требования.

Вы правильно догадались, что браузеры могут и часто используют базы данных - но они делают это «потому что веб-приложения используют базу данных». Если / когда они используют базу данных, у них есть особая потребность в ней: долгосрочное, доступное для поиска, хранилище данных. Вот и все.


Для многих веб-приложений потребность в базе данных очевидна: если у них есть учетные записи пользователей, они должны где-то хранить эти учетные записи; если у них есть редактируемые пользователем страницы, они должны где-то хранить содержимое страницы; и так далее. Должно ли веб-приложение иметь базу данных? Только если для этого нужно хранить данные.

По сравнению с этим, что будет хранить веб-браузер? Как правило, он не запускает веб-приложение - он только отображает 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, где большинство программ сохраняют свои настройки, также является базой данных ключ / значение, как и сама файловая система.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .