Aldeia Numaboa
Um portal diferente em Português do Brasil
Informática da Aldeia

Tutoriais

Na Aldeia

Há 75 visitantes online

3308 registros
0 hoje
12 nesta semana
45 neste mês

Boas vindas: paulo

Estatística

Artigos: 1064
Leituras: 6042219
Arquivados: 21
Downloads: 533
Baixados: 172407
Glossário: 1208
Bibliografia: 25
Links: 90

Visitas de onde

Top 5:
Brasil flag 73%Brasil (49409)
Portugal flag 5%Portugal (3212)
EUA flag 3%EUA (2254)
Rússia flag 0%Rússia (265)
Holanda flag 0%Holanda (240)
67898 visitas de 101 países

Hoje:287
Ontem:2619
No mês:42083
Mês passado:25815
Total:67898
Recorde:3037
No dia:04.03.10
Leituras hoje:22153
Leituras Total:291581
Bots hoje:194
Dados desde:16.02.2010

Login



Kanji da hora




Faça contato






Seg

17

Nov

2008


21:16

Tutorial CGI - GET e POST PDF Imprimir Indique esta página
(2 votos, média 1.5 de 5)
Escrito por vovó Vicki   


O HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto - HTTP) é o protocolo de comunicação utilizado para a troca de dados entre um navegador e um servidor web. É o protocolo de comunicação que você aciona quando digita um endereço no seu navegador: http://www...
Existem vários métodos HTTP. Dois deles estão associados à transferência de dados de formulários e são muito importantes: o método GET e o método POST.

O método GET

GET, um dos métodos do HTTP, é acionado por meio de um formulário HTML através da diretiva method="get" incluída na tag <form>. Por meio deste método, os dados constantes no formulário são primeiramente transmitidos ao software servidor e este, por sua vez, armazena os dados temporariamente numa variável de contexto denominada QUERY_STRING.

Um script CGI, chamado através da diretiva action= incluída na tag inicial do formulário, precisa extrair os dados dessa variável de contexto para poder obter os dados que lhe foram enviados (veja em Tutorial CGI - Variáveis de Contexto). Usando PERL, por exemplo, é possível extrair esses dados com $dados_form = $ENV{'QUERY_STRING'};.

Quando um formulário HTML utiliza o método GET, o fluxo de dados é separado do endereço URL que chama a CGI através de um ponto de interrogação (?). Esta forma de endereçamento e separação pode ser observada no campo de endereços do navegador do usuário, logo após o formulário ter sido enviado. Você verá algo como http://www.meusite.com/meuscript.cgi?nome=Maria&id=123

O método POST

POST, também um método do HTTP, é acionado por meio de um formulário HTML através da diretiva method="post" incluída na tag <form>.

Este método faz com que os dados do formulário sejam diretamente transmitidos ao endereço que constar da diretiva action=. Um script CGI, chamado por action=, precisa extrair os dados através da entrada padrão (standart input) para poder obter os dados transmitidos pelo formulário. Pode-se, por exemplo, usar PERL e indicar read(STDIN, $Dados, $ENV{'CONTENT_LENGTH'});.

Observe que o programa precisa obter o valor da variável de contexto CONTENT_LENGTH para saber quantos caracteres precisam ser lidos através da entrada padrão. Isto é necessário porque não existe um caracter separador no fluxo de dados.

A importância de se conhecer o método

Se você quiser fazer uso de um script CGI pronto, precisa saber por qual dos dois métodos o script espera receber dados. Normalmente isto vem documentado pelo autor do script. Alguns scripts mais inteligentes testam ambos os métodos - neste caso, não importa o método de transferência de dados que você usar no formulário - ambos vão funcionar.

Se você for escrever seus próprios scripts, lembre-se de determinar o método que deve ser utilizado no formulário. Ou programe de maneira inteligente: deixe o script preparado para ambos.

Fluxo de dados na transmissão de dados de formulários

Um formulário HTML típico é composto por campos nominados (p.ex. para nome, endereço e comentário). Na transmissão do formulário preenchido para o servidor web / programa CGI, os dados precisam ser transmitidos de tal forma que o script CGI seja capaz de identificar os campos do formulário e os valores dos mesmos. É por isso que existe um método de codificação específico que separa os campos do formulário dos seus respectivos valores. Este método de codificação baseia-se nas seguintes regras:

  • Cada um dos elementos do formulário, inclusive seus valores, são separados entre si pelo símbolo & ("e" comercial ou ampersand).
  • O nome e o valor (dado) de um elemento do formulário são separados por = (sinal de igual).
  • Espaços em branco existentes nos dados (p.ex. várias palavras) são substituídos por + (sinal de adição).
  • Todos os caracteres ASCII estendidos, com valores de 128 a 255 (hexadecimal 80 até FF), são substituídos por um conjunto constituído pelo sinal de % (porcento) seguido do valor hexadecimal do caracter (p.ex. o nosso ç (c cedilha) é substituído por %E7).
  • Todos os caracteres utilizados nestas regras como delimitadores (ou seja, &, +, = e %) também são convertidos em hexadecimal seguindo a mesma regra para os caracteres ASCII estendidos.

Exemplo de Formulário

O exemplo a seguir mostra inicialmente o texto fonte de um formulário HTML e, logo abaixo, um gráfico mostrando como o formulário aparece num navegador. Logo abaixo do gráfico você poderá observar os dados codificados para a transmissão.

<form action="/cgi-bin/comentario.pl" method=post>
   <pre>
      Nome:   <input name="NomeUsuario" size=40>
      e-mail: <input name="MailUsuario" size=40>
      Texto:  <textarea rows=5 cols=34 name="Texto"></textarea>
      <input type=submit value="Enviar Formulário">
   </pre>
</form>
Formulário
NomeUsuario=Spider&MailUsuario= Este endereço de email está protegido contra SpamBots. Você precisa ter o JavaScript habilitado para vê-lo. & Texto=Isto+%E9+um+exemplo+de+coment%E1rio

Finalmentes

Bem, pessoal, é isto o que tenho para contar sobre a CGI. Se você leu todos os textos da série e aproveitou a leitura, valeu comemora

Última atualização ( Seg, 17.11.2008 21:39 )
 

Topo

Topo

Exceto onde especificamente citado, todo material deste site está sob Licença Creative Commons