Como funcionam as aplicações web em PHP


As aplicações web possuem um comportamento diferente das aplicações desktop convencionais. Uma das principais diferenças é a necessidade de sincronismo no envio e recebimento de dados.

Enquanto aplicações desktop podem trabalhar de forma assíncrona e automática, as aplicações web necessitam que um evento seja disparado para que uma requisição seja enviada ao servidor web.

Obviamente que essa necessidade de sincronismo das aplicações web pode ser quebrada por uso de técnicas como o AJAX – Assincronous Javascript and XML – mas essa técnica não será abordada neste artigo.

Uma aplicação web, e neste exemplo falo do PHP, pode ser considerada como do tipo “Cliente/Servidor”, ou seja, um cliente solicita algo a um servidor e este por sua vez sempre responde ao cliente.

O digrama a seguir representa de forma simplificada um esquema de funcionamento de uma aplicação web PHP.

esquema web

No nó 1 tem-se o CLIENTE, que para efeito didático considera-se como cliente qualquer navegador web. Um navegador web funcionará como interface de exibição das páginas HTML processadas pelo servidor Web.

O nó 2 é a operação de REQUEST. Um request (ou requisição) é a solicitação enviada de um cliente (navegador web) a um servidor web. Esta requisição é disparada por um evento no lado cliente e sempre aguardará por uma posterior resposta (response) do servidor web acionado.

O nó 3 é o SERVIDOR WEB (web server). Ele é resposável por hospedar as páginas web e processar as requisições recebidas, devolvendo-as ao cliente por meio das respostas (response). Em teoria, um serividor web entende apenas HTML. Qualquer requisição que não seja HTML será redirecionada ao INTERPRETADOR (nó 4), que por sua vez transformará todo output em HTML, devolvendo o fluxo ao Servidor Web.

O INTERPRETADOR (nó 4) processa códigos em linguagem de programação (neste artigo segue-se a premissa do PHP), transformando a saída (output) em HTML. O dispositivo de saída padrão do interpretador PHP é o Servidor Web. Em outras palavras, todo código HTML gerado pelo PHP (nó 5) será enviado ao Servidor Web como resposta a requisição do cliente.

Quando o Servidor Web recebe todo o fluxo HTML gerado pelo interpretador PHP (nó 5), este responde ao cliente, sincronizando a requisição recebida (nó 6).
Dessa forma, para cada requisição (REQUEST) haverá uma resposta (RESPONSE) correspondente. Esse par de REQUEST/RESPONSE é o responsável pelo sincronismo das aplicações web. Existem formas de mascarar esta interação, mas serão abordadas em um outro artigo.