Fundamentos de Tecnologia

A Revolução do HTML5 no Navegador: Recursos Avançados para Páginas Web Modernas

Arquitetura Básica da Web

URLs (Uniform Resource Locators)

As URLs são os endereços que usamos para acessar recursos na web, como páginas da web, imagens e arquivos. Elas seguem uma estrutura padrão:

protocol://hostname:port/path/to/resource?query=parameters

  • Protocolo (protocol): Define como o navegador deve se comunicar com o servidor. Exemplos incluem “http://” para páginas da web normais e “https://” para páginas seguras.
  • Hostname (hostname): Indica o nome do servidor que hospeda o recurso, como “www.example.com“.
  • Porta (port): O número da porta usado para acessar o servidor. A porta padrão para HTTP é 80, e para HTTPS é 443.
  • Caminho (path): O caminho no servidor para o recurso desejado, como “/pasta/pagina.html”.
  • Parâmetros de Consulta (query parameters): Valores opcionais que podem ser enviados para o servidor para personalizar a solicitação, geralmente na forma de “chave=valor”.

HTTP (Hypertext Transfer Protocol)

O HTTP é o protocolo padrão usado para transferir dados na web. Funciona seguindo este fluxo:

  1. O navegador envia uma solicitação HTTP para o servidor usando a URL especificada.
  2. O servidor processa a solicitação e recupera o recurso solicitado.
  3. O servidor envia uma resposta HTTP de volta para o navegador com o recurso.
  4. O navegador interpreta a resposta, que pode incluir código HTML, CSS, JavaScript e outros recursos.
  5. O navegador exibe a página da web resultante para o usuário.

HTML (Hypertext Markup Language)

O HTML é a linguagem usada para criar o conteúdo das páginas da web.

Antes do HTML5, a web era baseada em versões mais antigas do HTML, como o HTML 4.01, que não ofereciam suporte a recursos modernos, como vídeo e áudio incorporados, elementos semânticos avançados, gráficos interativos, entre outros. O HTML5 foi projetado para modernizar a web e acompanhar as crescentes demandas dos desenvolvedores e usuários.

o HTML5 foi criado para modernizar a web, oferecer suporte a recursos avançados, melhorar a semântica, padronizar o desenvolvimento e proporcionar uma experiência de usuário aprimorada em uma variedade de dispositivos e navegadores. Ele representa uma evolução significativa em relação às versões anteriores do HTML e continua a ser a base da web moderna.

O HTML5 é uma parte fundamental dos navegadores da web que interpreta e transforma o código HTML5 em uma estrutura de dados que pode ser compreendida e renderizada na tela. Ele desempenha um papel crítico na renderização de páginas da web, pois converte o código HTML bruto em uma árvore de elementos que o navegador pode processar e exibir adequadamente.
O processo de análise começa quando o navegador faz uma solicitação a um servidor da web para uma página da web específica. O servidor responde enviando o código HTML da página.

Tokenização:

O HTML5 Parser começa tokenizando o código HTML. A tokenização envolve a quebra do código em pequenos pedaços chamados “tokens”. Os tokens representam elementos HTML, atributos, texto, comentários e outras partes do código.
O parser lê o código de entrada caractere por caractere e identifica os tokens conforme avança.

Construção da Árvore DOM:

Conforme os tokens são gerados, o parser começa a construir uma estrutura de dados chamada Árvore de Documento de Objetos (DOM). O DOM é uma representação em forma de árvore da estrutura hierárquica da página HTML.
Cada elemento HTML, como div, p, a, etc., é representado por um nó na árvore DOM. Os atributos, texto e outros dados associados também são adicionados como propriedades desses nós.
Durante a análise, se o parser encontrar algum erro no código HTML, ele tentará corrigi-lo na medida do possível. Por exemplo, se faltar uma tag de fechamento , o parser pode adicionar automaticamente para garantir que a estrutura da árvore DOM seja válida.
No entanto, em casos mais graves de erros de sintaxe, o parser pode ser incapaz de corrigir o código e, nesse caso, ele tentará criar uma árvore DOM válida com base no código disponível.

Manipulação de Scripts:

Quando o parser encontra scripts, seja JavaScript interno ou links para scripts externos, ele pode pausar a análise HTML e chamar o mecanismo JavaScript para executar o código.
Isso permite que os scripts interajam com o DOM e adicionem dinamicamente elementos à página ou façam outras operações.

Renderização:

Uma vez que a árvore DOM esteja completa e todos os scripts tenham sido executados, o navegador pode iniciar o processo de renderização.
A renderização envolve a exibição dos elementos na tela de acordo com suas propriedades CSS, posição e hierarquia na árvore DOM.

