Webserver für eigene Webapp?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
Als Backend würde ich mit Java arbeiten oder Python.

Für Java wären Apache Tomcat, Jetty, GlassFish oder WildFly als Server denkbar. Bei den letzten beiden handelt es sich um vollausgestattete JEE-Applikationsserver. Für leichtergewichtige Anwendungen wären Tomcat oder Jetty die bessere Wahl. In Spring ist ein Apache Tomcat-Server sogar bereits integriert.

Bezüglich Python: Solltest du das Flask-Framework verwenden, kannst du den bereits integrierten Webserver nutzen. Für Produktionssysteme ist dieser allerdings nicht gedacht.

Python-Webanwendungen laufen gewöhnlicherweise als separate Anwendung zum eigentlichen Webserver. Dafür werden WSGI oder ASGI (unterstützt eine asynchrone Arbeitsweise) als Schnittstellen genutzt.

Übliche WSGI-Server wären Gunicorn, uWSGI oder ein Apache HTTP Server mit dem mod_wsgi-Modul, Optionen für ASGI könnten Daphne oder Uvicorn sein. Beachte hierbei allerdings, dass nicht jedes Python-Webframework eine direkte Kompatibilität für ASGI besitzt. Bei Flask wäre bspw. ein Adapter notwendig, eine grundsätzliche Flask-ASGI-Alternative wäre Quart.

Ich hatte auch gelesen, dass man PHP kennen sollte wenn man mit Webserver arbeitet?

Nein, das ist nicht richtig. PHP-Kenntnisse helfen dir weder bei der Konfiguration eines Tomcat-Servers, noch bei Gunicorn, o.ä..

Wenn du dich im Vorfeld mit PHP beschäftigen würdest, könntest du parallel erste Erfahrungen mit dem Apache HTTP Server sammeln, da dieser oft genutzt wird, um mit PHP entwickelte Webanwendungen auszuspielen. Das ist alles.

Hat vlt jmd auch ein gutes Tutorial für Anfänger zum Thema Webserver/Webapp?

Entscheide dich am besten erst einmal, mit welcher Programmiersprache du arbeiten möchtest und wähle zu dieser ein passendes Webframework.

Zur groben Unterscheidung zwischen Java und Python kann man sagen:

  • Python ist um einiges einfacher, die dazu verfügbaren Frameworks in der Regel leichtgewichtiger
  • Java ist leistungsstärker und mehr auf komplexe Webanwendungen (E-Commerce / Enterprise-Anwendungen) ausgelegt

Bekannte Frameworks für Python sind Bottle, CherryPy, Django, Falcon, Flask, Quart oder Pyramid. Mit Ausnahme von Django und Pyramid handelt es sich bei diesen um Mikroframeworks. Das heißt, sie sind im Kern recht einfach gehalten, erlauben auf der anderen Seite aber auch einige Flexibilität (du kannst bspw. selbst auswählen, mit welcher Datenbank oder welcher Template Engine du arbeiten möchtest).

Schau in die jeweiligen Online-Dokumentationen für einen Einstieg. Ansonsten findest du auf RealPython oder Medium Artikel zu bspw. Flask oder Django (teils für den Einstieg, teils über konkrete Grundkonzepte / zu konkreten Features).

Zu Java gibt es ebenfalls eine ganze Palette an Frameworks, die sich z.T. auch auf spezifische Anwendungsfelder fokussiert haben. Nennenswert wären vor allem Spring, Play und Struts. Als Alternative dazu sollte Jakarta EE (JEE / ehemals Java EE) nicht unerwähnt bleiben.

Es gibt zwar verstreut über das Internet einzelne Online-Artikel zu JEE und sicherlich auch Videokurse, doch würde ich in dem Zusammenhang eher dazu raten, sich Fachlektüre zu holen. Sowohl der Rheinwerk-, als auch der Apress-Verlag führen Bücher zu dem Thema.

Hinsichtlich der anderen benannten Technologien (Spring, Struts, ...) wäre wie so oft die offizielle Dokumentation eine gute erste Anlaufstelle, auf Baeldung findest du mehrere Artikel zu Spring-Modulen. Nichtsdestotrotz wäre ebenfalls Literatur zu empfehlen - schau nach Büchern aus der ... in Action-Reihe (Manning-Verlag) oder Büchern von Apress und Packt.

Was die einzelnen Server angeht (seien sie für Java oder Python): In (Einstiegs-)Tutorials / Büchern / Videokursen / u.ä. findet sich in der Regel ein Kapitel / Abschnitt, der auf das Deployment einer Webanwendung eingeht. Für spezifische Fragen sollte im Weiteren die Online-Dokumentation weiterhelfen.