Kommen in CGI-Bin wirklich nur Skripte rein oder auch kompilierte Dateien?!
3 Stimmen
4 Antworten
Erstens ist der Name cgi-bin nicht verpflichtend.
Zweitens kann der Server via CGI mit jeder dafür geeigneten ausführbaren Datei zusammenarbeiten.
Der eigentliche Knackpunkt ist eher, daß das auch mit Skripten funktioniert.
Wenn ich ein Skript ausführbar mache und mit der Shebang den Interpreter referenziere, dann kümmert sich das OS eben darum, daß der Interpreter mit dem Skript gestartet wird.
Und zu guter letzt ist CGI nur eine Schnittstelle, es gibt da durchaus auch Alternativen.
Vorab: Es gibt inzwischen auch andere und moderne Methoden als CGI. Viele Programmiersprachen werden als Module in den Webserver integriert: Python, PHP und heute auch Perl.
CGI war eine Technik, "egal was" in einen Webserver zu integrieren, also sowohl interpretierbare Scripte als auch kompilierte Programme (von C++ bis zum Uralt-Cobol geht eigentlich alles, solange es saubere HTML-Header absondert.
Da kommen Programme rein, egal was für welche, ob interpretierte, kompilierte oder zur Laufzeit kompilierte.
da kann alles rein, üblicherweise sind es perl scripte
natürlich. C ist eine Compilersprache. Und natürlich könnte man sich da was bauen dass er das compilierte jedes mal löscht und neu compiliert on demand.... siehe andere frage..... es ist möglich, macht aber 0 sinn. k.a. was du damit bezweckst
Natürlich muss man sie kompilieren, sie müssen ablaufen können bzw. ausführbar sein.
danke, das habe ich nicht gewusst!!!!!!!!!!!!!!!
Das ist - gerade wenn es um CGI geht - auch grenzwertig. Es gibt für viele moderne Sprachen (selbst für C++) sowohl Compiler als auch Interpreter. Für C++ wird man sicherlich "meistens" den Compiler vorziehen, aber wahrscheinlich nicht immer.
Compilierte Programme haben fast immer einen Vorteil gegenüber Interpretierten: Sie sind kleiner als Interpreter + Programm (werden also schnell geladen) und auch schneller, denn sie sind bereits kompiliert und müssen nicht erst interpretiert werden.
In der Praxis wird man also Kompilierte Programme dann einsetzen wenn sie häufig genutzt werden (das kann 1000 x pro minute sein) und interpretierte Programme dann wenn häufig Änderungen nötig sind. Aber auch das nur als "Daumenpeilung"
Üblicherweise wird man sie kompilieren - Man könnte natürlich auch nen JIT nutzen, oder in einen Bytecode übersetzen und ne VM dazunehmen.
also muss man die C++ dateien vorher nicht kompilieren??!!??!!??!!??!!