Desenvolvimento Web Moderno: HTTP, WebSockets, SPA, HTMX e Infraestrutura de Rede

O desenvolvimento web não depende apenas de frameworks modernos como SPA, WebSockets e HTMX, mas também de uma infraestrutura robusta que garante a comunicação eficiente na internet. Vamos explorar HTTP, TCP/IP, portas, DNS, DHCP, CDN, IPv4 e IPv6, além da quantidade de endereços que podem ser gerados.


1. Principais Códigos de Status HTTP

Os códigos HTTP indicam o status de uma requisição entre cliente e servidor.

Códigos 2xx – Sucesso

200 OK – Requisição bem-sucedida.
201 Created – Recurso criado.
204 No Content – Requisição sem resposta.

Códigos 3xx – Redirecionamento

🔁 301 Moved Permanently – URL mudou permanentemente.
🔁 302 Found – Redirecionamento temporário.
🔁 304 Not Modified – O conteúdo não mudou, pode ser carregado do cache.

Códigos 4xx – Erros do Cliente

400 Bad Request – Requisição inválida.
401 Unauthorized – Autenticação necessária.
403 Forbidden – Acesso negado.
404 Not Found – Recurso não encontrado.
429 Too Many Requests – Excesso de requisições.

Códigos 5xx – Erros do Servidor

⚠️ 500 Internal Server Error – Erro interno do servidor.
⚠️ 502 Bad Gateway – Comunicação falha entre servidores.
⚠️ 503 Service Unavailable – Servidor temporariamente indisponível.


2. TCP/IP – O Protocolo da Internet

O TCP/IP é a base da comunicação na internet.

🔹 TCP (Transmission Control Protocol)

  • Protocolo confiável para comunicação (ex.: HTTP, FTP, SMTP).
  • Garante a entrega ordenada dos pacotes.

🔹 IP (Internet Protocol)

  • Roteia os pacotes de dados pela internet.
  • Cada dispositivo tem um endereço IP único (IPv4 ou IPv6).

3. IPv4 e IPv6

Os endereços IP identificam dispositivos na internet e nas redes locais.

IPv4 (Internet Protocol Version 4)

  • Endereços de 32 bits, geralmente representados como 192.168.1.1.
  • Quantidade máxima de endereços: 4.294.967.296 (aproximadamente 4,3 bilhões).
  • Problema: A internet cresceu rápido demais, esgotando os endereços IPv4.

IPv6 (Internet Protocol Version 6)

  • Criado para substituir o IPv4 devido à escassez de endereços.
  • Usa 128 bits, permitindo um número gigantesco de endereços.
  • Representado em hexadecimal, exemplo: 200185a300000370:7334.
  • Quantidade máxima de endereços: 340 undecilhões
    • Exatamente: 340.282.366.920.938.463.463.374.607.431.768.211.456

Comparação IPv4 vs IPv6

CaracterísticaIPv4IPv6
Tamanho32 bits128 bits
Endereços possíveis~4,3 bilhões340 undecilhões
NotaçãoDecimal (ex.: 192.168.1.1)Hexadecimal (ex.: 2001:1)
SegurançaMenos seguro, precisa de NATSuporte nativo a IPsec
Suporte a multicastLimitadoNativo
ExpansãoEsgotadoVirtualmente infinito

4. Portas e Protocolos

As portas identificam serviços específicos em um servidor.

PortaProtocoloUso
80HTTPWeb sem criptografia
443HTTPSWeb segura (SSL/TLS)
21FTPTransferência de arquivos
22SSHAcesso remoto seguro
3306MySQLBanco de dados MySQL
6379RedisBanco de dados em memória

5. DNS – Domain Name System

O DNS traduz nomes de domínio (ex.: google.com) em endereços IP (142.250.217.206).

1️⃣ O usuário digita google.com.
2️⃣ O navegador consulta um servidor DNS.
3️⃣ O DNS retorna o IP correspondente.
4️⃣ O navegador acessa o site pelo IP.


6. DHCP – Dynamic Host Configuration Protocol

O DHCP atribui automaticamente endereços IP para dispositivos na rede, evitando configurações manuais.

  • Um servidor DHCP gerencia a distribuição de IPs.
  • É essencial para redes Wi-Fi e LANs domésticas.

7. CDN – Content Delivery Network

Uma CDN melhora a performance de sites distribuindo conteúdo em servidores ao redor do mundo.

🌎 Como funciona?
1️⃣ O conteúdo (imagens, vídeos, scripts) é armazenado em servidores distribuídos globalmente.
2️⃣ O usuário recebe o conteúdo do servidor mais próximo.
3️⃣ Isso reduz a latência e melhora a velocidade.

🔹 Exemplos de CDNs populares:

  • Cloudflare – Segurança e cache.
  • Akamai – Performance global.
  • Amazon CloudFront – CDN da AWS.

Conclusão

A comunicação na internet depende de várias tecnologias, desde HTTP e TCP/IP até DNS, DHCP, CDNs e IPv6. Compreender esses conceitos é essencial para desenvolver aplicações web eficientes, seguras e escaláveis.


ricardotecpro.github.io