Web-Protokolle, CGI und Servlets: Ein Vergleich der Web-Technologien
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 6,88 KB
Einführung in Web-Applikation Technologien
Wichtige Internet-Protokolle und ihre Funktionen
HTTP (Hypertext Transfer Protocol)
Dieser Dienst wird aufgerufen, um Webseiten zu übermitteln. Sie verwenden in der Regel die entsprechenden Links.
HTTPS (Hypertext Transfer Protocol Secure)
HTTPS ist eine Weiterentwicklung von HTTP, die den Zugriff auf Server (in der Regel kommerziell) ermöglicht, wobei Techniken zur Verschlüsselung des Datenaustauschs zum Schutz vor Dritten eingesetzt werden.
FTP (File Transfer Protocol)
Ermöglicht die Übertragung von Dateien von anonymen FTP-Servern. Wenn Sie nicht nach einer Datei, sondern nach einem Verzeichnis fragen, zeigt der Browser in der Regel den Inhalt an, damit wir ihn leichter auswählen können. Mit der Syntax user@server können Sie auf private Server zugreifen.
Mailto
Wird verwendet, um eine Nachricht zu senden. Zum Beispiel sendet die URL mailto:[email protected] eine Nachricht an diesen Empfänger.
News (Newsgroups)
Zum Zugriff auf Diskussionsforen (manchmal fälschlicherweise als Newsgroups übersetzt). Es zeigt den Server und die Gruppe an. Zum Beispiel verbindet uns news://news.ibernet.es/es.comp.demos mit dem Forum es.comp.demos auf den nationalen Servern von Telefonica.
Telnet
Wird normalerweise von Browsern implementiert, die oft ein externes Programm aufrufen. Es erlaubt uns, uns mit anderen Computern zu verbinden und uns dort anzumelden, als ob unser Computer ein Endgerät wäre.
HTTP: Funktionsweise und Zustandslosigkeit
Das HTTP (Hypertext Transfer Protocol) ähnelt vielen anderen Internet-Protokollen wie SMTP (Simple Mail Transfer Protocol) und FTP (File Transfer Protocol), da es ein Protokoll zur Übertragung von Daten von einem Server zu einem Client ist.
Der wesentliche Unterschied zwischen HTTP und den meisten anderen Internet-Protokollen besteht darin, dass HTTP nur eine einzige Anfrage pro Verbindung unterstützt, während typische Protokolle mehrere Anfragen unterstützen. Dies bedeutet, dass der HTTP-Client sich mit dem Server verbindet, um eine einzelne Datei abzurufen, und dann die Verbindung trennt.
Dies ermöglicht es, dass eine größere Anzahl von Benutzern über einen bestimmten Zeitraum mit einem Server verbunden sein kann. Aus diesem Grund wird HTTP als ein zustandsloses Protokoll (Stateless Protocol) betrachtet. Da der Server keine offene Verbindung aufrechterhalten muss, ist es nicht notwendig, den Zustand zu verwalten. Das Fehlen von Statusdaten ist für die Effizienz und Skalierbarkeit des World Wide Web (WWW) von wesentlicher Bedeutung.
CGI (Common Gateway Interface)
Ausführung von CGI-Programmen
In den frühen Tagen von HTML schufen Entwickler einen Mechanismus, der es einem Benutzer ermöglichte, ein Programm auf dem Webserver aufzurufen. Dieser Mechanismus wird als Common Gateway Interface (CGI) bezeichnet. Wenn eine Website CGI-Verfahren beinhaltet, spricht man von einer Web-Anwendung.
Normalerweise muss der Browser Daten an das CGI-Programm auf dem Server senden. Die CGI-Spezifikation legt fest, wie diese Daten verpackt und in der HTTP-Anforderung an den Server gesendet werden. Diese Daten werden vom Benutzer über ein HTML-Formular im Webbrowser eingegeben.
Die URL verweist auf das auszuführende CGI-Programm, das ein Skript oder eine ausführbare Datei sein kann. Das CGI-Programm analysiert die Daten, verarbeitet sie und generiert eine Antwort (in der Regel eine HTML-Seite). Die CGI-Antwort wird an den Webserver gesendet, der die Antwort in einer HTTP-Antwort verpackt und an den Browser zurückgibt.
Vorteile und Nachteile von CGI-Programmen
Vorteile von CGI
- Programme können in verschiedenen Sprachen erstellt werden, wobei Perl häufig verwendet wird.
- Ein CGI-Programm verursacht keinen Systemausfall auf dem Webserver.
- Die Programme sind für Webdesigner einfach zu referenzieren. Sobald das Skript erstellt ist, kann der Designer in einer Zeile einer Webseite darauf verweisen.
- Da CGI-Programme in einer eigenen Betriebssystem-Shell ausgeführt werden, entstehen keine Parallelitätskonflikte mit anderen Anwendungen, die dasselbe HTTP-CGI-Programm verwenden.
- Alle Service-Provider unterstützen CGI-Programme.
Nachteile von CGI
- Die Antwortzeit der CGI-Programme ist hoch, da sie eine eigene Betriebssystem-Shell starten. Das Erstellen einer Betriebssystem-Shell ist ein sehr ressourcenintensiver Vorgang für das Betriebssystem.
- Die CGI-Schnittstelle ist nicht skalierbar. Wenn die Anzahl der Benutzer, die auf die Webanwendung zugreifen, von 50 auf 5000 steigt, ist es nicht möglich, die CGI-Schnittstelle an die erhöhte Last anzupassen. Die Anzahl der separaten Betriebssystemprozesse, die ein System ausführen kann, ist begrenzt.
- Die für CGI verwendeten Sprachen sind nicht immer sicher oder objektorientiert.
- Das CGI-Skript muss eine HTML-Antwort generieren, wodurch der CGI-Code mit HTML vermischt wird. Dies trennt die Geschäftslogik und die Präsentation nicht adäquat.
- Die Skriptsprachen sind oft plattformabhängig.
Die Lösung für diese Nachteile von CGI-Programmen sind Servlets.
Servlets als Alternative zu CGI
Vorteile und Nachteile von Servlets
Vorteile von Servlets
- Jede Anwendung wird in einem separaten Thread ausgeführt, wodurch Servlet-Anfragen deutlich schneller verarbeitet werden als traditionelle CGI-Verfahren.
- Servlets sind skalierbar. Sie können viel mehr Anwendungen unterstützen, da der Web-Container Threads anstelle von Betriebssystemprozessen (die eine begrenzte Ressource darstellen) verwendet.
- Servlets sind robust und objektorientiert.
- Servlets können nur in Java geschrieben werden, was die Entwicklung vereinfacht.
- Servlets sind plattformunabhängig, da sie in Java erstellt werden.
- Der Web-Container bietet zusätzliche Dienste für Servlets, wie Fehlerbehandlung und Sicherheit.
Nachteile von Servlets
- Servlets enthalten typischerweise Geschäftslogik und Präsentationslogik.
Die Präsentationslogik steuert, wie Informationen dem Benutzer präsentiert werden (z. B. das Generieren der HTML-Antwort innerhalb des Servlet-Codes). Die Geschäftslogik manipuliert Daten, um ein Ergebnis zu erzielen (z. B. das Speichern von Daten).
Das Mischen von Geschäftslogik und Präsentationslogik bedeutet, dass jedes Mal, wenn eine Webseite geändert wird (monatlich oder wöchentlich), das Servlet neu geschrieben, kompiliert und bereitgestellt werden muss.
Servlets müssen sich mit Parallelitätsfragen auseinandersetzen.