A Common Gateway Interface (CGI) é um protocolo padrão para servidores da Web executar programas externos, normalmente scripts e retornar a saída ao cliente da Web (geralmente um navegador da Web). Ele atua como uma ponte entre o servidor da web e outros aplicativos. Aqui está um colapso de como funciona:
1.
Solicitação do cliente: Um usuário interage com uma página da web (por exemplo, preenche um formulário, clica em um link) que aciona uma solicitação ao servidor da Web. Essa solicitação geralmente inclui parâmetros ou dados que o script precisa processar.
2.
servidor recebe solicitação: O servidor da Web recebe a solicitação e identifica que ele precisa ser tratado por um script CGI. Isso geralmente é determinado pelo URL (por exemplo, uma extensão `.cgi`) ou configuração do servidor.
3.
servidor executa o script: O servidor chama o script CGI. Isso envolve a criação de um novo processo para a execução do script, garantindo o isolamento de segurança entre o script e o próprio servidor. Isso é crucial, pois um script CGI comprometido pode afetar potencialmente todo o servidor.
4.
Processos de script Solicitação: O script recebe entrada do servidor, incluindo os parâmetros de solicitação do cliente (como dados do formulário), variáveis de ambiente (como o endereço IP do usuário) e entrada padrão. Em seguida, processa essas informações e gera saída.
5.
Script envia resposta: O script envia sua saída de volta ao servidor da Web por meio de saída padrão (STDOUT) e erro padrão (STDERR). A saída normalmente inclui os cabeçalhos HTTP (código de status, tipo de conteúdo etc.) e o conteúdo real a ser exibido no navegador (por exemplo, html, imagens, texto).
6. O servidor envia resposta ao cliente: O servidor da Web recebe a saída do script, verifica os cabeçalhos HTTP e envia a resposta de volta ao navegador da Web do cliente. O navegador renderiza o conteúdo recebido.
aspectos e limitações principais: *
Segurança: Como os scripts CGI são executados como processos separados, medidas de segurança cuidadosas são vitais. Quaisquer vulnerabilidades em um script CGI podem ser exploradas.
*
desempenho: Criar um novo processo para cada solicitação pode ser intensivo em recursos, especialmente sob carga pesada. Isso leva a um desempenho mais lento em comparação com abordagens mais modernas.
*
Independência da linguagem: Os scripts CGI podem ser gravados em qualquer linguagem de programação que possa produzir a saída necessária. Essa flexibilidade é uma vantagem significativa.
*
Variáveis de ambiente: O servidor da Web fornece um conjunto de variáveis de ambiente para o script CGI, oferecendo informações contextuais importantes.
*
cabeçalhos: O script é responsável pela saída dos cabeçalhos HTTP corretos para indicar o tipo de conteúdo (por exemplo, `text/html`,` image/jpeg`).
alternativas modernas: Embora o CGI ainda esteja funcional, é amplamente substituído por tecnologias mais eficientes e seguras como:
*
fastcgi: Melhora o desempenho mantendo os processos de script vivos, evitando a sobrecarga da criação de processos para cada solicitação.
*
wsgi (python): Uma interface padronizada entre aplicativos da Web Python e servidores da Web.
*
alternativas de CGI para outros idiomas: A maioria das estruturas da web moderna oferece mecanismos internos para lidar com solicitações com mais eficiência do que confiar diretamente no CGI.
Em resumo, o CGI fornece uma maneira fundamental para os servidores da Web interagirem com programas externos, mas sofre de desafios de desempenho e segurança que levaram ao seu declínio em favor de abordagens mais modernas. A compreensão do CGI ainda é útil para compreender a história e os princípios subjacentes do desenvolvimento de aplicativos da Web.