Kommen in CGI-Bin wirklich nur Skripte rein oder auch kompilierte Dateien?!

auch kompilierte Dateien 67%
die werden beim aufruf gestartet 33%
Nur die Skripte 0%
nur kompilierte Dateien 0%
die werden beim aufruf kompiliert (und dann gelöscht) 0%

3 Stimmen

4 Antworten

auch kompilierte Dateien

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.

auch kompilierte Dateien

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.

Woher ich das weiß:Studium / Ausbildung – Elektronik studiert, Abschluss als Dipl.-Ing.
die werden beim aufruf gestartet

da kann alles rein, üblicherweise sind es perl scripte


JessicaWolff 
Beitragsersteller
 26.08.2024, 11:04

also muss man die C++ dateien vorher nicht kompilieren??!!??!!??!!??!!

geheim007b  26.08.2024, 11:06
@JessicaWolff

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

odine  26.08.2024, 11:06
@JessicaWolff

Natürlich muss man sie kompilieren, sie müssen ablaufen können bzw. ausführbar sein.

JessicaWolff 
Beitragsersteller
 26.08.2024, 11:07
@odine

danke, das habe ich nicht gewusst!!!!!!!!!!!!!!!

ntechde  26.08.2024, 12:01
@JessicaWolff

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"

KarlRanseierIII  26.08.2024, 21:20
@JessicaWolff

Üblicherweise wird man sie kompilieren - Man könnte natürlich auch nen JIT nutzen, oder in einen Bytecode übersetzen und ne VM dazunehmen.