{"id":671,"date":"2024-11-25T04:21:15","date_gmt":"2024-11-25T03:21:15","guid":{"rendered":"https:\/\/www.vautron.de\/blog\/?p=671"},"modified":"2024-11-25T04:21:15","modified_gmt":"2024-11-25T03:21:15","slug":"cgi-schnittstelle-aufgaben-funktionen","status":"publish","type":"post","link":"https:\/\/www.vautron.de\/blog\/cgi-schnittstelle-aufgaben-funktionen","title":{"rendered":"Die CGI Schnittstelle: Welche Aufgaben und Funktionen \u00fcbernimmt sie?"},"content":{"rendered":"\n<p><strong>Das Common Gateway Interface (CGI) bildet eine universelle Schnittstelle zwischen einem Webserver und externer Software oder Skripten. Zu ihren wichtigsten Anwendungen geh\u00f6rt, dynamische Inhalte in Webseiten einzubinden und Elemente wie beispielsweise Kontakt- oder Eingabeformulare interaktiv zu gestalten. CGI als Schnittstelle unterst\u00fctzt zudem neben externer Software eine Vielzahl von Programmiersprachen, in denen sich eigene oder fremde Skripte auf einem Webserver nutzen lassen.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wie funktioniert eine CGI Schnittstelle auf einem Webserver?<\/h3>\n\n\n\n<p>CGI wurde bereits 1993 vorgestellt und kurz darauf f\u00fcr den produktiven Einsatz standardisiert &#8211; das Interface z\u00e4hlt somit zu den \u00e4ltesten Methoden, mit denen sich in Echtzeit generierte und individuelle <strong>Inhalte f\u00fcr einen Server<\/strong> generieren und verarbeiten lassen. Es stellt eine normierte Schnittstelle zur Verf\u00fcgung, die den Austausch von Informationen wie Variablen, Eingaben oder Steuerbefehlen \u00fcbernimmt. Anfragen leitet das CGI mit den relevanten Daten an externe Software oder Skripte weiter, die anschlie\u00dfend mit einem durch Interface interpretierbaren Resultat antworten. Aus diesem erstellt der Server einen allgemein g\u00fcltigen, <strong>einmaligen, individuellen HTML Code<\/strong> und bettet ihn an entsprechender Stelle in eine Webseite ein.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Welche Vorteile bietet CGI gegen\u00fcber anderen Schnittstellen?<\/h3>\n\n\n\n<p>Wie andere Interfaces f\u00fcr externe Programme und Interpreter von Skriptsprachen erfolgt die Einbindung von CGI in einen Webserver meist \u00fcber ein <strong>entsprechendes Modul<\/strong>, das bei Serverstart geladen wird. Als universelles Interface bietet es dabei zahlreiche Vorteile, die zu seiner \u00fcberdurchschnittlich hohen Popularit\u00e4t und Verbreitung beitragen:<\/p>\n\n\n\n<ul>\n<li>Breite Kompatibilit\u00e4t mit unterschiedlichen Programmiersprachen inklusive Python, Perl, Ruby oder C<\/li>\n\n\n\n<li>Bei entsprechender Konfiguration sehr hohe Sicherheit durch mehrstufige Isolation und Rechteverteilung<\/li>\n\n\n\n<li>Einfache, schnelle und flexible Integration in bestehende IT-Infrastrukturen<\/li>\n\n\n\n<li>Vielseitige Funktionalit\u00e4t mit Unterst\u00fctzung f\u00fcr propriet\u00e4re Programme und Plug-ins<\/li>\n\n\n\n<li>Freier Standard ohne zus\u00e4tzliche Kosten etwa f\u00fcr Lizenzen<\/li>\n\n\n\n<li>Sehr umfangreiche Dokumentation und breite Unterst\u00fctzung durch kommerzielle Anbieter und die Community<\/li>\n\n\n\n<li>Native Unterst\u00fctzung durch prominente Webserver wie<a href=\"https:\/\/www.vautron.de\/blog\/was-ist-der-apache-webserver\"> Apache II<\/a> oder <a href=\"https:\/\/www.vautron.de\/blog\/was-ist-der-microsoft-iis-webserver\">Microsoft IIS<\/a><\/li>\n\n\n\n<li>Alternative Module f\u00fcr \u00e4hnliche Verwendungen wie FastCGI verf\u00fcgbar<\/li>\n<\/ul>\n\n\n\n<p>Zu den entscheidenden Argumenten f\u00fcr den Einsatz von CGI als Schnittstelle zum Webserver z\u00e4hlen seine hohe Flexibilit\u00e4t und die unkomplizierte Einrichtung und Konfiguration. Das Interface erm\u00f6glicht zudem eine <strong>direkte, standardisierte Kommunikation<\/strong> mit externen Instanzen &#8211; unabh\u00e4ngig von der verwendeten Software oder Programmiersprache.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Was sind relevante Nachteile der CGI Schnittstelle?<\/h3>\n\n\n\n<p>Die <strong>vergleichsweise niedrige Performance<\/strong> stellt einen der wichtigsten Gr\u00fcnde dar, die gegen CGI sprechen,. Jede Anfrage startet das eingebundene Programm in einem eigenen, separaten und isolierten Prozess. Bei einer hohen Spitzenlast erh\u00f6ht sich dadurch der Ressourcenbedarf \u00fcberdurchschnittlich schnell, so dass selbst auf einem eigentlich ausreichend leistungsf\u00e4higen Server <strong>Timeout-Fehler auftreten k\u00f6nnen<\/strong>. In diesem Fall ist die Hardware schlicht nicht in der Lage, Anfragen fristgerecht zu verarbeiten und antwortet deshalb mit einem <a href=\"https:\/\/www.vautron.de\/blog\/was-verbirgt-sich-unter-einem-http-status-code\">negativen HTTP Status Code<\/a>.<\/p>\n\n\n\n<p>Potenziell erlaubt die CGI Schnittstelle einem Nutzer einen Zugriff selbst auf sicherheitskritische Bereiche eines Servers und kann deshalb eine<strong> erhebliche Sicherheitsl\u00fcck<\/strong>e darstellen. Dar\u00fcber hinaus darf sie ausschlie\u00dflich Programme und Skripte aus einer seri\u00f6sen, zertifizierten Quelle aufrufen, um eine <a href=\"https:\/\/www.vautron.de\/blog\/welche-cyber-bedrohungen-gefaehrden-webseitenbetreiber\">Kompromittierung durch Cyberkriminelle<\/a> und eine sp\u00e4tere Erweiterung der Nutzerrechte zuverl\u00e4ssig ausschlie\u00dfen zu k\u00f6nnen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Welche Alternativen zu CGI bieten sich an?<\/h3>\n\n\n\n<p>Lange Zeit galt CGI als die bevorzugte Methode, um dynamische oder interaktive Inhalte zu gestalten. Allerdings setzt sich seit 2015 zunehmend der <strong>Einsatz von Modulen<\/strong> durch, die sich speziell an eine Programmiersprache richten und auf diese optimiert wurden. Als entscheidend f\u00fcr deren rasch wachsende Popularit\u00e4t zeigt sich prim\u00e4r der in der Regel deutlich niedrigere Verbrauch von Ressourcen. Zu den wichtigsten Alternativen geh\u00f6rt PHP, auf dem die meisten <strong>dynamischen Webseiten und viele Content Management Systeme<\/strong> aufbauen. Einen direkten Ersatz bietet hingegen Microsoft mit den Active Server Pages (ASP) &#8211; diese Schnittstelle b\u00fcndelt eingehende Anfragen in einem einzigen Prozess und unterst\u00fctzt ebenfalls eine umfangreiche Auswahl an externen Programmiersprachen, drunter z. B. Python, Perl oder Ruby. Mit FastCGI existiert zudem ein in der Funktionalit\u00e4t nahezu identischer Standard, der jedoch durch effiziente Prozessb\u00fcndelung eine <strong>deutlich h\u00f6here Performance<\/strong> erreicht.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Common Gateway Interface (CGI) bildet eine universelle Schnittstelle zwischen einem Webserver und externer Software oder Skripten. Zu ihren wichtigsten Anwendungen geh\u00f6rt, dynamische Inhalte in Webseiten einzubinden und Elemente wie &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[59,29],"_links":{"self":[{"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/posts\/671"}],"collection":[{"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/comments?post=671"}],"version-history":[{"count":1,"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/posts\/671\/revisions"}],"predecessor-version":[{"id":672,"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/posts\/671\/revisions\/672"}],"wp:attachment":[{"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/media?parent=671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/categories?post=671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vautron.de\/blog\/wp-json\/wp\/v2\/tags?post=671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}