<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Common_Gateway_Interface</id>
	<title>Common Gateway Interface - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Common_Gateway_Interface"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Common_Gateway_Interface&amp;action=history"/>
	<updated>2026-05-22T05:14:57Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Common_Gateway_Interface&amp;diff=19940&amp;oldid=prev</id>
		<title>imported&gt;Trustable: Kategorie:Webserver (Thema)</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Common_Gateway_Interface&amp;diff=19940&amp;oldid=prev"/>
		<updated>2026-01-17T17:08:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=Kategorie:Webserver_(Thema)&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Kategorie:Webserver (Thema) (Seite nicht vorhanden)&quot;&gt;Kategorie:Webserver (Thema)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Belege fehlen}}&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Common Gateway Interface&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CGI&amp;#039;&amp;#039;&amp;#039;) ist eine [[Schnittstelle]] für den [[Datenaustausch]] zwischen einem [[Webserver]] ([[Anwendungsprogramm]]) und dritter [[Software]], die [[Client-Server-Modell #Definitionen|Anfragen]] bearbeitet.&amp;lt;ref name=&amp;quot;RFC&amp;quot; /&amp;gt; CGI ist eine Variante, [[Webseite]]n dynamisch bzw. [[interaktiv]] zu machen. Entwickelt wurde die Technologie am [[National Center for Supercomputing Applications]] (NCSA) und wird seit 1993 im [[World Wide Web]] eingesetzt.&amp;lt;ref name=&amp;quot;RFC&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;History&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
