Servidor de banco de dados para navegador da web [closed]

2

Qual é o servidor de banco de dados mais usado para navegadores da web, como Chrome, Firefox, Opera ou Safari? Talvez eu não entenda os navegadores da web, mas estou assumindo que eles devem ter um servidor de banco de dados da mesma maneira que um aplicativo da web tem um servidor de banco de dados.

    
por Cody Rutscher 06.09.2018 / 07:04

1 resposta

5

I am assuming they must have a database server the same way a web application has a database server.

Qual é a base para essa suposição? Navegadores da Web e aplicativos da Web são coisas diferentes e fazem coisas diferentes; portanto, eles não compartilham automaticamente os requisitos.

Você adivinhou que os navegadores podem e geralmente usam bancos de dados - mas eles não fazem isso "porque os aplicativos da Web usam um banco de dados". Se / quando eles usam um banco de dados, eles têm uma necessidade específica para ele: armazenamento de dados a longo prazo, pesquisável. É isso.

Para muitos aplicativos da Web, as necessidades de um banco de dados são óbvias: se tiverem contas de usuário, elas precisarão armazená-las em algum lugar; se tiverem páginas editáveis pelo usuário, elas precisarão armazenar o conteúdo da página em algum lugar; e assim por diante. Um aplicativo da Web deve ter um banco de dados? Apenas se precisar armazenar dados.

Comparado a isso, o que um navegador da Web armazenaria? Geralmente, ele não executa o aplicativo da web - ele só renderiza as páginas HTML que um webapp envia. A maioria dos componentes internos de um aplicativo da Web, incluindo se ele usa um banco de dados ou não, está completamente oculta do navegador.

Em vez disso, os principais usos de um banco de dados em navegadores da Web são para implementar a funcionalidade próprio do navegador: para armazenar o histórico de navegação, seus favoritos ou cookies. (E, sim, hoje em dia uma página da Web poderia perguntar ao navegador para armazenar algumas coisas via JavaScript (IndexedDB) - mas esse não é o armazenamento primário da maioria das aplicações web.)

Então, o que um navegador da Web, ou mesmo qualquer outro aplicativo de desktop, usa? Bem, ele não usa um servidor de banco de dados - ele usa um banco de dados incorporado .

Bancos de dados não requerem um programa "servidor" dedicado. Existem servidores de banco de dados para implementar recursos de vários usuários (autenticação, verificação de privilégios, replicação). Mas se o banco de dados é totalmente de sua propriedade e razoavelmente pequeno em tamanho (por exemplo, apenas seus marcadores da web), então ele não precisa desses recursos e o armazenamento real pode ser implementado usando uma biblioteca local simples.

Se você precisar de SQL completo, provavelmente o banco de dados de "arquivo único" mais popular é o SQLite . Tanto o Firefox quanto o Chrome usam o SQLite para armazenar favoritos; história; certificados; preferências; e assim por diante.

Quanto a bancos de dados "chave / valor" não-SQL simples, o Berkeley DB costumava ser a escolha popular - embora, devido a problemas de licenciamento e design um pouco desatualizado, muitas vezes ele seja substituído por LMDB e LevelDB (ou mesmo pelo mesmo SQLite).

Por exemplo: quando páginas da Web usam a API JavaScript IndexedDB, O Chrome armazena os dados em um banco de dados LevelDB; O Internet Explorer usa o Windows ESENT; e o Firefox usa o SQLite.

(Existem muitos outros tipos de bancos de dados incorporados - o artigo da Wikipédia que eu vinculado já tem uma longa lista - mas eles Não é nem de perto tão popular. Até mesmo o próprio Windows, que vem com o mecanismo de banco de dados ESENT embutido , pode ser capturado usando o SQLite às vezes.

Finalmente, muitos tipos de dados são pequenos o suficiente para que não precisem de um mecanismo de banco de dados completo em todos os e possam ser colocados diretamente em arquivos . Muitos navegadores na verdade armazenam cookies em arquivos textuais "cookie jar" - um cookie por linha, um arquivo por domínio. Mozilla / Netscape usado para armazenar favoritos na forma de uma única página da Web quase em HTML. A opção moderna é geralmente formatar os dados usando JSON antes de armazená-los.

Como observei, isso não é específico para navegadores da web. Eles apenas usam um banco de dados porque têm dados para armazenar - mas o mesmo pode ser dito sobre clientes de e-mail, tocadores de música, jogos e assim por diante, que frequentemente têm algum tipo de banco de dados embutido para manter as coisas.

(Não esqueça que o Registro do Windows, onde a maioria dos programas mantém suas configurações, é também um banco de dados chave / valor, como é o próprio sistema de arquivos.)

    
por 06.09.2018 / 08:32