Common gateway interface (CGI)

Veja também FastCGI.

A interface de gateway comum (CGI) é uma forma padrão de um servidor Web passar um pedido de um usuário Web para um programa de aplicação e receber dados de volta para encaminhar para o usuário. Quando o usuário solicita uma página Web (por exemplo, clicando em uma palavra destacada ou digitando um endereço de site), o servidor envia de volta a página solicitada. Entretanto, quando um usuário preenche um formulário em uma página da Web e o envia, ele geralmente precisa ser processado por um programa de aplicação. O servidor Web normalmente passa as informações do formulário para um pequeno programa de aplicação que processa os dados e pode enviar de volta uma mensagem de confirmação. Este método ou convenção para passar dados para frente e para trás entre o servidor e a aplicação é chamado de interface de gateway comum (CGI). Ela faz parte do Protocolo de Transferência de Hipertexto da Web (HTTP).

Se você estiver criando um site da Web e quiser que uma aplicação CGI obtenha controle, você especifica o nome da aplicação no localizador uniforme de recursos (URL) que você codifica em um arquivo HTML. Este URL pode ser especificado como parte das tags FORMS se você estiver criando um formulário. Por exemplo, você pode codificar:

<FORM METOD=POST ACTION=http://www.mybiz.com/cgi-bin/formprog.pl>

e o servidor em "mybiz.com" passaria o controle para a aplicação CGI chamada "formprog.pl" para registrar os dados inseridos e retornar uma mensagem de confirmação. (O ".pl" indica um programa escrito em PERL mas outras linguagens poderiam ter sido usadas.)

A interface de gateway comum fornece uma maneira consistente para os dados serem passados do pedido do usuário para o programa da aplicação e de volta para o usuário. Isto significa que a pessoa que escreve o programa aplicativo pode se certificar de que ele seja usado não importa qual sistema operacional o servidor usa (PC, Macintosh, UNIX, OS/390, ou outros). É simplesmente uma forma básica de passar informações do servidor Web sobre o seu pedido para o programa de aplicação e vice-versa.

Porque a interface é consistente, um programador pode escrever uma aplicação CGI em várias linguagens diferentes. As linguagens mais populares para aplicações CGI são: C, C++, Java e PERL.

Uma alternativa a uma aplicação CGI é a Active Server Page (ASP) da Microsoft, na qual um script embutido em uma página Web é executado no servidor antes que a página seja enviada.