Вы находитесь на странице: 1из 11

Programao Internet Prof.

Marcio Momberger

CGI
A interface de Gateway Comum (Common Gateway Interface - CGI) a interface entre um servidor do Protocolo de Transporte de Hipertexto (HyperText Transport Protocol HTTP, o programa que gera pginas para um site Web) e os outros recursos do computador host do servidor

CGI
CGI no realmente uma linguagem ou um protocolo no sentido mais estrito desses termos. , na realidade, apenas um conjunto de variveis de nomes e convenes comuns para a passagem de informaes do servidor para o cliente e vice-versa.

CGI
Para utilizar o CGI preciso um servidor Web com suporte a ele, e uma linguagem de programao.
As linguagens mais utilizadas so os scripts shell, a linguagem C e o Perl (Practical Extraction and Report Language).

Processo CGI
1. 2.

3.
4. 5.

6.
7.

O usurio chama um programa CGI dando um clique em um link ou pressionando um boto; O browser Web entra em contato com o servidor, solicitando permisso para rodar o programa CGI; O servidor Web verifica a configurao e acessa os arquivos para garantir que o solicitante possa ter acesso ao programa CGI; O servidor Web verifica se o programa CGI existe; Se ele existe, o programa CGI executado; A sada produzida pelo programa CGI retornada para o browser Web; O browser Web apresenta a sada da CGI.

Variveis Padro CGI


Em CGI, a maioria da entrada passada em variveis de ambiente que so definidas pelo servidor HTTP. Algumas dessas variveis so padronizadas na especificao CGI; outras so particulares aos browsers, servidores, sites, ou outros fatores. Quando o programa em CGI for chamado, diversas variveis de ambiente j estaro preparadas para lhe dar informaes sobre o usurio, sua configurao de software e o ambiente do servidor. A seguir veremos algumas destas variveis:

Variveis Padro CGI


HTTP_USER_AGENT Contm o nome e a verso do browser do usurio no formato nome/biblioteca da verso/verso. HTTP_ACCEPT Oferece os formatos MIME que o browser pode aceitar. O formato tipo/subtipo. REMOTE_HOST Ter o endereo IP na notao decimal pontuada. REMOTE_ADDR Ter o texto do nome do host equivalente ao endereo. Nem sempre vem preenchido, por o servidor ter a resoluo reversa desabilitada. SERVER_SOFTWARE Contm 0 nome e a verso do software do servidor no formato nome/verso. SERVER_NAME Contm o nome de host do servidor, pseudnimo DNS ou endereo IP. GATEWAY_INTERFACE Contm a reviso da especificao CGI que este servidor utiliza no formato CGI/reviso.

Variveis Especficas
As variveis a seguir so especficas do pedido, pois mudam com base no pedido especfico sendo submetido. QUERY_STRING Provavelmente a mais importante destas variveis. Este o mtodo mais comum para passar informaes a um programa em CGI. Geralmente, um pedido feito para um programa CGI incluindo um ? seguido por informaes extras no URL. Por exemplo, se o URL http://www.bearnet.com/cgi/test.cgi?quick.brown.fox for submetida, todos os caracteres aps o ? sero colocados na varivel QUERY_STRING. O valor da varivel ser quick.brown.fox. A varivel QUERY_STRING nunca codificada ou decodificada antes que o programa CGI a apanhe. Ela formada como um stream de pares nome=valor separados por um caractere &. A parte nome vem diretamente do tag INPUT no documento HTML. Decifrar os dados de um formulrio uma questo de dividir as partes nome e valor da string.

Variveis Especficas

SCRIPT_NAME o nome do programa CGI. SERVER_PROTOCOL Contm o nmero de reviso do protocolo do qual veio o pedido. No formato protocolo/reviso, por exemplo, HTTP/1.0. SERVER_PORT o nmero da porta de onde veio o pedido. Este campo geralmente ser 80, a porta padro para pedidos HTTP. CONTENT_TYPE preenchido para consultas que as informaes anexadas, como pedidos de POST. Ela o tipo de contedo MIME no formato tipo/subtipo. CONTENT_LENGTH o nmero de bytes de dados.

Mtodo GET
O mtodo GET quando utilizado receber os dados do formulrio na varivel QUERY_STRING, e a varivel REQUEST_METHOD ter a palavra GET. Os caracteres de espao so codificados com o sinal de (+), e a maioria dos caracteres no-alfanumricos codificada como nmero hexadecimais introduzidos por um caractere de porcentagem (%).

Mtodo POST
O mtodo POST passa os mesmos dados do mtodo GET, no mesmo formato s que usando o stream de arquivo da entrada padro (stdin). Agora a QUERY_STRING est vazia, mas CONTENT_TYPE e CONTENT_LENGTH esto preenchidas. Os dados em si no aparecem em qualquer uma das variveis. Para obt-los, voc deve ler o nmero de bytes de CONTENT_LENGTH em stdin. E analis-los como faria com uma string de consulta do tipo GET. Utiliza o mtodo POST para driblar o tamanho mximo da vriavel de ambiente QUERY_STRING.

Вам также может понравиться