900 Stimmen

Was ist der Unterschied zwischen Anwendungsserver und Webserver?

Was ist der Unterschied zwischen Anwendungsserver und Webserver?

3voto

stdout Punkte 2111

IMO geht es vor allem um die Trennung der Interessen.

Aus rein technischer Sicht können Sie alles (Webinhalte + Geschäftslogik) auf einem einzigen Webserver erledigen. In diesem Fall würden die Informationen in den gewünschten HTML-Inhalt eingebettet werden. Was wären die Auswirkungen?

Stellen Sie sich zum Beispiel vor, Sie haben 2 verschiedene Anwendungen, die völlig unterschiedliche HTML-Inhalte im Browser darstellen. Wenn Sie die Geschäftslogik in einem App-Server trennen würden, könnten Sie verschiedene Web-Server bereitstellen, die dieselben Daten im App-Server über Skripte abrufen. Wenn Sie die Logik jedoch nicht trennen und im Webserver belassen würden, müssten Sie sie bei jeder Änderung des Geschäftsmodells in jedem einzelnen Webserver ändern, was mehr Zeit in Anspruch nehmen würde, weniger zuverlässig und fehleranfällig wäre.

3voto

Bablu Ahmed Punkte 3562

Anwendungsserver und Webserver werden beide zum Hosten von Webanwendungen verwendet. Web Server ist mit Web-Container auf der anderen Seite Application Server ist mit Web-Container sowie EJB (Enterprise JavaBean) Container oder COM + Container für Microsoft Dot Net befassen.

Der Webserver wurde entwickelt, um statische HTTP-Inhalte wie HTML, Bilder usw. bereitzustellen. Für dynamische Inhalte gibt es Plugins, die Skriptsprachen wie Perl, PHP, ASP, JSP usw. unterstützen, und er ist auf das HTTP-Protokoll beschränkt. Die folgenden Server können dynamische HTTP-Inhalte erzeugen.

Die Programmierumgebung des Webservers:

IIS : ASP (.NET)

Apache Tomcat: Servlet

Steg: Servlet

Apache: Php, CGI

Der Anwendungsserver kann alles, was ein Webserver kann, und hört auf jedes Protokoll, und der Anwendungsserver verfügt über Komponenten und Funktionen zur Unterstützung von Diensten auf Anwendungsebene wie Verbindungspooling, Objektpooling, Transaktionsunterstützung, Nachrichtendienste usw.

Die Programmierumgebung des Anwendungsservers:

MTS: COM+

WAS: EJB

JBoss: EJB

WebLogic Anwendungsserver: EJB

2voto

BeastCoder Punkte 1783

IBM macht einen wirklich schönen Vergleich zwischen den beiden :

Nach der strengen Definition ist ein Webserver eine gemeinsame Untergruppe eines Anwendungsservers.

Ein Webserver liefert statische Webinhalte - z. B. HTML-Seiten, Dateien, Bilder, Videos - in erster Linie als Antwort auf Hypertext-Transfer-Protokoll (HTTP)-Anfragen von einem Webbrowser.

Ein Anwendungsserver kann in der Regel auch Webinhalte bereitstellen, aber seine Hauptaufgabe besteht darin, die Interaktion zwischen Endbenutzer-Clients und serverseitigem Anwendungscode zu ermöglichen - Code, der das darstellt, was oft als Geschäftslogik -um dynamische Inhalte zu generieren und bereitzustellen, z. B. Transaktionsergebnisse, Entscheidungshilfen oder Echtzeit-Analysen. Der Client für einen Anwendungsserver kann die anwendungseigene Benutzeroberfläche, ein Webbrowser oder eine mobile App sein, und die Interaktion zwischen Client und Server kann über eine beliebige Anzahl von Kommunikationsprotokollen erfolgen.

In der Praxis ist die Grenze zwischen Webservern und Anwendungsservern jedoch unschärfer geworden, insbesondere da sich der Webbrowser als Anwendungsclient der Wahl durchgesetzt hat und die Erwartungen der Benutzer an Webanwendungen und deren Leistung gestiegen sind.

Die meisten Webserver unterstützen Plug-ins für Skriptsprachen (z. B. ASP, JSP, PHP, Perl), die es dem Webserver ermöglichen, dynamische Inhalte auf der Grundlage einer serverseitigen Logik zu erzeugen. Und immer mehr Anwendungsserver verfügen nicht nur über Webserver-Funktionen, sondern verwenden HTTP als primäres Protokoll und unterstützen andere Protokolle (z. B. CGI und CGI-Varianten) für die Schnittstelle zu Webservern. Außerdem ermöglichen sie es Webanwendungen, Dienste wie Reverse Proxy, Clustering, Redundanz und Lastausgleich -Services, die die Leistung und Zuverlässigkeit verbessern und es Entwicklern ermöglichen, sich weniger auf die Infrastruktur und mehr auf die Programmierung zu konzentrieren.

Um die Sache noch verwirrender zu machen, werden viele Webserver und einige Anwendungsserver als "Server" bezeichnet bzw. bezeichnen sich selbst als Web-Anwendungsserver .

Unterm Strich sind die heute beliebtesten Web- und Anwendungsserver Mischformen aus beidem. Die meisten der immer umfangreicheren Anwendungen, die Sie heute nutzen, enthalten eine Kombination aus statischen Webinhalten und dynamischen Anwendungsinhalten, die über eine Kombination aus Webserver- und Anwendungsservertechnologien bereitgestellt werden.

2voto

blue_note Punkte 25040
  • Webserver: Für jede URL gibt er eine Datei zurück. Das ist alles, was er tut. Die Datei ist statische Inhalte Das bedeutet, dass sie irgendwo auf dem Server gespeichert ist, bevor Sie Ihren Antrag stellen . Die beliebtesten Webserver sind apache http y nginx .
  • Anwendungsserver: für jede URL, es führt einen Code aus, der in einer bestimmten Sprache geschrieben ist , erzeugt eine Antwort und gibt sie zurück. Die Antwort existiert nicht im Voraus, sie wird für Ihre spezielle Anfrage generiert, das heißt, sie ist dynamischer Inhalt . Anwendungsserver sind für jede Sprache unterschiedlich. Einige beliebte Beispiele sind tomcat/jetty für Java, uwsgi/gunicorn für Python.

Fast jede Seite, die Sie besuchen, verwendet beides. Der statische Inhalt (z. B. Bilder, Videos) wird vom Webserver bereitgestellt, und der Rest (die Teile, die sich zwischen Ihnen und anderen Benutzern unterscheiden) wird vom Anwendungsserver generiert.

2voto

から https://en.wikipedia.org/wiki/Web_server

A Webserver ist ein Computersystem, das Anfragen über HTTP, das grundlegende Netzwerkprotokoll für die Verbreitung von Informationen im World Wide Web, verarbeitet. Der Begriff kann sich auf das gesamte System oder speziell auf die Software beziehen, die nimmt die HTTP-Anfragen an und überwacht sie .

から https://en.wikipedia.org/wiki/Application_server#Application_Server_definition

Ein Anwendungsserver läuft hinter einem Webserver (z. B. Apache oder Microsoft Internet Information Services (IIS)) und (fast immer) vor einer SQL-Datenbank (z. B. PostgreSQL, MySQL oder Oracle).

Webanwendungen sind Computercodes, die auf Anwendungsservern laufen und in der/den vom Anwendungsserver unterstützten Sprache(n) geschrieben sind und die Laufzeitbibliotheken und -komponenten aufrufen, die die Anwendungsserver bietet .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X