CGI é uma interface de gateway comum. Como o nome diz, é uma interface de gateway "comum" para tudo. É tão trivial e ingênuo do nome. Sinto que entendi isso e senti isso toda vez que encontrei essa palavra. Mas, francamente, eu não fiz. Ainda estou confuso.
Sou programador PHP com experiência em desenvolvimento web.
solicitação do usuário (cliente) para a página ---> servidor da web (-> interpretador PHP incorporado) ----> Script do lado do servidor (PHP) ---> MySQL Server.
Agora diga que meu script PHP pode obter resultados do servidor MySQL e do servidor MATLAB e de algum outro servidor.
Então, agora o PHP Script é o CGI? Porque a sua interface para o servidor web e todos os outros servidores? Eu não sei. Às vezes eles chamam CGI, uma tecnologia e outras vezes chamam CGI de um programa ou outro servidor.
O que exatamente é CGI?
Qual é o problema
/cgi-bin/*.cgi
? O que há com isso? Não sei para que serve essecgi-bin
diretório no servidor. Não sei por que eles têm extensões * .cgi.Por que Perl sempre atrapalha? CGI e Perl (idioma). Eu também não sei o que há com esses dois. Quase o tempo todo eu continuo ouvindo esses dois em combinação "CGI & Perl". Este livro é outro ótimo exemplo de programação CGI com Perl . Por que não "Programação CGI com PHP / JSP / ASP"? Eu nunca vi essas coisas.
A programação CGI em C me confunde bastante. " em c " ?? A sério?? Eu não sei o que dizer. Estou apenas confuso. " em c " ?? Isso muda tudo. O programa precisa ser compilado e executado. Isso muda completamente minha visão da programação na web. Quando eu compilar? Como o programa é executado (porque será um código de máquina, portanto, ele deve ser executado como um processo independente). Como ele se comunica com o servidor web? IPC? e interface com todos os servidores (no meu exemplo MATLAB e MySQL) usando programação de soquete? Estou perdido!!
As pessoas dizem que o CGI está obsoleto e não está mais em uso. É assim mesmo? Qual é a atualização mais recente?
Uma vez, encontrei uma situação em que tinha que dar acesso à solicitação HTTP PUT ao servidor da web (Apache HTTPD). É uma longa volta. Então, tanto quanto me lembro, foi o que fiz:
Editei o arquivo de configuração do Apache HTTPD para dizer ao servidor da web para passar todas as solicitações HTTP PUT para alguns
put.php
(eu tive que escrever esse script PHP)Implemente o put.php para lidar com a solicitação (salve o arquivo no local mencionado)
As pessoas disseram que eu escrevi um script CGI. Sério, eu não tinha ideia do que eles estavam falando.
- Eu realmente escrevi um script CGI?
Espero que você entenda qual é a minha confusão. (Porque eu mesmo não sei onde estou confuso). Peço a vocês que mantenham sua resposta o mais simples possível. Realmente não consigo entender nenhuma terminologia técnica sofisticada. Pelo menos não neste caso.
EDITAR:
Encontrei este incrível tutorial "A programação CGI é simples!" - Tutorial CGI , que explica os conceitos da maneira mais simples possível. Depois de ler este artigo, convém ler Introdução à programação CGI em C para complementar seu entendimento com exemplos de código reais. Também adicionei esses links a este tutorial no artigo da Wikipedia: http://en.wikipedia.org/wiki/Common_Gateway_Interface