Atualização e Manipulação:

À medida que os usuários interagem com a página, eventos JavaScript podem ser disparados, alterando o DOM e, assim, atualizando a interface do usuário dinamicamente.
Em resumo, o HTML5 Parser é uma parte essencial do funcionamento de um navegador da web, pois transforma o código HTML em uma estrutura de dados manipulável, permitindo que a página seja renderizada e interativa para os usuários. Ele desempenha um papel crítico na interpretação e exibição de páginas da web da maneira que vemos nos navegadores.

Antes de nos aprofundarmos no mundo do CSS, que tal praticarmos um pouco? Experimente executar os seguintes códigos HTML e CSS no Visual Studio Code.

Arquivo HTML:

<!DOCTYPE html>
<html lang=pt">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scal e=1.0">
    <title>Aprendendo JS</title>
    <style>
        body{
            text-align: center;
        }
    </style>
</head>
<body>
    <h1>Aprendendo Javascript</h1>
    <h2>Hora: <spam id="hora"></spam> </h2>

    <script src="js/index.js"></script>
    
</body>
</html>

Arquivo JavaScript:

            // Crie um objeto Date para obter a hora atual
            const dataAtual = new Date();
    
            // Obtenha a hora, os minutos e os segundos
            const horas = dataAtual.getHours();
            const minutos = dataAtual.getMinutes();
            const segundos = dataAtual.getSeconds();
    
            // Exiba a hora no formato HH:MM:SS
            const horaFormatada = `${horas}:${minutos}:${segundos}`;
    
            // Atualize o conteúdo do elemento HTML com o ID "hora"
            document.getElementById("hora").innerHTML = horaFormatada;

Não conseguiu? Assista a aula anterior CLICANDO AQUI.

CSS: Estilizando a Web

Agora que entendemos como o HTML5 funciona, vamos dar uma olhada em como o CSS (Cascading Style Sheets) é usado para estilizar elementos HTML em uma página da web.

Adicionando Estilos com CSS

O CSS é usado para controlar a apresentação de elementos HTML. Permite definir a aparência e o layout dos elementos, como cores, fontes, margens e muito mais. Os estilos CSS são definidos em um arquivo externo ou diretamente no documento HTML. Exemplo:

Exemplo de CSS:

/* Estilizando um título h1 */
h1 {
  color: #0066cc; /* Definindo a cor do texto */
  font-size: 24px; /* Definindo o tamanho da fonte */
  font-family: Arial, sans-serif; /* Definindo a fonte */
}

/* Estilizando um parágrafo p */
p {
  color: #333; /* Definindo a cor do texto */
  font-size: 16px; /* Definindo o tamanho da fonte */
  line-height: 1.5; /* Definindo o espaçamento entre as linhas */
}

Neste exemplo, estamos usando seletores CSS para definir estilos específicos para elementos HTML, como títulos e parágrafos. Esses estilos controlam a cor do texto, o tamanho da fonte e outros aspectos visuais.

Aplicando CSS ao Layout

Vamos aplicar o que aprendemos sobre CSS ao layout que você forneceu.

Exemplo de Layout HTML:

<div class="container">
  <div class="item header">Header</div>
  <div class="item sidebar">Sidebar</div>
  <div class="item main">Main</div>
  <div class="item box1">Box 1</div>
  <div class="item box2">Box 2</div>
  <div class="item footer">Footer</div>
</div>

Exemplo de CSS:

/* Estilizando o container */
.container {
  width: 960px;
  margin: 0 auto; /* Centralizando o container */
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr 1fr;
  grid-gap: 1rem;
}

/* Estilizando os itens */
.item {
  color: white;
  padding: 20px;
  background-image: linear-gradient(130deg, #6C52D9 0%, #1EAAFC 85%, #3EDFD7 100%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
  border-radius: 5px;
  border: 5px solid #171717;
}

/* Estilizando áreas específicas */
.header {
  grid-column: 1/4;
}

.sidebar {
  grid-row: 2/5;
  grid-column: 1/2;
}

.main {
  grid-column: 2/4;
  grid-row: 2/5;
}

.box1 {
  grid-column: 1/2;
}

.box2 {
  grid-column: 2/4;
}

.footer {
  grid-column: 1/4;
}

Neste exemplo, usamos CSS para estilizar um layout de página. Definimos a largura do contêiner, cores de fundo, sombras e outros estilos para criar uma apresentação visual atraente.

Conclusão

O HTML5 Parser é uma parte essencial do funcionamento de um navegador da web, pois transforma o código HTML em uma