Mkdir/usr/src/temp
CD/usr/src/temp
gzip ´d stabil.tar.gzip
tar xvl stabil.tar
CD Perl-5.6.0
rm -f config.sh polycy.sh
Sh konfigurieren -de
bilden
Test machen
Installation machen
Was ist cgi = https://homepages.dcc.ufmg.br/~mlbc/cursos/internet/cgi/intro.htm
CGI Serving Webseiten (html) = http://devfuria.com.br/miscellaneous/cgi-common-gateway-interface/
Was ist cgi/formating forms cgi = http://penta.ufrgs.br/edu/forms/cgi.html
CGI -Ressourcen für Java und Javascript = http://penta.ufrgs.br/pesquisa/joice/cap4.html
CGI wirklich einfach/Skripte schreiben CGI zur Verarbeitung von Formulanten im Web = https://www.jmarshall.com/easy/cgi/portugueses/
CGI - Common Gateway Interface = https://web.fe.up.pt/~goii2000/m9/cgi.htm
IBM -Umgebungsvariablen im CGI -Skript (Referenz) = https://www.ibm.com/docs/en-br/netcoolomnibus/8.1?topic=ssshtq_8.1.0/com.ibm.netcool_omnibus.doc_8.1.0/webtop/wip/reference/web_cust_envariableScripts.html
CGI - TCL/TK LACHE = http://www.c2o.pro.br/automacao/ar01s14.html
Cgi forms = http://penta.ufrgs.br/edu/forms/cgi.html
CGI Tutorial = https://www.w3.org/cgi/
Common Gateway Interface (CGI) = https://en.wikipedia.org/wiki/common_gateway_interface
CGI (Wikipedia) = https://en.wikipedia.org/wiki/cgi
CGI EINLEITUNG = http://homepages.dcc.ufmg.br/~mlbc/cursos/internet/cgi/intro.htm
Was ist CGI (gemeinsame Gateway -Schnittstelle) und was macht es? Common Gateway Interface (CGI) ist eine Technologie, mit der Sie dynamische Seiten mit HTTP -Server -Skript -Interaktion mit Gateway -Skripten und -programmen über Parameter generieren können. Skripte CGI sind also die kleinen Programme, die diese Parameter interpretieren und nach der Verarbeitung eine Seite generieren.
Die Verwendung des CGI ist jedoch nicht sehr sicher, da einige Sicherheitsvorkehrungen getroffen werden müssen. Darunter wird diskutiert, welche Sicherheitsvorkehrungen auf der Grundlage einiger Regeln für CGI -Programme getroffen werden sollen, nachdem er erläutert hat, wie der CGI funktioniert.
Wie funktioniert es? Beispiel:
Der Client (Browser) fordert eine URL aus der angeforderten URL für einen CGI an, sodass der Server die CGI CGI Works mit anderen Systemanwendungen interagiert, Daten aus diesen Anwendungen erholt und das Ergebnis an den Server zurückgibt
Warum CGI verwenden? Mit CGI kann Ihr Server auf Informationen zugreifen, die nicht lesbar für den Kunden (z. B. SQL -Datenbank) sind, und fungiert als Gateway zwischen ihnen, um etwas zu produzieren, das der Kunde verwenden kann. Gateways können für eine Vielzahl von Zwecke verwendet werden. Am häufigsten sind ISINDEX -Manipulation und HTTP -Formularanforderung.
CGI verwenden Beispiele: Konvertieren Sie HTML Systems Manual Pages und senden Sie das HTML -Ergebnis an den Kunden. Schnittstellen Sie mit der WAIS- und Archie -Datenbank, konvertieren Sie die Ergebnisse in HTML und senden Sie das Ergebnis an den Kunden. Ermöglichen Sie dem Benutzer, seinen Server über ein HTML -Formular und einen Decoder nach dem CGI zu füttern. Möglicherweise schreiben Sie diese CGIs über Gateways, die in jedem Liguage geschrieben werden können, mit dem Sie im System ausgeführt werden können, z. B.:
C/C ++ FORTRAN Perl Tcl Unix Shell Visual Basic Apple Skript Was sind die Hauptregeln von CGI -Programmen? CGI -Programme oder Skripte sind ausführbare Programme, die von sich selbst ausgeführt werden können (was nicht sicher ist). Daher gibt es einige Sicherheitsvorkehrungen, die bei der Verwendung von CGI -Programmen implementiert werden müssen.
Die Hauptregeln sind:
Das Skript -CGI muss an einem vom Server für Skripten CGI bestimmten Ort sein oder ein spezielles Suffix haben, das der Server als legales CGI -Skript erkennen soll. Die meisten Systeme speichern CGI-Skripte in einem HTTP-Server-Root-Verzeichnis namens CGI-bin, das so konfiguriert ist, dass nur bestimmte zuverlässige Benutzer es aufzeichnen können. Dies vermeidet offensichtliche Sicherheitsprobleme, die es ermöglichen, dass anonyme Fernbenutzer etwas im System ausführen. Beispiel:/usr/local/apache/htdocs/cgi-bin
Das Skript kann seine Parameter, die Standardeingabe (über Tastatur), Umgebungsvariablen oder beides sammeln.
Das Skript sollte als Ausgabe, einen der drei Standard -Header -Typen, als normale Textzeichenfolge angeben. Die drei Typen sein:
Context_type: Der Inhaltstyp bezieht sich auf jede Art von MIME -Daten, die vom Server akzeptiert werden. Zu den häufigen Typen gehören Text/HTML, Text/Einfach und Daten/GIF. Da der Browser/Server diese Art von Datei nicht aus einem Dateinamenspeicherort oder Suffix abgeben kann, informiert dieser Titel den Browser, welche Art von Daten sie erwarten und wie sie verwendet werden.
Format: Typ/Typ
Ort: zeigt auf ein Dokument an einem anderen Ort auf dem Server. Ermöglicht Ihnen die Umleitung von Anfragen nach Dokumenten, basierend auf einem Kriterium, das von einem Formular oder einer Umgebungsvariablen gesendet wird.
Status: Kann verwendet werden, um ein Skript auszuführen, ohne eine neue Seite an den Kunden zu senden. Es kann auch verwendet werden, um eine Fehlermeldung oder andere Informationen an den Kunden zu senden.
Das Skript muss vom Benutzer ausführbar sein, den der Server konfiguriert hat. (Es gibt einen speziellen Benutzer namens "Nobody", der für die meisten Webserver der Standardbenutzer ist. Sie müssen sicherstellen, dass der "Nobody" -Nutzer oder der Benutzer, für den Ihr Server für die Arbeit konfiguriert ist, Ihre Skripte ausführen und in alle Dateien lesen/schreiben kann, die das Skript verwenden kann).
Weitere Sicherheitsdetails in CGI -Skripten
Wie bekomme ich Serverinformationen? Jedes Mal, wenn ein Benutzer die URL anfordert, die seinem CGI -Programm entspricht, wird der Server in Echtzeit ausgeführt. Ein falsches Konzept über CGI ist, dass Sie Optionen für optionale Befehle und Argumente für Ihr Programm senden können, z. B.:
Befehl% MyProg -qa Blorf
CGI verwendet die Befehlszeile für einen anderen Zweck. Gateway verwendet Umgebungsvariablen, um seine Parameter an das Programm zu senden.
Wie sende ich Dokumente an den Benutzer? CGI -Programme können eine große Anzahl von Dokumentenarten zurückgeben. Sie können ein Bild an den Benutzer, ein HTML -Dokument oder möglicherweise einen Audioclip zurückgeben. Kann sich auch auf andere Dokumente beziehen.
Der Kunde muss wissen, welche Art von Dokument empfangen wird, damit er es ordnungsgemäß präsentieren kann. Bald muss das CGI -Programm den Server darüber informieren, welche Art von Dokument gesendet wird.
Um mit dem Server mit der zurückgegebenen Art des Dokuments zu kommunizieren, unabhängig davon, ob es sich um ein vollständiges Dokument oder einen Verweis auf einen anderen handelt, benötigt CGI einen kleinen Kopfball am Ausgang. Dieser Header ist ein ASCII -Text, der aus getrennten Zeilen oder durch Linerifeeds oder durch Kutschenrenditen (oder beides) besteht, gefolgt von einer leeren Linie.
Beispiel:
Ein vollständiges Dokument mit dem entsprechenden MIME -Typ. Senden eines HTML -Dokuments an den Kunden.
Inhaltstyp: Text/HTML
<title> HTML -Ausgabe aus einem CGI -Skript </title>Content-Typ: text/html Ort: gopher: //httpules.foobar.org/0
<titels> sorry ... bewegt </title>Ein Formular kann verschiedene Komponenten wie Eingänge, Kontrollkästchen und Radio enthalten.
Wie erhalte ich Formulardaten? Es gibt zwei Methoden, mit denen auf Formulare, Get and Post zugreifen kann. Abhängig von der verwendeten Methode erhalten Sie die Daten unterschiedlich.
Die GET -Methode: Wenn Ihr Formular Methode = "GET" verwendet, empfängt Ihr CGI -Programm die codierten Daten in der Umgebungsvariablen querry_string. Beispiel:
Login: Passwort:Die Post -Methode: Wenn Ihr Formular Methode = "Post" verwendet, empfängt Ihr CGI -Programm die STDIN -Standardeingabedaten. Der Server sendet am Ende der Daten keinen EOF. Stattdessen müssen Sie die Umgebungsvariable content_length verwenden, um die Datenmenge zu bestimmen, die von STDIN gelesen werden soll.
Beispiel:
Login: Passwort:Das Lesen einer Umgebungsvariablen hängt vom Betriebssystem ab, in dem das CGI -Programm ausgeführt wird, und die Programmiersprache, in der es geschrieben wurde. Ein C -Programm, das in Unix ausgeführt wird, kann die Funktion char *getenv (const char *name) verwenden; Dies wird als Argument als Variable bezeichnet und gibt seinen Wert in einer Zeichenfolge zurück.
Ist es eine alte Technologie? Der CGI wurde in den frühen Tagen des Internets 1993 als Höhepunkt von Diskussionen von Experten durch das National Center (für Supercomputing -Anwendungen) zwischen Rob McCol, John Franks, Ari Lotonen, George Phillips und Tony Sanders konzipiert. Was kann sie als alte Technologie betrachten?
CGI -Spezifikation 1.1: RFC3875
Obwohl die Sprache, die typischerweise mit CGI verbunden ist, Perl ist, wurde CGI konzipiert, um unabhängig von der verwendeten Sprache zu sein. Derzeit verwenden Technologien wie ASP.NET, PHP, Python und Ruby die Spezifikation weiter.
Gibt es andere Alternativen zu ihm (welche)? FASTCGI: Es ist ein binäres Protokoll für die Interaktion mit einem Webserver.
PSGI: Es handelt sich um eine Schnittstelle zwischen Webservern und Web -Perl- und Frameworks -Anwendungen, mit der Sie Anwendungen schreiben können, die als autonome Server oder mit dem CGI ausgeführt werden können. Rack: Bietet eine modulare und anpassbare Schnittstelle für die Entwicklung von Webanwendungen in Ruby.
WRB: HTTP -Servertechnologie ähnlich wie Oracle Distributed CGI.
Schnittstelle: Element, das eine physische oder logische Verbindung zwischen zwei Systemen oder Teilen eines Systems herstellt, das nicht direkt angeschlossen werden konnte.
Vision Allgemeines Einlegen Sie die Beschreibung des Bildes hier
Im Allgemeinen verfügt der HTTP -Server über ein Verzeichnis (Ordner), das als Sammlung von Dokumenten (Dateien) bezeichnet wird, die an Webbrowser gesendet werden kann, die mit diesem Server verknüpft sind. Wenn der Webserver beispielsweise über den Domainnamen example.com verfügt und Ihre Dokumentsammlung in/usr/local/apache/htdocs im lokalen Dateisystem gespeichert ist, antwortet der Webserver auf eine Bestellung für http://exemplo.com/index.html, indem er an die Browser/usr/local/Pache/Pache/Pache/Indocs/Indocs/Indocs/Indocs/Indocs/Pache/Indocs/Stml sendet.
CGI erweitert dieses System und ermöglicht es dem Webserverbesitzer, ein Verzeichnis innerhalb der Dokumentsammlung mit ausführbaren Skripten (oder Binärdateien) anstelle von vorgeschriebenen Seiten zu bestimmen. Dies wird als CGI -Verzeichnis bezeichnet. Zum Beispiel könnten/usr/local/apache/htdocs/cgi-bin als CGI-Verzeichnis auf dem Webserver bezeichnet werden. Wenn ein Webbrowser die URL anfordert, die auf eine Datei im CGI-Verzeichnis (z. Browser. Das heißt, alles, was das Skript die Standardausgabe sendet, wird an den Webkunden übergeben, anstatt in einem Terminalfenster auf dem Bildschirm angezeigt zu werden.
Allgemeine Struktur der Skripte CGI: Daten lesen und decodieren (und/oder Informationsfelder eines HTTP -Pakets);
Datenverarbeitung (Informationen zu Datenbanken zeichnen, Berechnungen durchführen, Daten wiederherstellen);
Erstellung einer Webseite mit den erzeugten Ergebnissen.
Beispiele für die Antragsdatenverarbeitung von CGI, die über Formulare eingereicht wurden;
Als Schnittstelle mit den Datenbanken dienen, die HTML -Transaktion in SQL konvertieren und die erhaltenen Antworten in HTML formatieren und dann die Ergebnisse an den Kunden gesendet haben.
Konvertieren Sie Systemdaten in HTML und geben Sie das Ergebnis an den Kunden zurück.
Schaffung personalisierter Dokumente;
Zugriffszähler verwalten;
Kartenverarbeitung.
Übertragungsmethoden Das HTTP -Protokoll verwendet verschiedene Datenhandhabung und Organisationsmethoden. Die beiden am häufigsten verwendeten Methoden zum Senden von Formulardaten sind die GET und der Beitrag. Beide Methoden übertragen Daten vom Browser auf den Server. Der größte Unterschied zwischen ihnen ist die Art und Weise, wie Informationen an das CGI -Programm übergeben werden:
Erhalten
CGI rief die GET -Methode durch
Der Browser fügt ein "?" die im Aktionattribut angegebene URL und die codierten Werte;
http://exemplo.com/cgi-bin/registra.pl?login=Guest
Der Server ruft beim Empfangen einer URL mit einer Abfrage-String das CGI-Programm auf, das im ersten Teil der URL (vor '?') Identifiziert wurde, und behält den Teil nach '?' In der Umgebungsvariablen von query_string (die in der URL nach der '?' Enthaltene Konsultationszeichenfolge). Unter der Annahme, dass der Benutzer "Gast" im Anmeldungsfeld eingegeben hat, sendet der Browser beim Klicken auf die Schaltfläche Senden an den Server.
Die GET-Anforderung identifiziert das zugesandte Dokument (cgi-bin/record.pl). Solange der Server so konfiguriert ist, dass alle Dateien im CGI-Bin-Verzeichnis als CGI-Programm erfasst werden, wird das Programm ausgeführt, anstatt das Dokument direkt an den Browser zu senden, und füllt das String login = 'Gast' in die Variable Umgebungsumgebungsumgebungsumgebungsanlagen.
Der Programmierer des CGI kann nicht steuern, welche Methode das Programm aufgerufen wird. So werden Skripte normalerweise geschrieben, um beide Methoden zu unterstützen.
Die in einem Formular eingeführten Daten sind Teil des an den Server gesendeten Meldung.
Während die GET -Methode die Informationen über Umgebungsvariablen übersetzt, sendet der Beitrag die Daten über die Standardeingabe (Standardeingabe, stDIO.H) als eine in der Umgebungsvariablen content_length angegebene Länge an das Länge.
Tätigt 2 Anrufe an den Server, einen, um den Server zu kontaktieren, und einer, um die Parameter zu senden. Mit anderen Worten, wenn der Server eine Form eines Formulars mit dem Post erhält, weiß er, dass er den Rest der Informationen weiterhin "warten" muss.
Vor-/Nachteile
Der Vorteil von GET besteht darin, dass Sie mit einer Abfrage auf das CGI -Programm zugreifen können, ohne ein Formular zu verwenden. Grundsätzlich übergeben wir Parameter für ein Programm. Beispiel: CGI -Programm
Der größte Nachteil von GET ist die mangelnde Sicherheit und die Tatsache, dass sich der Browser oder Server nicht um die Anzahl der zulässigen Zeichen handelt.
Der größte Vorteil der Postmethode ist die Größe der Abfrage, die unbegrenzt werden muss. Für Informationen über die Post -Methode liest das CGI -Programm die Standardeingaben, sodass es nicht möglich ist, auf das CGI zuzugreifen, ohne ein Formular zu verwenden.
Die Geschichte unter Berücksichtigung der Geschwindigkeit, mit der Innovationen eintreten, kann CGI unter Berücksichtigung der Computererstellung als alt angesehen werden. Es kann gesagt werden, dass es sich im mittleren Alter befindet.
1993 schrieb das Team des Nationalen Zentrums für Supercomputing-Anwendungen (NCSA) eine Spezifikation, um die ausführbaren Befehlszeilen auf der www-Voltal-E-Mail-Liste aufzurufen. Die NCSA beherbergt die Spezifikation jedoch nicht.
Andere Entwickler haben die Spezifikation übernommen und sind seitdem ein Standard für Webserver. Eine Gruppe von Ken Coar begann im November 1997 einen Job, um die am häufigsten definierte NCSA -Definition zu erhalten. Diese Arbeit führte zu RFC3875, das die CGI 1.1 -Version angibt. Ausdrücklich im RFC erwähnt sind die folgenden Steuerzahler:
Rob McCool (Autor von NCSA HTTPD Web Server) John Franks (Autor von Web Server GN) ARI LOTONEN (CERN HTTPD Web Server -Entwickler) Tony Sanders (Plexus Web Server -Autor) George Phillips (Webserver -Wartung an der Universität von British Columbia).
Als Alternative können Sie berücksichtigen:
Fastcgi
PSGI (Perl Web Server Gateway Interface)
Rack (Webserverschnittstelle)
WSGI (Webserver -Gateway -Schnittstelle)
Einfaches Beispiel für ein CGI -Skript
Setzen Sie die beiden Zahlen ein: