Um navegador é um aplicativo de software usado para localizar, recuperar e exibir conteúdo na World Wide Web, incluindo páginas da Web, imagens, vídeos e outros arquivos. Como um modelo cliente/servidor, o navegador é o cliente executado em um computador que contata o servidor Web e solicita informações. O servidor Web envia as informações de volta para o navegador que exibe os resultados no computador ou outro dispositivo habilitado para Internet que suporta um navegador.
Os navegadores de hoje são conjuntos de software totalmente funcional que pode interpretar e exibir páginas HTML Web, aplicações, JavaScript, AJAX, e outros conteúdos hospedados em servidores Web.
Muitos navegadores oferecem plug-ins que ampliam as capacidades do software para que ele possa exibir informações multimídia (incluindo som e vídeo), ou o navegador pode ser usado para realizar tarefas como videoconferência, para projetar páginas web ou adicionar filtros anti-phishing e outros recursos de segurança para o navegador.
-
A Interface do Usuário: A interface do usuário é o espaço onde o usuário interage com o navegador. Ela inclui a barra de endereço, botões voltar e seguinte, botão home, refresh e stop, opção bookmark, etc. Todas as outras partes, exceto a janela onde a página web solicitada é exibida, vem abaixo dela.
-
The Browser Engine: O motor do navegador funciona como uma ponte entre a interface do usuário e o motor de renderização. De acordo com as entradas de várias interfaces de usuário, ele consulta e manipula o motor de renderização.
-
O motor de renderização: O motor de renderização, como o nome sugere, é responsável por renderizar a página web solicitada na tela do navegador. O motor de renderização interpreta o HTML, documentos XML e imagens que são formatadas usando CSS e gera o layout que é exibido na Interface do Usuário. No entanto, usando plugins ou extensões pode exibir outros tipos de dados também.
Diferentes navegadores usam diferentes mecanismos de renderização:
- Internet Explorer: Trident
- Firefox& outros navegadores Mozilla: Gecko
- Chrome & Opera 15+: Blink
- Chrome (iPhone) & Safari: Webkit
-
Rede: Componente do navegador que recupera as URLs usando os protocolos de Internet comuns de HTTP ou FTP. O componente de rede trata de todos os aspectos da comunicação e segurança na Internet. O componente de rede pode implementar um cache de documentos recuperados a fim de reduzir o tráfego de rede.
-
JavaScript Interpreter: É o componente do navegador que interpreta e executa o código javascript embutido em um website. Os resultados interpretados são enviados para o motor de renderização para exibição. Se o script for externo então primeiro o recurso é buscado na rede. O Parser permanece em espera até que o script seja executado.
-
UI Backend: UI backend é usado para desenhar widgets básicos como caixas de combinação e janelas. Este backend expõe uma interface genérica que não é específica para plataformas. Ele usa métodos de interface de usuário do sistema operacional.
-
Persistência/armazenamento de dados: Esta é uma camada de persistência. Os navegadores suportam mecanismos de armazenamento como localStorage, IndexedDB, WebSQL e FileSystem. É uma pequena base de dados criada na unidade local do computador onde o navegador está instalado. Ele gerencia dados do usuário como cache, cookies, bookmarks e preferências.
Uma coisa importante a ser notada aqui é que em navegadores web como o Google Chrome cada aba é executada em um processo separado (múltiplas instâncias do motor de renderização).