Vergleichstabelle
Basis zum Vergleich | CGI | Servlet |
---|---|---|
Basic | Programme werden im nativen Betriebssystem geschrieben. | Mit Java eingesetzte Programme. |
Plattformabhängigkeit | Plattformabhängig | Verlässt sich nicht auf die Plattform |
Erstellung eines Prozesses | Jede Kundenanforderung erstellt einen eigenen Prozess. | Prozesse werden abhängig von der Art der Clientanforderung erstellt. |
Konvertierung des Skripts | Präsentiert in Form von ausführbaren Dateien (nativ für das Server-Betriebssystem). | Kompiliert zu Java Bytecode. |
Läuft auf | Separater Prozess | JVM |
Sicherheit | Anfälliger für Angriffe. | Kann Angriffen widerstehen. |
Geschwindigkeit | Langsamer | Schneller |
Bearbeitung des Skripts | Direkte | Bevor die Skripte ausgeführt werden, werden sie übersetzt und kompiliert. |
Portabilität | Kann nicht portiert werden | tragbar |
Definition von CGI
Die CGI (Common Gateway Interface) ist eine Schnittstelle, die externe Programme (CGI-Skripts) auf einem Webserver verarbeitet, um die Ausführung interaktiver Webseiten zu ermöglichen. CGI wurde 1993 vom NCSA (National Center for Supercomputing Applications) entwickelt . Es befindet sich auf der Serverseite und ermöglicht Webbrowsern die Interaktion mit Programmen auf dem Webserver. Wenn zum Beispiel eine Webseite eine Datenbank abfragt oder ein Benutzer die Formularinformationen an den Server sendet, werden zu diesem Zeitpunkt CGI-Skripts aufgerufen. Der Server gibt diese Informationen auf zwei Arten an GET oder POST an eine Anwendung weiter, woraufhin die Anwendung den Server an den Browser zurücksendet. Auf diese Weise erhalten Browser einige Ergebnisse für den Benutzer.
CGI ist eine Bedingung, um eine Methode zum Ausführen von CGI-Skripts zu beschreiben und die Ergebnisse für diese bestimmten Programme an den Server zurückzugeben. Die Funktion einer CGI besteht darin, die vom Browser empfangenen Informationen zu scannen und eine korrekte Antwort zu erzeugen. Nach Abschluss der Task wird das CGI-Skript beendet. In Common Gateway Interface bedeutet das allgemein, dass es in jedem Betriebssystem oder jeder Programmiersprache einwandfrei funktioniert.
Früher wurden UNIX-Shell-Skripts und PERL zum Schreiben der CGI-Programme verwendet. Aus diesem Grund wurden sie als CGI- Skripts bezeichnet . Jetzt können jedoch beliebige Sprachen wie C, C ++, Perl, Visual Basic oder Python verwendet werden. CGI kann jedoch die potenziellen Sicherheitsprobleme anführen, da der Webserver ausführbare Dateien in bestimmten Verzeichnissen als CGI-Programme behandeln kann. CGI behandelt jede Clientanforderung durch einen separaten Prozess, wodurch die Serverlast erhöht wird, wodurch sie langsamer wird.
Definition von Servlet
Ein Servlet ist eine Java-basierte Webkomponente, die als Zwischenprogramm dient und die Interaktion zwischen dem Webbrowser oder dem HTTP-Client und dem HTTP-Server erleichtert. Ähnlich wie bei CGI können Servlets auch dazu verwendet werden, die Informationen über die Webseitenformulare zu erfassen, die Datensätze aus der Datenbank anzuzeigen und dynamische Webseiten mithilfe eines Containers zu generieren. Servlet ist eine Java-Klasse, die nicht auf die Plattform angewiesen ist und weiter zum Bytecode kompiliert, der plattformunabhängig ist. Der plattformneutrale Bytecode kann dynamisch gespeichert und vom Java-Webserver ausgeführt werden. Servlet verwendet Socket- und RMI- Mechanismus, um die Verbindung zwischen Applets, Datenbanken oder anderen Datenbankprogrammen herzustellen.
Der Servlet-Container ist ein Teil des Webservers, der die Protokolle HTTP und HTTPS unterstützt. Es verwendet die Request / Response-Methode unter Verwendung des HTTP- und HTTPS-Protokolls, um die Interaktion mit Web-Clients zu ermöglichen. Im Gegensatz zu CGI wird Servlet innerhalb des Adressraums des Webservers ausgeführt, wobei nicht jeder Client separat behandelt wird. Im Servlet wird eine Sammlung von Einschränkungen auf dem Server erzwungen, um die Ressourcen auf dem Server zu schützen.
Hauptunterschiede zwischen CGI und Servlet
- CGI-Skripts werden im nativen Betriebssystem geschrieben und in einem bestimmten Verzeichnis gespeichert. Servlet-Programme werden dagegen in der Regel in Java geschrieben, das in Java-Bytecode kompiliert und in JVM ausgeführt wird.
- CGI ist plattformspezifisch, was das Wechseln zwischen Betriebssystemen erschwert. Servlets können dagegen in jedem Betriebssystem ausgeführt werden, auf dem JVM installiert ist, und ist daher plattformunabhängig.
- In CGI kann jede ankommende Clientanforderung einen separaten Prozess generieren, während Servlet, Prozesse nicht unnötig erstellt werden und den Speicherplatz der JVM gemeinsam nutzen.
- CGI-Skripts sind ausführbare Programme, die im nativen Betriebssystem des Servers geschrieben sind. Im Gegensatz dazu werden Servlets zu Java-Bytecode kompiliert, der in JVM ausgeführt wird.
- Servlet ist sicherer als CGI, da es Java verwendet.
- Die Geschwindigkeit, Leistung und Effizienz des Servlets ist besser als bei CGI.
- CGI-Skripte können direkt verarbeitet werden. Im Gegenteil, das Servlet übersetzt und kompiliert das Programm zuerst und verarbeitet es dann.
- Wenn es um Portabilität geht, ist Servlet portierbar, während CGI dies nicht tut.
Fazit
CGI und Servlet funktionieren auf dieselbe Weise, aber die Verwendung von Servlet ist gegenüber CGI von Vorteil, da das Servlet schnell, sicher, plattformunabhängig, einfach zu entwickeln, über mehrere APIs zugänglich ist und von verschiedenen Webservern unterstützt wird.