Ir para o curso

Página 16: Tecnologias e conceitos no backend web

/pt/criacao-de-sites/o-que-e-um-site-dinamico/content/

Tecnologias e conceitos no backend web

O backend abrange tudo o que funciona no servidor que é onde as tecnologias e conceitos que permitem a criação de sites dinâmicos são tratados.

Backend web

No início dos anos 90 foi criado o primeiro mecanismo para que um servidor web pudesse responder com conteúdos dinâmicos: CGI. A especificação Common Gateway Interface permite que um servidor web estático delegue para outro programa a geração de conteúdo dinâmico para em seguida receber a resposta do navegador. Nos anos seguintes, outras soluções foram utilizadas, alguns servidores web adicionaram módulos para poderem executar o código sem o uso do CGI, outras tecnologias permitiram misturar as instruções de programação com as tags html e também criar servidores especificamente projetados para gerar conteúdos dinâmicos.

Sem entrar nos detalhes de cada linguagem ou plataforma, podemos falar em termos gerais sobre como funciona um site dinâmico, lembrando que, para cada requisição do navegador, há uma resposta do servidor. Um servidor web dinâmico expõe a solicitação e a resposta http, o que significa, em palavras mais simples, que temos acesso a partir de um código a essas duas estruturas na forma de uma estrutura de dados ou como um objeto.

Requisição HTTP

A requisição http contém vários valores que são úteis para saber qual conteúdo devemos gerar ou quais ações devemos executar, um dos mais úteis são os parâmetros que são uma série de nomes e valores em forma de texto. De acordo com o método da requisição, esses valores podem estar visíveis no final do url ou não visíveis no corpo da requisição. Em qualquer caso, podemos acessar esses nomes e valores a partir do nosso código.

Resposta HTTP

O corpo da resposta http varia de acordo com o conteúdo, pode ser texto plano que representa folhas de estilo, tags html ou código javascript, mas também pode ser conteúdo binário, como imagens ou documentos. O navegador poderá conhecer o tipo de conteúdo lendo o valor do cabeçalho Content-Type, por isso devemos definir o valor correto de nosso código no backend.

Sessão HTTP

A comunicação dentro de um ambiente web é  sem estado (stateless), o que significa que o servidor web não sabe se houve ou haverá uma comunicação com o mesmo cliente. Ela simplesmente responde cada requisição como se fosse uma solicitação nova e isolada. No contexto de um site dinâmico, é necessário manter um estado, isto é, poder saber quem está fazendo a requisição e os pedidos que foram feitos anteriormente.

Para conseguir isso é usado o conceito de sessão. No mundo da informática, uma sessão é um lapso de tempo em que uma série de mensagens são trocadas entre duas máquinas, em um site dinâmico uma sessão corresponde a um agrupamento de requisições e respostas de um http de um usuário. O conceito de sessão é importante porque permite ao servidor distinguir o usuário que faz as requisições para gerar o conteúdo apropriado, por exemplo, para segurança, não podemos mostrar opções administrativas para todos os usuários, mas apenas para aqueles que forneceram um usuário e uma senha válidos.

A sessão http geralmente é implementada gerando um código identificador exclusivo por usuário que é armazenado no navegador através de um cookie, o navegador sempre envia esse identificador em todas as requisições para o mesmo site enquanto que o servidor web armazena o identificador e associa algum dados importantes para reconhecer o usuário.

Códigos, templates e dados no backend web

No frontend não temos muitas opções em termos de linguagens de programação, até o momento, só temos JavaScript (embora possamos usar indiretamente outras linguagens capazes de produzir o código js). Já no backend temos múltiplas opções, podemos escrever a lógica do nosso site dinâmico em diversas linguagens e plataformas que veremos mais adiante. A partir do código do backend, temos acesso a duas coisas importantes no desenvolvimento de sites dinâmicos: os tampletes e os dados.

O sistema de templates do backend é a tecnologia que nos permite substituir apenas os dados dinâmicos em um documento html. Depende um pouco da linguagem ou da plataforma que usamos, mas, em geral, consiste em um arquivo de texto com determinadas especificações às quais alguns dados são aplicados, gerando assim um novo documento. Esses dados que mencionamos geralmente provêm de uma ou mais bases de dados. Os bancos de dados, que veremos depois, têm um papel muito importante no desenvolvimento de sites dinâmicos porque eles contêm as informações que precisamos para gerenciar e gerar o nosso conteúdo dinâmico.

/pt/criacao-de-sites/linguagens-e-frameworks/content/