CGI é a abreviação de Common Gateway Interface, é uma interface simples para execução de programas, Softwares ou Gateways sob um
Servidor de informações de modo independente de plataforma.
A interface está em uso por Servidores HTTP desde 1993. O texto a seguir, é um
resumo, com livre tradução da RFC 3875, que define os padrões para o CGI/1.1 em sistemas do tipo
UNIX.
CGI permite que um Servidor HTML e um script CGI, compartilhem a responsabilidade pela resposta a uma requisição de um cliente HTTP. Uma
requisição HTTP é formada por uma URI - Uniform Resource Identifier - um método e várias informações auxiliares fornecidas por um protocolo
de transporte.
CGI define parâmetros abstratos, conhecidos como meta-variáveis que descrevem a requisição do cliente. Junto com uma interface concreta de
programação, isso especifica uma API independente de plataforma entre o script e o Servidor HTTP.
O Servidor é responsável por manter a conexão, a transferência de dados, o transporte e as características de rede relacionadas com a requisição
do cliente, entretanto, o script CGI manipula as funções do lado da aplicação, como o acesso aos dados e o processamento do documento.
A especificação CGI utiliza alguns termos herdados da definição de HTTP/1.1, entretanto, alguns termos podem não ter o exato sentido original.
Por exemplo:
- meta-variáveis : Um parâmetro que transporta a informação a partir do Servidor para o script. Necessariamente não é uma variável de
ambiente, apesar de ser implementada comumente deste modo.
- Script : O software que é invocado por um Servidor baseado na interface CGI. Necessariamente não precisa ser um programa stand-alone,
mas uma biblioteca dinamicamente carregada, ou compartilhada, ou ainda, uma sub-rotina do Servidor. Pode ser um conjunto de instruções
interpretadas em tempo de execução, tradicionalmente chamado de script por programadores.
- Servidor - O programa que invoca o script, a fim de atender às solicitações do cliente.