Aplicações Orientadas a Múltiplas Páginas
Nas aplicações para web orientadas a múltiplas páginas o usuário interage com a aplicação navegando pelas suas páginas da mesma forma como faz para navegar pelas páginas de um web site.
Cada página possui um objetivo específico. Por exemplo, pode haver uma página inicial que apresenta informações gerais sobre a aplicação, como seu nome, versão, autores, formas de contato, etc. Pode haver outra página dedicada ao processo de login, quando o usuário informa seu identificador e sua senha. Outra pode conter um formulário que deve ser preenchido pelo usuário. Outra ainda pode conter um relatório.
As páginas são 100% geradas no lado servidor e são enviadas como resposta à requisição HTTP feita pelo usuário, tipicamente clicando sobre um link ou sobre um botão.
O papel dos navegadores limita-se a renderizar as páginas HTML que recebe do programa servidor. Renderizar significa exbir um texto escrito em HTML de forma que possa ser lido por qualquer pessoa.
O apelo destas aplicações, a primeira geração das aplicações para web, era que os usuários poderiam executar aplicativos extremamente complexos mesmo possuindo um computador bastante modesto em termos de hardware. O único requisito é que esse computador tivesse acesso à internet.
Toda requisição HTTP enviada pelo navegador tem por objetivo obter uma página HTML do servidor. Esta página pode ser estática ou dinâmica.
Páginas Estáticas
Uma página estática é aquela cujo conteúdo foi definido durante o desenvolvimento da aplicação. Tipicamente o conteúdo é armazenado em um arquivo e a requisição enviada pelo navegador pode ser entendida como "prezado servidor, envie o conteúdo do arquivo indicado pela URL".
Por exemplo, se o navegador envia a requisição http://sistema1.borat.com/relatorioSemanal.html
então o programa servidor deve enviar uma resposta HTTP cujo corpo contém o conteúdo do arquivo relatorioSemanal.html
. O algoritmo executado pelo servidor poderia ser algo como:
- prepare uma resposta HTTP
- analise a URL da requisição e extraia o nome do arquivo
- abra o arquivo
- leia o conteúdo do arquivo e adicione o conteúdo na resposta HTTP
- feche o arquivo
- envie a resposta HTTP ao navegador
Como o conteúdo do arquivo é sempre o mesmo, o servidor poderia guardar uma cópia do conteúdo do arquivo em memória. Com isso ele conseguiria enviar a resposta HTTP muito mais rapidamente.
Páginas Dinâmicas
Uma página dinâmica tem o seu conteúdo definido em tempo de execução, ou seja, é definido como o resultado da execução de um algoritmo específico para atender à requisição HTTP.
Para cada requisição HTTP há um algoritmo específico e por isso não faz mais sentido dizer que a URL indica o arquivo desejado. A URL agora indica o algoritmo que deve ser executado para gerar a página HTML.
De modo geral, o algoritmo poderia ser algo como:
- prepare uma resposta HTTP
- analise a URL da requisição e extraia a vontade do usuário, possivelmente incluindo informações adicionais contidas no corpo da requisição (como por exemplo os dados de um formulário que foi preenchido pelo usuário).
- execute o algoritmo associado à vontade do usuário. Talvez essse algoritmo implique num acesso a um banco de dados para ler/obter/alterar/apagar dados.
- o resultado da execução do algoritmo é utilizado para definir um texto HTML que é, por fim, adicionado na resposta HTTP
- envie a resposta HTTP ao navegador