Ausgehend von einer [[Hypertext Transfer Protocol|HTTP]]-Anfrage kann durch den Webserver via CGI ein Prozess gestartet werden. Dabei können Informationen als Parameter an den Prozess übergeben werden. Diese können beispielsweise aus Benutzereingaben aus einem [[Webformular]] bestehen. Die Ausgaben des Prozesses werden wiederum an den Webserver übergeben, der darauf basierend eine HTTP-Antwort erzeugen kann.&amp;lt;ref name=&amp;quot;Walter_2008&amp;quot; /&amp;gt; Optional können Daten bei laufenden Prozessen auch über die [[Standard-Datenströme]] zwischen Prozess und Webserver ausgetauscht werden.&amp;lt;ref name=&amp;quot;Apache&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Nutzung dieser Funktion stellen Webserver entsprechende [[Subroutine]]n, [[Programmbibliothek|Bibliotheken]], [[Skriptsprache|Skripte]] oder [[Computerprogramm|Programme]], sowie einige [[Umgebungsvariable]]n, zur Verfügung. Die folgenden neun Umgebungsvariablen müssen dabei verpflichtend vorhanden sein:&amp;lt;ref name=&amp;quot;RFC&amp;quot; /&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;GATEWAY_INTERFACE&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;QUERY_STRING&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;REMOTE_ADDR&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;REQUEST_METHOD&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;SCRIPT_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;SERVER_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;SERVER_PORT&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;SERVER_PROTOCOL&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;SERVER_SOFTWARE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vorteile ==&lt;br /&gt;
Statt nur statische Seiten von einem Webserver zu laden, die dort als fertige [[Ressource #Informatik|Ressource]] zur Verfügung stehen, ist es mit CGI auch möglich, Webinhalte ([[HTML-Seite]]n oder -Fragmente, [[Grafik]]en, [[Portable Document Format|PDF]]-Dokumente etc.) dynamisch zu erzeugen. Das bedeutet, dass diese zur Zeit der Anfrage noch nicht auf dem Server existieren müssen, sondern vom CGI-Programm erzeugt werden können. Grundsätzlich können CGI-Programme in einer beliebigen [[Programmiersprache]] geschrieben sein, die das Betriebssystem unterstützt, sofern die zuvor genannten Anforderungen erfüllt werden.&amp;lt;ref name=&amp;quot;NCSA&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nachteile ==&lt;br /&gt;
Ein Nachteil der CGI-Ausführung ist neben dem Sicherheitsrisiko, sofern kein entsprechender Schutz eingerichtet ist, ihre relativ geringe Geschwindigkeit, da für jeden CGI-Aufruf ein neuer [[Prozess (Informatik)|Prozess]] gestartet wird. Zudem unterstützen viele Server nur eine limitierte Anzahl an CGI-Anfragen, weshalb viele Anfragen in [[Warteschlange (Datenstruktur)|Warteschlangen]] bleiben oder sogar abgewiesen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativen, die auf CGI aufbauen, jedoch das [[Bootstrapping (Informatik)|Bootstrapping]] der Prozesse umgehen können, sind z.&amp;amp;nbsp;B. [[FastCGI]], [[Active Server Pages|ASP]], [[PHP]] und [[ColdFusion]].&lt;br /&gt;
&lt;br /&gt;
Daneben gibt es [[Modul (Software)|Module]], z.&amp;amp;nbsp;B. für den [[Apache HTTP Server|Apache-Webserver]], die den [[Interpreter]] für verschiedene [[Skriptsprache]]n (z.&amp;amp;nbsp;B. [[mod&amp;amp;#95;perl]] für [[Perl (Programmiersprache)|Perl]], [[mod&amp;amp;#95;python]] für [[Python (Programmiersprache)|Python]] etc.) direkt in den Webserver-Prozess einbinden. Dieser wird so nur einmal beim Start des Webservers geladen, anstatt bei jeder Anfrage neu.&lt;br /&gt;
Die Programme weiterhin als externe Prozesse laufen zu lassen, ihnen die Anfragen jedoch per [[FastCGI]] zu übergeben, ist der Lösungsweg, der dem CGI-Prinzip am ehesten treu bleibt. Hierbei kann, anders als bei der o.&amp;amp;nbsp;g. Einbindung als Apache-Modul, nicht nur der Interpreter der Programmiersprache dauerhaft laufen. Auch die Anwendung selbst kann die ganze Zeit geladen bleiben und so die eingehenden Anfragen noch effizienter bearbeiten.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Dass Programme, die ein Dritter erstellt hat, auf dem Webserver ausgeführt werden können, ist in höchstem Maße [[Informationssicherheit|sicherheits]]&amp;lt;nowiki /&amp;gt;relevant. Daher muss sichergestellt sein, dass ein über CGI gestartetes Programm nur bestimmte, eingeschränkte Typen von [[Programmroutine]]n ausführen darf (z.&amp;amp;nbsp;B. kein Löschen von Dateien des Webservers u.&amp;amp;nbsp;ä.).&lt;br /&gt;
&lt;br /&gt;
Bei dem Apache-Webserver wird die Ausführung von CGI-Programmen mit Hilfe des Modules [[mod&amp;amp;#95;suexec]] gegen solche [[Cracker (Computersicherheit)|Cracker-Angriffe]] gesichert, die das Eindringen als [[Root-Konto|Root-User]] zum Ziel haben. Die Sicherheitsmaßnahmen sind dabei mehrstufig aufgebaut und so streng, dass viele Server-[[Systemadministrator|Administratoren]] dazu übergegangen sind, auch andere serverseitige Sprachen über CGI laufen zu lassen.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[HTTP-Statuscode]]&lt;br /&gt;
* [[MIME-Typ]]&lt;br /&gt;
&lt;br /&gt;
== Weitere serverseitige Technologien ==&lt;br /&gt;
* [[FastCGI]]&lt;br /&gt;
* [[Simple Common Gateway Interface]] (SCGI)&lt;br /&gt;
* [[Servlet]]&lt;br /&gt;
* [[Active Server Pages]] (ASP)&lt;br /&gt;
* [[ASP.NET]]&lt;br /&gt;
* [[ColdFusion]]&lt;br /&gt;
* [[JavaServer Pages]] (JSP)&lt;br /&gt;
* [[PHP]]&lt;br /&gt;
* [[Rack (Webserver-Interface)|Rack]] (Ruby)&lt;br /&gt;
* [[Node.js]]&lt;br /&gt;
* [[Server Side Includes]] (SSI)&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://wiki.selfhtml.org/wiki/Glossar:CGI &amp;#039;&amp;#039;Glossar:CGI&amp;#039;&amp;#039;.] [[Selfhtml]]-Wiki&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;RFC&amp;quot;&amp;gt;&lt;br /&gt;
{{RFC-Internet |RFC=3875 |Titel=The Common Gateway Interface (CGI) Version 1.1 |Datum=2004-10 |Autor=David Robinson, Ken Coar}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;History&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |autor=Richard MacManus&lt;br /&gt;
 |url=https://webdevelopmenthistory.com/1993-cgi-scripts-and-early-server-side-web-programming/&lt;br /&gt;
 |titel=1993: CGI Scripts and Early Server-Side Web Programming&lt;br /&gt;
 |werk=webdevelopmenthistory.com&lt;br /&gt;
 |datum=2021-03-24&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |abruf=2023-06-09}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;NCSA&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |url=http://hoohoo.ncsa.uiuc.edu/cgi/intro.html&lt;br /&gt;
 |titel=Common Gateway Interface&lt;br /&gt;
 |hrsg=[[National Center for Supercomputing Applications]]&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |offline=1&lt;br /&gt;
 |archiv-url=https://web.archive.org/web/20090409213905/http://hoohoo.ncsa.uiuc.edu/cgi/intro.html&lt;br /&gt;
 |archiv-datum=2009-04-09&lt;br /&gt;
 |abruf=2022-10-24}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Walter_2008&amp;quot;&amp;gt;&lt;br /&gt;
{{BibISBN|978-3-540-33134-6|Kapitel=CGI: das Common Gateway Interface|Seiten=113–123}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Apache&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |url=https://httpd.apache.org/docs/2.4/howto/cgi.html&lt;br /&gt;
 |titel=Apache Tutorial: Dynamic Content with CGI&lt;br /&gt;
 |titelerg=Apache HTTP Server Version 2.4&lt;br /&gt;
 |werk=httpd.apache.org&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |abruf=2023-06-09}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Webserver-Schnittstellen}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Webserver (Thema)]]&lt;br /&gt;
[[Kategorie:Schnittstelle (Software)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Trustable</name></author>
	</entry>
</feed>