Saltar para o conteúdo
Aplicações Informáticas B · 12.º Ano · Desenvolvimento de Aplicações e Web · 2o Periodo

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.

Aprendizagens EssenciaisDGE: Secundário - Algoritmia e ProgramaçãoDGE: Secundário - Redes e Sistemas de Comunicação

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

  1. Como um servidor web processa requisições e envia respostas aos clientes?
  2. Compare as características de diferentes linguagens de programação back-end (e.g., Python, Node.js, PHP).
  3. 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

Introdução à Programação com Python/JavaScript

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.

Conceitos Fundamentais de Redes de Computadores

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.

Estruturas de Dados Básicas

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 WebUm 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 HTTPUma 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 HTTPUma 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 RESTfulUm 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.
MiddlewareFunçõ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 atividades

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

Bilhete de Saída

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.

Verificação Rápida

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.'

Questão para Discussão

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?
O servidor recebe a requisição via porta 80 ou 443, interpreta o método (GET, POST), executa o código back-end correspondente e gera uma resposta com status code, headers e body. Ferramentas como Wireshark ou logs de servidor permitem aos alunos rastrear este fluxo. Esta visualização prática clarifica o ciclo request-response e prepara para depuração avançada em projetos reais.
Quais as diferenças entre Python, Node.js e PHP para back-end?
Python oferece sintaxe clara e frameworks como Django para apps complexos; Node.js usa JavaScript assíncrono para alto tráfego; PHP é rápido para scripts web dinâmicos com MySQL. Atividades comparativas mostram Python ideal para dados, Node.js para real-time e PHP para legado, ajudando na seleção contextualizada.
Como o ensino ativo ajuda no desenvolvimento back-end?
O ensino ativo, como configurar servidores locais e testar APIs em grupos, torna conceitos abstractos concretos. Alunos depuram erros em tempo real, colaboram em vulnerabilidades e iteram código, desenvolvendo competências práticas. Esta abordagem aumenta retenção em 30-50% comparado a aulas expositivas, fomentando autonomia e pensamento crítico alinhado ao currículo.
Porquê priorizar segurança no back-end?
Back-end acede a dados sensíveis, expondo riscos como SQL injection ou XSS se não protegido. Práticas como hashing de passwords, HTTPS e validação evitam breaches. Simulações hands-on demonstram impactos reais, motivando alunos a integrar segurança desde o início, essencial para standards DGE e apps profissionais.