Capítulo 3
Domínios, DNS e segurança
7 min de leitura 1.321 palavras 2 gravuras
Este capítulo liga o nome digitado na barra ao computador que guarda os arquivos. O site da Oficina Costeira, coletivo fictício de design em João Pessoa, continua no disco. Comprar domínio é opcional. O exemplo correspondente é 03-dominios-dns-seguranca, no pacote que acompanha o volume.
Este volume tem 52 capítulos. Ciclo: ler → copiar → mudar uma coisa → prever → recarregar → conferir.
O que você vai aprender
- Explicar domínio, TLD e endereço IP.
- Descrever o DNS como lista telefônica da rede.
- Comparar HTTP e HTTPS.
- Usar
127.0.0.1só para estudo. - Recusar a ideia de que conta paga é o único caminho.
- Separar teste local de publicação pública.
Nome para gente, número para máquina
Computadores na Internet têm endereço IP. Exemplos: 192.0.2.10 ou um número longo IPv6. Difícil de lembrar.
O domínio é o nome para humanos. github.com é domínio. oficinacosteira.example serviria ao coletivo fictício, se um dia houvesse publicação.
O TLD é o último pedaço: .com, .org, .br. Ele classifica o tipo ou o país do nome. Não prova qualidade do site.
Você não precisa de domínio para estudar. A pasta 03-dominios-dns-seguranca no disco já é o projeto-fio.
O DNS traduz o nome
O DNS (Domain Name System) responde: “qual o IP deste domínio?”
Quando você digita um nome na barra, o computador pergunta a um servidor DNS. Se ele souber, devolve o registro A (IPv4) ou AAAA (IPv6). Se não souber, pergunta a outro, até achar o servidor autoritativo.
Depois o navegador pede o arquivo, em geral index.html, naquele IP. Só então começa o desenho da página.
E-mail usa outro registro, o MX. Site e correio podem viver em máquinas diferentes. Isso é decisão de publicação, não de estudo.
oficinacosteira.example. A 192.0.2.10
mail.oficinacosteira.example. MX 192.0.2.20
Esses números são de documentação. Não aponte o exercício para eles.

