CGI ist ein Common Gateway Interface. Wie der Name schon sagt, ist es eine "gemeinsame" Gateway-Schnittstelle für alles. Es ist so trivial und naiv vom Namen her. Ich habe das Gefühl, dass ich das verstanden habe, und zwar jedes Mal, wenn ich auf dieses Wort gestoßen bin. Aber ehrlich gesagt, habe ich es nicht. Ich bin immer noch verwirrt.
Ich bin ein PHP-Programmierer mit Erfahrung in der Webentwicklung.
Benutzer (Client) fordert eine Seite an ---> Webserver(->eingebettetes PHP Interpreter) ----> Serverseitiges (PHP) Skript ---> MySQL Server.
Angenommen, mein PHP-Skript kann Ergebnisse von einem MySQL-Server, einem MATLAB-Server und einem anderen Server abrufen.
Also ist das PHP-Skript jetzt das CGI? Weil es die Schnittstelle zwischen dem Webserver und allen anderen Servern ist? Ich weiß es nicht. Manchmal nennen sie CGI, eine Technologie & andere Zeiten, die sie CGI ein Programm oder einen anderen Server nennen.
-
Was genau ist CGI?
-
Was ist das Problem mit
/cgi-bin/*.cgi
? Was ist hier los? Ich weiß nicht, was das istcgi-bin
Verzeichnis auf dem Server für. Ich weiß nicht, warum sie *.cgi-Erweiterungen haben. -
Warum kommt Perl immer in die Quere. CGI & Perl (Sprache). Ich weiß auch nicht, was es mit diesen beiden auf sich hat. Fast ständig höre ich diese beiden in Kombination "CGI & Perl". Dieses Buch ist ein weiteres gutes Beispiel CGI-Programmierung mit Perl . Warum nicht "CGI-Programmierung mit PHP/JSP/ASP"? Ich habe so etwas noch nie gesehen.
-
CGI-Programmierung in C verwirrt mich sehr. " in C "?? Ernsthaft? Ich weiß nicht, was ich sagen soll. Ich bin nur verwirrt. " in C "?? Das ändert alles. Das Programm muss kompiliert und ausgeführt werden. Das ändert meine Sicht auf die Webprogrammierung völlig. Wann muss ich kompilieren? Wie wird das Programm ausgeführt (da es sich um einen Maschinencode handelt, muss es als unabhängiger Prozess ausgeführt werden). Wie kommuniziert es mit dem Webserver? IPC? und die Verbindung mit allen Servern (in meinem Beispiel MATLAB und MySQL) über Socket-Programmierung? Ich bin ratlos!!
-
Die Leute sagen, dass CGI veraltet ist und nicht mehr verwendet wird. Ist das wirklich so? Was ist die letzte Aktualisierung?
Einmal war ich in einer Situation, in der ich HTTP-PUT-Anfrage Zugang zu folgenden Daten geben musste Webserver (Apache HTTPD) geben musste. Es ist eine lange zurück. Also, soweit ich mich erinnere was ich tat:
Bearbeiten Sie die Konfigurationsdatei von Apache HTTPD, um dem Webserver mitzuteilen, dass er alle HTTP PUT-Anfragen an eine
put.php
( Ich musste dieses PHP schreiben Skript schreiben)Implementieren Sie put.php, um die Anfrage zu bearbeiten (speichern Sie die Datei an dem genannten Ort erwähnt)
Die Leute sagten, ich hätte ein CGI-Drehbuch geschrieben. Im Ernst, ich hatte keine Ahnung, wovon wovon sie sprachen.
- Habe ich wirklich CGI Script geschrieben?
Ich hoffe, Sie haben verstanden, was mich verwirrt. (Denn ich weiß selbst nicht, wo ich verwirrt bin). Ich bitte euch, eure Antwort so einfach wie möglich zu halten. Ich kann wirklich keine ausgefallene technische Terminologie verstehen. Zumindest nicht in diesem Fall.
EDIT :
Ich habe dieses tolle Tutorial gefunden "CGI-Programmierung ist einfach!" - CGI-Tutorial die die Konzepte in einfachste möglichen Weg. Nach der Lektüre dieses Artikels möchten Sie vielleicht Folgendes lesen Erste Schritte in der CGI-Programmierung in C um Ihr Verständnis mit konkreten Codebeispielen zu ergänzen. Ich habe auch diese Links zu diesem Tutorial zum Wikipedia-Artikel hinzugefügt: http://en.wikipedia.org/wiki/Common_Gateway_Interface
12 Stimmen
Ich habe schon CGI gesehen, das in Cobol geschrieben wurde. Kein Scheiß!
0 Stimmen
@Luc M. Interessiert. Welches CGI meinen Sie (angesichts der Tatsache, dass es einen Raycaster in LINQ gibt...)?
17 Stimmen
@claws: Die Leute, vor allem die der alten Schule, bezeichnen JEDEN Code, unabhängig von der tatsächlichen Ausführungsmethode, der über den Webserver ausgeführt wird, als CGI. Was Sie tatsächlich geschrieben haben, ist ein PHP-Skript, das über das CGI-Protokoll ausgeführt werden kann oder auch nicht. Ihre Verwirrung scheint von der zwiespältigen Bedeutung von CGI herrühren, einem Protokoll zur Ausführung von Code und dem Code, der über das Protokoll ausgeführt wird (was später verallgemeinert wurde, um jeden über das Web ausgeführten Code zu meinen)
2 Stimmen
Mitte der 90er Jahre schrieb ich ein paar CGI-Skripte in HyperCard
0 Stimmen
@Joe Ich habe die Benachrichtigung nie erhalten und heute, beim erneuten Lesen dieses Beitrags, habe ich Ihre Frage gesehen. Die CGI's wurden auf OpenVMS als eigenständige ausführbare Dateien geschrieben (kein Framework oder Anwendungen von Drittanbietern involviert...)
0 Stimmen
@VinkoVrsalovic Ihr Kommentar hat mir das Leben gerettet, ich konnte nicht umhin, mich zu bedanken :)
0 Stimmen
CGI kann auch als API bezeichnet werden, also als Schnittstelle zur Anwendungsprogrammierung. Das würde viele Verwirrungen beseitigen, nehme ich an.