www.wikidata.de-de.nina.az
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Das Common Gateway Interface CGI ist eine Schnittstelle fur den Datenaustausch zwischen einem Webserver Anwendungsprogramm und dritter Software die Anfragen bearbeitet 1 CGI ist eine Variante Webseiten 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 1 2 Inhaltsverzeichnis 1 Funktionsweise 2 Vorteile 3 Nachteile 4 Sicherheit 5 Siehe auch 6 Weitere serverseitige Technologien 7 Weblinks 8 EinzelnachweiseFunktionsweise BearbeitenAusgehend von einer HTTP Anfrage kann durch den Webserver via CGI ein Prozess gestartet werden Dabei konnen Informationen als Parameter an den Prozess ubergeben werden Diese konnen beispielsweise auf Benutzereingaben aus einem Webformular beruhen Die Ausgaben des Prozesses werden wiederum an den Webserver ubergeben der darauf basierend eine HTTP Antwort erzeugen kann 3 4 Optional konnen Daten bei laufenden Prozessen auch uber die Standard Datenstrome zwischen Prozess und Webserver ausgetauscht werden 5 Zur Nutzung dieser Funktion stellen Webserver entsprechende Subroutinen Bibliotheken Skripte oder Programme sowie einige Umgebungsvariablen zur Verfugung Die folgenden neun Umgebungsvariablen mussen dabei verpflichtend vorhanden sein 1 GATEWAY INTERFACE QUERY STRING REMOTE ADDR REQUEST METHOD SCRIPT NAME SERVER NAME SERVER PORT SERVER PROTOCOL SERVER SOFTWAREVorteile BearbeitenStatt nur statische Seiten von einem Webserver zu laden die dort als fertige Ressource zur Verfugung stehen ist es mit CGI auch moglich Webinhalte HTML Seiten oder Fragmente Grafiken PDF Dokumente etc dynamisch zu erzeugen D h diese mussen zur Zeit der Anfrage noch nicht auf dem Server existieren sondern konnen vom CGI Programm erzeugt werden Grundsatzlich konnen CGI Programme in einer beliebigen Programmiersprache geschrieben sein die das Betriebssystem unterstutzt sofern die zuvor genannten Anforderungen erfullt werden 6 Nachteile BearbeitenEin Nachteil der CGI Ausfuhrung ist neben dem Sicherheitsrisiko sofern kein entsprechender Schutz eingerichtet ist ihre relativ geringe Geschwindigkeit da fur jeden CGI Aufruf ein neuer Prozess gestartet wird Zudem unterstutzen viele Server nur eine limitierte Anzahl an CGI Anfragen weshalb viele Anfragen in Warteschlangen bleiben oder sogar abgewiesen werden Alternativen die auf CGI aufbauen jedoch das Bootstrapping der Prozesse umgehen konnen sind z B FastCGI ASP PHP und ColdFusion 4 Daneben gibt es Module z B fur den Apache Webserver die den Interpreter fur verschiedene Scriptsprachen z B mod perl fur Perl mod python fur Python etc direkt in den Webserver Prozess einbinden Dieser wird so nur einmal beim Start des Webservers geladen anstatt bei jeder Anfrage neu Die Programme weiterhin als externe Prozesse laufen zu lassen ihnen die Anfragen jedoch per FastCGI zu ubergeben ist der Losungsweg der dem CGI Prinzip am ehesten treu bleibt Hierbei kann anders als bei der o 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 Sicherheit BearbeitenDass Programme die ein Dritter erstellt hat auf dem Webserver ausgefuhrt werden konnen ist in hochstem Masse sicherheitsrelevant Daher muss sichergestellt sein dass ein uber CGI gestartetes Programm nur bestimmte eingeschrankte Typen von Programmroutinen ausfuhren darf z B kein Loschen von Dateien des Webservers u a Bei dem Apache Webserver wird die Ausfuhrung von CGI Programmen mit Hilfe des Modules mod suexec gegen solche Cracker Angriffe gesichert die das Eindringen als Root User zum Ziel haben Die Sicherheitsmassnahmen sind dabei mehrstufig aufgebaut und so streng dass viele Server Administratoren dazu ubergegangen sind auch andere serverseitige Sprachen uber CGI laufen zu lassen Siehe auch BearbeitenHTTP Statuscode MIME TypWeitere serverseitige Technologien BearbeitenFastCGI Simple Common Gateway Interface SCGI Servlet Active Server Pages ASP ASP NET ColdFusion JavaServer Pages JSP PHP Node js Server Side Includes SSI Weblinks BearbeitenGlossar CGI SELFHTML WikiEinzelnachweise Bearbeiten a b c David Robinson Ken Coar RFC 3875 The Common Gateway Interface CGI Version 1 1 Oktober 2004 englisch Richard MacManus 1993 CGI Scripts and Early Server Side Web Programming In webdevelopmenthistory com 24 Marz 2021 abgerufen am 9 Juni 2023 englisch Thomas Walter Kompendium der Web Programmierung 1 Auflage Springer Berlin 2008 ISBN 978 3 540 33134 6 CGI das Common Gateway Interface S 113 123 doi 10 1007 978 3 540 33135 3 a b Was ist ein CGI In ionos de 20 Marz 2020 abgerufen am 16 Februar 2022 Apache Tutorial Dynamic Content with CGI Apache HTTP Server Version 2 4 In httpd apache org Abgerufen am 9 Juni 2023 englisch Common Gateway Interface Nicht mehr online verfugbar National Center for Supercomputing Applications archiviert vom Original am 9 April 2009 abgerufen am 24 Oktober 2022 englisch Webserver SchnittstellenProtokolle CGI SCGI FastCGI AJPAPIs C NSAPI C ASAPI C ISAPI Java Servlet ASP NET Python WSGI Ruby Rack JavaScript JSGI Perl PSGI Lua WSAPI Apache Module mod jk mod lisp mod parrot mod perl mod php mod python mod wsgi mod ruby Phusion Passenger Web APIs WSDL XML RPC SOAP REST Abgerufen von https de wikipedia org w index php title Common Gateway Interface amp oldid 234652127