Was ist der Unterschied zwischen einem Anwendungsserver und einem Webserver?

Trotz des durch „Anwendungsserver vs. Webserver“ suggerierten Gegensatzes werden beide Servertypen im Internet in der Regel gemeinsam eingesetzt, um einen gemeinsamen Zweck zu erfüllen: Benutzeranfragen nach Inhalten einer Website zu bearbeiten. Es gibt keine Standarddokumente, die die Eigenschaften von Webservern und Anwendungsservern definieren. Sehen wir uns daher an, wie diese Begriffe üblicherweise verstanden werden.

Die grundlegende Aufgabe eines Webservers besteht darin, Anfragen von Clients nach statischen Inhalten einer Website (HTML-Seiten, Dateien, Bildern, Videos usw.) entgegenzunehmen und zu bearbeiten. Beim Client handelt es sich fast immer um einen Browser oder eine mobile Anwendung. Sowohl die Anfrage als auch die Antwort des Webservers erfolgt in Form einer Nachricht gemäß dem Hypertext Transfer Protocol (HTTP).

Die grundlegende Aufgabe eines Anwendungsservers besteht darin, seinen Clients Zugriff auf die sogenannte Geschäftslogik zu gewähren, die dynamische Inhalte erzeugt. Dabei handelt es sich um Code, der Daten verarbeitet, um die spezifischen Funktionen bereitzustellen, die ein Unternehmen, ein Dienst oder eine Anwendung anbietet. Bei den Clients eines Anwendungsservers handelt es sich häufig selbst um Anwendungen, darunter Webserver und andere Anwendungsserver. Die Kommunikation zwischen dem Anwendungsserver und seinen Clients kann über HTTP-Nachrichten erfolgen, ist jedoch – anders als bei der Kommunikation zwischen Webservern und ihren Clients – nicht darauf beschränkt. Viele andere Protokolle sind ebenfalls verbreitet, darunter verschiedene CGI-Varianten.

Wie arbeiten Anwendungsserver und Webserver zusammen?

In einer typischen Bereitstellung nutzt eine Website, die sowohl statische als auch dynamisch generierte Inhalte bereitstellt, Webserver für die statischen Inhalte und Anwendungsserver für die dynamische Generierung von Inhalten. Ein Reverse-Proxy und ein Load-Balancer sind einem oder mehreren Webservern sowie einem oder mehreren Webanwendungsservern vorgeschaltet, um den Datenverkehr an den entsprechenden Server weiterzuleiten – zunächst anhand der Art des angeforderten Inhalts und anschließend anhand des konfigurierten Lastverteilungsalgorithmus. Die meisten Load-Balancer-Programme fungieren zugleich als Reverse-Proxy-Server, was die Architektur von Webanwendungsservern vereinfacht.

Warum diese Frage?

Warum stellt sich überhaupt die Frage, ob etwas ein Anwendungsserver oder ein Webserver ist? Das liegt vor allem daran, dass sich Konzeption und Nutzung der beiden Servertypen mit den steigenden Anforderungen an Websites zunehmend überschneiden. Viele beliebte Anwendungen fungieren sowohl als Webserver als auch als Anwendungsserver (zum Beispiel Apache HTTP Server, Express, Hapi und Koa).

Eine weitere Überschneidung besteht darin, dass einige Webanwendungsserver HTTP als Kommunikationsprotokoll verwenden. Ebenso ähneln manche Webserver letztlich Anwendungsservern, da sie über integrierte Module und Funktionen verfügen, die gängige Sprachen wie PHP nativ unterstützen oder Anfragen per Proxy weiterleiten und von HTTP in das von der Anwendung verwendete Protokoll (z. B. FastCGI) übersetzen.

Wie kann NGINX Plus helfen?

NGINX Plus und NGINX sind erstklassige Load-Balancing-Lösungen, die von stark frequentierten Websites wie Dropbox, Netflix und Zynga eingesetzt werden. Mehr als 350 Millionen Websites weltweit setzen auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen.

NGINX Plus ist ein äußerst effizienter Reverse-Proxy und Load-Balancer, wenn es vor Web- und Anwendungsservern eingesetzt wird, und bietet Übersetzungsmodule für verschiedene Arten von Anwendungsservern, darunter FastCGI und SCGI. NGINX Plus vereint mehrere Funktionen – darunter Webbereitstellung, erweitertes Load-Balancing, Caching, Verwaltung und Überwachung sowie Anfragen-Routing – in einer einzigen flexiblen, kosteneffizienten Lösung zur schnellen und zuverlässigen Bereitstellung statischer und dynamischer Inhalte, die Kundenzufriedenheit und Umsatz steigert. Es ist die umfassende Plattform für die Anwendungsbereitstellung, die für moderne Hochleistungswebsites unverzichtbar ist.