Unterschied zwischen CGI und Servlet

Unterschied zwischen CGI und Servlet

CGI gegen Servlet

CGI (Common Gateway Interface) ist der erste Versuch, Benutzern dynamischen Inhalt zu bieten. Dadurch können Benutzer ein Programm ausführen, das sich auf dem Server befindet, um Daten zu verarbeiten und sogar auf Datenbanken zuzugreifen, um den relevanten Inhalt zu erstellen. Da dies Programme sind, werden sie im nativen Betriebssystem geschrieben und dann in einem bestimmten Verzeichnis gespeichert. Ein Servlet ist eine Implementierung von Java, die darauf abzielt, den gleichen Service wie CGI anzubieten, aber anstelle von Programmen, die im nativen Betriebssystem zusammengestellt wurden. Obwohl Java -Programme in den nativen Code zusammengestellt werden können.

Der erste Vorteil von Servlets gegenüber CGI liegt in der Unabhängigkeit der Plattform. Servlets können auf jedem Betriebssystem so lange ausgeführt werden, wie ein JVM installiert ist, was bedeutet, dass Sie kein Problem haben, selbst wenn Sie die Betriebssysteme wechseln möchten. Mit CGI ist das Umschalten des Betriebssystems ein schwieriger und mühsamer Prozess, da Sie die Programme im neuen Betriebssystem neu kompilieren müssen.

Da Sie unabhängige Programme in CGI ausführen, erstellen sie ihren eigenen Prozess, wenn sie ausgeführt werden, etwas, das bei Servlets nicht passiert, da sie nur am Speicherplatz des JVM teilnehmen. Dies kann zu Problemen im Zusammenhang mit Overhead führen, insbesondere wenn Sie die Anzahl der Benutzer exponentiell erhöhen. Es werden auch Schwachbarkeitsprobleme erstellt, da das Programm in keiner Weise kontrolliert wird, sobald es auf dem Server ausgeführt wird.

Später ist die häufigere Methode bei der Verwendung von CGI über Skripte. Dies verringert die Zeit, die für die Erstellung von Programmen benötigt wird, und ist im Allgemeinen sicherer. Mit CGI können Sie Skripte sofort ausführen, während Servlets das Skript in Java übersetzen und es in ein Servlet kompilieren, das der Ladezeit ein wenig hinzufügt.

Zusammenfassung:
1.CGI sind in der Regel ausführbare Sachen, die im Betriebssystem des Servers nativ sind. Servlets können jedoch auch mit dem nativen Betriebssystem zusammengestellt werden
2.CGI -Programme sind plattformabhängig, während Servlets plattformunabhängig sind
3.CGI -Programme werden als separate Prozesse auf dem Computer ausgeführt, während Servlets auf dem JVM ausgeführt werden
4.CGI kann anfälliger für Angriffe sein als Servlets
5.CGI kann Skripte direkt verarbeiten, während es übersetzt und kompiliert werden muss, bevor es als Servlet ausgeführt werden kann