Capítulo 15: Meu Primeiro Servidor Web 🌐🔬

Parabéns por chegar até aqui! Neste capítulo, vamos usar tudo o que aprendemos para criar um Servidor Web real que responde a requisições, com o tema Rick and Morty!


📖 O que é um Servidor Web?

Um servidor web é um computador (ou um programa) que fica esperando conexões de outros computadores (clientes) através da internet. Quando você acessa um site, seu navegador faz uma requisição ao servidor, que responde com a página.

Vamos usar o módulo nativo http do Node.js para criar o portal dimensional do Rick!


📖 Exemplo Guiado: O Portal do Rick

Vamos criar um servidor que, quando acessado, responde com uma dimensão aleatória!

  1. Crie o arquivo portal_server.js na pasta src/:
const http = require('http');
 
// Criando o servidor
const server = http.createServer((req, res) => {
    // Definindo o cabeçalho da resposta como texto
    res.setHeader('Content-Type', 'text/plain; charset=utf-8');
    
    // Gerando dimensão aleatória
    const dimensao = Math.floor(Math.random() * 100) + 1;
    
    // Enviando a resposta
    res.end(`Rick ajustou a Arma de Portais!\nVoce caiu na Dimensao C-${dimensao}`);
});
 
// O servidor fica escutando na porta 3000
server.listen(3000, () => {
    console.log("Portal interdimensional aberto em http://localhost:3000");
    console.log("Pressione Ctrl+C para fechar.");
});

🕹️ Como Executar e Testar no VS Code

  1. Abra o terminal integrado e execute: node portal_server.js
  2. Abra o seu navegador web (Chrome, Edge, etc.) e digite na barra de endereços: http://localhost:3000
  3. Atualize a página para cair em dimensões diferentes!

📊 Ilustração Visual: Comunicação Cliente/Servidor

Veja como a internet funciona:

sequenceDiagram
    participant N as Seu Navegador (Cliente)
    participant S as Servidor Node.js
    N->>S: Requisição HTTP (Acessa localhost:3000)
    S-->>N: Resposta HTTP ("Você caiu na Dimensão C-XX")

🛠️ Prática Obrigatória 1: Mudando a Rota

Pesquise como verificar a URL que o usuário acessou usando req.url. Faça com que, se ele acessar http://localhost:3000/rick, o servidor responda “Wubba Lubba Dub Dub!“. Se acessar qualquer outra coisa, continue mostrando a dimensão aleatória.


🔑 Gabarito de Código

Prática 1: server_rotas.js

const http = require('http');
 
const server = http.createServer((req, res) => {
    res.setHeader('Content-Type', 'text/plain; charset=utf-8');
    
    if (req.url === '/rick') {
        res.end("Wubba Lubba Dub Dub!");
    } else {
        const dimensao = Math.floor(Math.random() * 100) + 1;
        res.end(`Rick ajustou a Arma de Portais!\nVoce caiu na Dimensao C-${dimensao}`);
    }
});
 
server.listen(3000, () => {
    console.log("Servidor rodando em http://localhost:3000");
});

📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

(Siga o padrão estabelecido no Guia)


Capitulo Anterior | Proximo Capitulo