Desenvolvimento Back-end: Servidores e Linguagens
Os alunos introduzem-se ao desenvolvimento back-end, compreendendo o papel dos servidores e das linguagens de programação do lado do servidor.
Sobre este tópico
O desenvolvimento back-end centra-se no processamento de dados no servidor, longe da interface visível ao utilizador. Os alunos do 12.º ano exploram como servidores web recebem requisições HTTP de clientes, executam código em linguagens como Python, Node.js ou PHP, e devolvem respostas formatadas, como JSON ou HTML. Esta introdução revela o fluxo cliente-servidor e prepara para aplicações web robustas.
No Currículo Nacional, este tema integra-se à algoritmia, programação e redes de comunicação. Os alunos comparam linguagens: Python destaca-se pela legibilidade e bibliotecas como Flask; Node.js pela execução assíncrona com JavaScript; PHP pela integração rápida com bases de dados. A segurança ganha ênfase, com foco em validação de entradas, autenticação e encriptação para prevenir fugas de dados sensíveis, alinhando com standards DGE de Secundário.
Abordagens ativas beneficiam este tema porque os alunos configuram servidores locais, testam requisições em tempo real e simulam vulnerabilidades em grupo. Estas práticas tornam processos invisíveis tangíveis, promovem depuração colaborativa e reforçam pensamento computacional através de iterações práticas.
Questões-Chave
- Como um servidor web processa requisições e envia respostas aos clientes?
- Compare as características de diferentes linguagens de programação back-end (e.g., Python, Node.js, PHP).
- Explique a importância da segurança no desenvolvimento back-end para proteger dados sensíveis.
Objetivos de Aprendizagem
- Comparar o fluxo de requisições e respostas entre um cliente e um servidor web, identificando os protocolos envolvidos.
- Analisar as características de Python (com Flask/Django), Node.js (com Express) e PHP (com Laravel/Symfony) para determinar a sua adequação a diferentes cenários de back-end.
- Explicar os princípios fundamentais da segurança no desenvolvimento back-end, incluindo validação de entrada, autenticação e autorização.
- Projetar um esboço de arquitetura para uma aplicação web simples, definindo os componentes do lado do servidor e as suas interações.
- Avaliar os riscos de segurança associados a vulnerabilidades comuns em aplicações web (e.g., SQL Injection, XSS) e propor medidas de mitigação.
Antes de Começar
Porquê: É essencial que os alunos já possuam conhecimentos básicos de programação para compreender a lógica e a sintaxe das linguagens de back-end.
Porquê: Compreender o modelo cliente-servidor, endereçamento IP e protocolos básicos como HTTP é crucial para entender como as requisições e respostas funcionam.
Porquê: O conhecimento de estruturas como listas, dicionários/objetos e arrays é necessário para manipular dados que são enviados e recebidos entre cliente e servidor.
Vocabulário-Chave
| Servidor Web | Um programa ou dispositivo que processa requisições de clientes (geralmente navegadores web) e envia de volta respostas, como páginas HTML ou dados. |
| Requisição HTTP | Uma mensagem enviada por um cliente para um servidor web, solicitando uma ação ou um recurso específico, como a obtenção de uma página web. |
| Resposta HTTP | Uma mensagem enviada por um servidor web de volta a um cliente em resposta a uma requisição, contendo o status da requisição e os dados solicitados. |
| API RESTful | Um conjunto de regras e convenções para construir aplicações web, onde os recursos são expostos através de URLs e manipulados usando métodos HTTP padrão. |
| Middleware | Funções que são executadas no ciclo de vida de uma requisição/resposta numa aplicação web, frequentemente usadas para autenticação, logging ou manipulação de dados. |
Atenção a estes erros comuns
Erro comumO back-end é igual ao front-end, só muda a visibilidade.
O que ensinar em alternativa
O back-end gere lógica, dados e segurança no servidor, enquanto o front-end cuida da interface no cliente. Atividades de configuração de servidores locais mostram esta separação em ação, com testes de requisições que falham sem lógica back-end, ajudando os alunos a visualizar o fluxo completo.
Erro comumQualquer linguagem serve para back-end sem diferenças relevantes.
O que ensinar em alternativa
Cada linguagem tem características únicas: Node.js para assincronia, Python para simplicidade. Comparações práticas em pares revelam estas diferenças através de benchmarks reais, promovendo discussões que clarificam escolhas baseadas em necessidades do projeto.
Erro comumServidores estão sempre seguros por defeito.
O que ensinar em alternativa
A segurança requer práticas explícitas como sanitização de inputs. Simulações de ataques em grupo expõem vulnerabilidades rapidamente, incentivando correcções iterativas e reforçando a importância proativa através de feedback imediato.
Ideias de aprendizagem ativa
Ver todas as atividadesSimulação de Julgamento: Servidor Node.js Básico
Instale Node.js e crie um ficheiro server.js com endpoints GET e POST usando Express. Teste requisições com ferramentas como Thunder Client no VS Code. Registe respostas no ecrã e discuta erros comuns em grupo.
Comparação: Scripts em Python e PHP
Escreva scripts idênticos para processar um formulário: um em Flask (Python) e outro em PHP puro. Execute num servidor local XAMPP ou similar. Compare tempo de execução e legibilidade, registando observações numa tabela partilhada.
Desafio da Linha do Tempo: Injeção SQL Simulada
Configure uma base de dados SQLite simples com um servidor Python. Introduza inputs maliciosos via POST e observe falhas de segurança. Corrija com prepared statements e valide o impacto em discussões de grupo.
Rotação por Estações: Fluxo Cliente-Servidor
Crie estações com diferentes linguagens: Node.js para API, Python para autenticação, PHP para sessões. Grupos rotacionam, enviam requisições via curl e analisam logs do servidor.
Ligações ao Mundo Real
- Desenvolvedores back-end na Farfetch utilizam linguagens como Python e Node.js para gerir a lógica de negócio, bases de dados de produtos e processamento de encomendas, garantindo que a experiência de compra online seja fluida e segura para milhões de utilizadores.
- Engenheiros de software em empresas de jogos como a Miniclip desenvolvem servidores robustos usando tecnologias como Node.js para gerir o estado do jogo em tempo real, a autenticação de jogadores e a persistência de dados, suportando milhões de sessões de jogo simultâneas.
- Profissionais de segurança cibernética analisam o código back-end de aplicações financeiras, como as desenvolvidas pelo Millennium BCP, para identificar e corrigir vulnerabilidades que poderiam expor dados sensíveis de clientes, como informações de contas bancárias.
Ideias de Avaliação
Entregue a cada aluno um pequeno cartão. Peça-lhes para escreverem uma requisição HTTP simulada (e.g., GET /utilizadores/123) e descreverem em duas frases o que esperam que o servidor devolva como resposta. Inclua uma pergunta sobre a importância da segurança na resposta.
Projete um pequeno cenário: 'Uma aplicação de e-commerce precisa de uma funcionalidade para adicionar um novo produto ao catálogo. Qual linguagem de back-end (Python, Node.js, PHP) e qual framework (Flask, Express, Laravel) seria mais adequado e porquê? Justifique a sua escolha em 3-4 frases.'
Coloque a seguinte questão no quadro: 'Imagine que está a desenvolver um formulário de login. Quais são os dois principais riscos de segurança que deve considerar no lado do servidor e que medidas pode tomar para os mitigar?'. Dê 5 minutos para reflexão individual e depois abra para discussão em pequenos grupos.
Perguntas frequentes
Como um servidor web processa requisições HTTP?
Quais as diferenças entre Python, Node.js e PHP para back-end?
Como o ensino ativo ajuda no desenvolvimento back-end?
Porquê priorizar segurança no back-end?
Mais em Desenvolvimento de Aplicações e Web
Fundamentos de HTML: Estrutura e Semântica
Os alunos estruturam conteúdos de páginas web utilizando HTML, focando na semântica e acessibilidade.
2 methodologies
Estilização com CSS: Seletores e Propriedades
Os alunos estilizam visualmente páginas web usando CSS, aplicando seletores e propriedades para controlar o layout e a aparência.
2 methodologies
Layout Responsivo com CSS Flexbox e Grid
Os alunos criam designs responsivos que se adaptam a diferentes tamanhos de ecrã usando Flexbox e CSS Grid.
2 methodologies
Interatividade com JavaScript: DOM e Eventos
Os alunos introduzem-se à programação do lado do cliente para tornar as páginas web dinâmicas, manipulando o DOM e gerindo eventos.
2 methodologies
Validação de Formulários com JavaScript
Os alunos implementam validação de dados em formulários web usando JavaScript para melhorar a experiência do utilizador e a segurança.
2 methodologies
Introdução a APIs Web e AJAX
Os alunos exploram como as páginas web podem comunicar com servidores e outras aplicações usando APIs e requisições AJAX.
2 methodologies