HTTP, HTTPS e o que o cadeado não faz
HTTP é o protocolo da Web. O cliente pede; o servidor responde com HTML e outros arquivos.
HTTPS é HTTP por um canal cifrado. Na publicação, use HTTPS. Senha, cookie e formulário real não viajam em HTTP aberto.
HTTPS não torna o texto honesto. Não impede um site falso com certificado próprio. Não substitui label em campo nem alt em imagem.
Neste volume os formulários da Oficina Costeira não enviam cadastro. Não há banco. Não há dado pessoal do aluno.
Erro comum: instalar “antivírus de cadeado” e achar que a página local ficou segura. Segurança de estudo começa por não publicar exercício e não postar senha.
127.0.0.1 é esta máquina
127.0.0.1 é o endereço de loopback. Significa “este computador”. IPv6 equivalente: ::1.
Quando o README pede:
python -m http.server 8769 --bind 127.0.0.1 --directory curso
o servidor escuta só aqui. A URL fica http://127.0.0.1:8769/exemplos/03-dominios-dns-seguranca/.
Isso é teste. Não é publicação. Ninguém na rua alcança essa porta se o bind estiver correto.
Nunca sirva em 0.0.0.0 neste volume. Isso abre a pasta para a rede local.
Abra o exemplo pelo Explorador (file://). Depois sirva em 127.0.0.1. Preveja: o texto da Oficina Costeira é o mesmo. A barra muda o protocolo. Recarregue. Confira.
Comprar domínio é opcional
Publicar um nome bonito na Internet exige registrar um domínio, renovar por ano e apontar o DNS para um servidor. Isso custa dinheiro e tempo.
Não é obrigatório para aprender. Conta paga não é o único caminho. Git em pasta local, arquivo no disco e 127.0.0.1 bastam para as 52 capítulos.
Se um dia você publicar, separe na cabeça: registrador (nome), hospedagem (arquivos), e-mail (MX). Juntar tudo num pacote “fácil” prende o nome ao servidor. Ainda assim, nada disso entra no exercício da Oficina Costeira.
Não use o material do volume como site real de cliente.

Hábitos simples de segurança no estudo
- Prefira HTTPS em qualquer página pública que peça dado.
- Desconfie de extensão de navegador que você não instalou de propósito. Remova o que não reconhecer. Feche e abra o navegador.
- Não coloque senha, chave ou
.envna pasta do exercício. - Formulário da Oficina Costeira: envio cancelado pelo apoio pronto. Os campos não são enviados.
- Cache do navegador pode mostrar página velha. Recarregue com força se o arquivo no disco já mudou e a janela não.
Copie este aviso fictício para um index.html de teste. Mude só o parágrafo. Preveja. Recarregue.
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Estudo local — Oficina Costeira</title>
</head>
<body>
<h1>Oficina Costeira</h1>
<p>Este arquivo vive no disco. O teste em 127.0.0.1 não publica o coletivo.</p>
<p>João Pessoa, conteúdo fictício. Sem cadastro.</p>
</body>
</html>
Erro comum: achar que “já tenho domínio” é pré-requisito do capítulo 03. Não é. O recorte deste volume é entender o mapa, não alugar um nome.
Disco, janela, localhost, publicação
Quatro camadas, de novo, porque a confusão nasce aqui.
- Arquivo no disco: você salva no editor.
- Página no navegador: o motor desenha.
- Teste em
127.0.0.1: servidor local, bind restrito. - Publicação pública: DNS + servidor na Internet. Fora do exercício.
A Oficina Costeira neste volume permanece nas três primeiras.
Registros DNS que você pode ouvir por aí, sem precisar configurar agora:
- A — IPv4 do site.
- AAAA — IPv6 do site.
- NS — quem é o servidor de nomes autoritativo.
- MX — para onde vai o e-mail daquele domínio.
- CNAME — apelido: este nome é outro nome.
TTL é o tempo que a resposta fica em cache. Por isso uma mudança de DNS “não pega na hora”. No estudo local isso não importa: não há DNS na pasta do exemplo.
HTTPS na publicação usa certificado. Em 127.0.0.1 o Python do README fala HTTP simples. Isso não é falha de segurança do exercício. Ninguém de fora deveria alcançar essa porta.
Copie o index.html do exemplo para uma pasta só sua. Sirva essa pasta. Mude o h1. Preveja a aba em http://127.0.0.1:8769/. Recarregue. Confira. Pare o servidor com Ctrl+C. A URL deixa de responder. O arquivo no disco continua lá. Publicação pública seria o contrário: o servidor dos outros continua no ar sem o seu Python.
Não misture “meu site já tem domínio” com “terminei o capítulo 03”. Terminar é explicar o mapa e abrir o exemplo.
Quem vende pacote “site + e-mail + domínio” em um clique não está errado comercialmente. Está misturando três contratos. Se o servidor cai, o correio cai junto. Se você só estuda, nenhum dos três é necessário.
IP privado (192.168.x.x) é a rede de casa. Não é publicação. Não peça para colegas “entrarem no seu 192” como se fosse a Oficina Costeira no ar. Use 127.0.0.1 só na sua máquina.
HTTPS de verdade, na publicação, exige certificado válido. Avisos de certificado em site público merecem desconfiança. Na pasta de estudo, o aviso nem deveria aparecer: você não está fingindo um domínio.
Página de estudo para gravar o aviso no disco:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Estudo — Oficina Costeira</title>
</head>
<body>
<h1>Oficina Costeira</h1>
<p>Arquivo no disco. Teste em 127.0.0.1. Sem domínio pago.</p>
</body>
</html>
Mude só o título da aba. Sirva em 127.0.0.1. Preveja. Recarregue. Confira.
Atividades
- O que o DNS devolve quando o navegador pergunta por um domínio?
- Qual a diferença prática entre abrir
index.htmlporfile://e porhttp://127.0.0.1? - Por que este volume não exige comprar um domínio?
- No exemplo, sirva a pasta em
127.0.0.1e mude só otitle. O que a aba deve mostrar depois do recarregar?
Respostas comentadas
- Em geral o endereço IP do servidor que guarda o site (registro A ou AAAA). Sem isso o navegador não sabe a quem pedir o HTML.
file://lê o disco direto, sem HTTP.127.0.0.1usa protocolo de Web na própria máquina, o que permite caminhos de servidor. Nenhum dos dois é publicação.- Porque o objetivo é aprender tags, caminhos e publicação como conceito. Conta paga não é o único caminho. O projeto-fio roda local.
- A aba deve mostrar o novo título. Se continuar o texto antigo, você recarregou outra URL ou o cache segurou a versão anterior: confira a barra.
Referências
O arquivo completo
Referência do exemplo 03-dominios-dns-seguranca, reproduzida aqui para que você possa conferir sem sair da página.
assets/javascript/simulacao.js
const form=document.querySelector("#simulacao");if(form){form.querySelector("button[type=submit]").disabled=false;form.addEventListener("submit",event=>{event.preventDefault();document.querySelector("#retorno").textContent="Simulação concluída. Nada foi enviado ou guardado.";});}