
Em computação, aplicação web é um sistema de software acessado por meio de um navegador web, utilizando tecnologias da World Wide Web como HTML, CSS e JavaScript. Essas aplicações podem ser executadas em um servidor web (hospedagem remota) e são consumidas por um cliente (geralmente o navegador) via internet.
De forma geral, parte relevante do processamento ocorre no servidor. Em um comércio eletrônico, por exemplo, as páginas e funcionalidades acessadas pelo usuário são atendidas por máquinas conectadas à internet que executam regras de negócio e retornam resultados para renderização no navegador.
O servidor web recebe requisições e envia respostas HTTP ao cliente. Ao acessar um recurso, o navegador pode receber páginas HTML, imagens, PDFs ou outros tipos de conteúdo. Normalmente, o HTML contém instruções que orientam a apresentação na interface do usuário.
As primeiras aplicações web surgiram na década de 1990 com navegadores gráficos e a popularização da internet. A maioria dos sites era estática, oferecendo conteúdo fixo. Com o avanço de linguagens do lado do servidor, como PHP, ASP e Perl, tornou-se possível gerar páginas dinâmicas e interativas.
No início dos anos 2000, a adoção de AJAX permitiu carregamentos assíncronos, melhorando a experiência do usuário. Posteriormente, frameworks e bibliotecas como Angular, React e Vue.js facilitaram a criação de interfaces ricas no lado do cliente. Mais recentemente, as Progressive Web Apps (PWA) combinam recursos da web com funcionalidades de aplicativos nativos, como notificações push e operação offline.
O servidor web, por si só, fornece conteúdo estático. Para gerar páginas dinâmicas e persistir dados, utiliza-se software adicional (por exemplo, servlets/back-ends que tratam a lógica de aplicação e conectam a bancos de dados).
Falhas de segurança podem ocorrer em diferentes fases do desenvolvimento; vulnerabilidades em aplicações web impactam integridade, disponibilidade e confidencialidade dos dados.
O HTTP adota um modelo de comunicação por requisições (requests) e respostas (responses). Uma requisição ocorre quando o cliente solicita um recurso ao servidor; este envia uma resposta, que o cliente interpreta para processar e exibir o conteúdo. Quando a resposta contém HTML, o código é incluído no corpo da mensagem e renderizado pelo navegador.
Entre os métodos mais usados estão: GET (recuperação de recursos), POST (envio de dados no corpo da requisição), PUT e PATCH (atualizações integrais ou parciais), DELETE (remoção) e HEAD (apenas cabeçalhos).