Informática Numaboa - Tutoriais e Programação
Tutorial CGI - Funcionamento
Seg 17 Nov 2008 20:34 |
- Detalhes
- Categoria: Perl e CGI
- Atualização: Segunda, 17 Novembro 2008 21:07
- Autor: vovó Vicki
- Acessos: 7663
Meus mais sinceros agradecimentos a Stefan Münz, principal fonte de referência para este tutorial e autor de todos os exemplos nele contidos. Seu livro sobre HTML, escrito em alemão, é um dos melhores (senão o melhor) que já encontrei e está à disposição na web gratuitamente com uma boa parte já traduzida para o inglês.
Como funciona a CGI
A CGI é um programa instalado num servidor da WWW que pode ser acessado através de páginas HTML. Além disso, a própria CGI pode gerar código HTML e enviá-lo a um navegador.
Quando você está na web e utiliza um mecanismo de busca, compra alguma coisa, deixa um recado num livro de visitas ou vê um contador de páginas, podes crer... por trás destes serviços está uma CGI (ou uma plataforma semelhante).
Um programa CGI, quando solicitado, manipula dados. Esta manipulação de dados ocorre no servidor web. Os programas CGI podem gravar (salvar) dados no servidor. Por exemplo, seu acesso a uma página com contador ou seu recado no livro de visitas ficam gravados no servidor web. Os programas CGI também podem ler dados do servidor e utilizá-los para gerar código HTML. Este código HTML "dinâmico" é transmitido para o navegador que chamou a CGI e apresentado na forma de uma página HTML. Por exemplo, o número de acessos de uma página ou todos os recados de um livro de visitas.
O acesso à CGI é proporcionado por software instalado no servidor web. Geralmente este software de suporte à CGI prevê que os programas CGI estejam instalados num determinado diretório, geralmente denominado cgi-bin. Alguns servidores web permitem que você crie seus próprios diretórios para abrigar os programas CGI, como também existem servidores que não disponibilizam acessos a CGI... tem de tudo.
Como já foi visto na introdução, não existe uma "linguagem" CGI. Teoricamente, qualquer linguagem de programação pode ser utilizada, porém ... e, e aí está o primeiro porém... o programa CGI precisa ser compilado para o sistema do servidor ou o servidor precisa disponibilizar um interpretador em tempo real que execute seu programa. Se, por exemplo, o servidor for UNIX, ele pode executar programas CGI escritos em C que tenham sido compilados utilizando-se um compilador UNIX-C. Se o servidor for um Windows-NT, os programas CGI podem também ser arquivos .EXE gerados por compiladores de 32 bits para C, Pascal, Visual Basic, etc. Atualmente, a maioria dos programas CGI é escrita em Perl ou UNIX-Shell. A linguagem UNIX-Shell é interpretada por todos os servidores UNIX. Para a linguagem Perl ou PHP, o servidor precisa ter um interpretador correspondente instalado (a maioria tem).
Situação típica de um mecanismo de busca na web
No exemplo acima, o usuário pode digitar dados num formulário de uma página HTML para solicitar uma pesquisa num banco de dados. Após enviar o formulário para o servidor web, o programa CGI é chamado. O programa CGI transforma os dados enviados pelo usuário numa solicitação ao banco de dados. O tipo de solicitação depende essencialmente do banco de dados disponível. Existe uma linguagem padrão internacional, chamada SQL, que é utilizada com frequência. O banco de dados envia o resultado da pesquisa para o programa CGI solicitante ou grava o resultado num arquivo que possa ser lido pela CGI. O programa CGI gera então um código HTML, utilizando o resultado da pesquisa como dados para a página HTML. Em seguida, envia o código HTML para o servidor que, por sua vez, o envia para o navegador que fez a solicitação. No monitor do usuário, a página com o formulário de solicitação é substituída pela nova página, gerada dinamicamente pela CGI e que contém o resultado da pesquisa.
Plataforma CGI
A CGI permite que um navegador de Internet (browser) execute programas residentes no servidor web. Tais programas (ou scripts) podem processar dados recebidos de formulários de páginas HTML, além de armazenar e ler dados no servidor. Dessa forma, as páginas HTML tornam-se superfícies para "Aplicativos", por exemplo em compras ou buscas na Internet.
A assim chamada plataforma CGI está à disposição em servidores web especialmente configurados. Você também pode instalar um servidor web em seu PC local e disponibilizar uma plataforma CGI. Se você tiver suas páginas web num provedor com um servidor web público, você pode usar a plataforma CGI desse servidor para rodar seus próprios scripts CGI. Basta seu provedor lhe dar acesso à plataforma CGI.
A plataforma CGI é constituída por:
- Um diretório específico no servidor onde seus scripts CGI devem ficar. Geralmente este diretório tem o nome de cgi-bin ou cgi-local. Os programas ou scripts CGI só podem ser executados se estiverem neste diretório especificado pelo provedor. É comum que estes diretórios já façam parte da sua área de trabalho quando você abre uma conta no provedor, não havendo necessidade de criá-los. Basta fazer o upload dos seus scripts CGI para o diretório pré-definido.
- Alguns provedores permitem que você ponha seus scripts CGI no diretório que desejar, com o nome que desejar. Basta dar um nome para seu script terminado em .cgi (por exemplo, meuScript.cgi) para acessá-lo sem problema.
- Uma porção de dados, os quais são armazenados pelo servidor, que o script CGI possa ler (e, em alguns casos, precisa ler) para que possa processar dados. O servidor web armazena esses dados nas denominadas variáveis de contexto.
A definição da plataforma CGI está sempre sendo atualizada. Outras plataformas para a execução de programas na web, mais novas, introduzidas por empresas comerciais como a Netscape ou a Microsoft, fazem cada vez mais concorrência à CGI. São exemplos a plataforma API da Netscape e a ISAPI da Microsoft, ambas otimizadas para seus próprios softwares servidores. Desta forma, essas empresas conseguiram um aumento de performance apreciável em relação à CGI. As principais vantagens da CGI, a exemplo do HTML, continuam sendo sua independência comercial, sua gratuidade e sua padronização universal.
As linguagens de programação
PERL é ainda uma das linguagens de programação mais utilizadas para scripts CGI. O motivo é que a PERL possui funções poderosas, por exemplo para tratar strings ou para a leitura e gravação de dados. O interpretador PERL, necessário para rodar um script em PERL, está à disposição como freeware para quase todos os sistemas operacionais, além de estar instalado na maioria dos servidores da Internet.
A PHP tem um lugar de destaque na atualidade. Possui funções tão poderosas quanto a Perl e oferece a possibilidade de ser enxertada diretamente numa página HTML. Além disso, a facilidade que oferece para trabalhar com bancos de dados torna-a extremamente poderosa. PHP é opensource e gratuita.
A Python é outro exemplo que merece ser citado.
Se você tiver experiência em outras linguagens de programação, por exemplo C, Pascal ou Fortran, pode utilizá-las na elaboração de um script CGI. O problema com estas linguagens é que o programa com elas produzido precisa ser compilado e linkado no sistema onde será utilizado. Se, por exemplo, você produzir um programa em C e esse programa tiver que rodar num sistema UNIX, seu programa em C precisa ser compilado sob UNIX. O compilador C que você eventualmente tenha no seu PC com DOS/Windows não vai lhe servir de nada.
Outras fontes
The Common Gate Interface - Documentação e Especificação da NCSA