Welche Programmiersprachen versteht jeder Webserver und kann sie ausführen?

4 Antworten

Welche Programmiersprache interpretierbar ist, ist in jedem Fall eine individuelle Frage. Ein Apache Webserver kann bspw. mit Hilfe von Modulen (sowie den entsprechenden Interpretern), die man allerdings erst installieren / einrichten muss, Perl, PHP oder Python verwerten. Für einen IIS könnte man sich den Python Interpreter via Script Map einbinden. Andere Server wiederum sind vielleicht nur auf eine bestimmte Technologie (z.B. Java oder JavaScript) abgestimmt.

Bevor du also eine Webanwendung irgendwo hosten möchtest, solltest du erst einmal in Erfahrung bringen, was für ein Server zu der von dir genutzten Technologie passt. Hierbei muss nicht nur allein die Programmiersprache ein Entscheidungsfaktor sein, auch genutzte Frameworks/CMS stellen ab und an Anforderungen (z.B. bezüglich der Serverversion, o.ä.).

PS.: HTML ist keine Programmiersprache und von einem Webserver wird sie auch nicht wirklich verwertet. Die Interpretation eines HTML-Dokuments wird dem Browser überlassen.

Keine. Ein webserver ist erstmal nur ein Programm was Internetseiten an user verteilt, mehr ist da nicht die Anforderung.

Python wird bei linux meist mitgeliefert, aber ein webserver führt das nicht aus.

Ein Webserver kann ohne installierten Python Interpreter auch kein Python ausführen. Ebenfalls musst du (im Falle von Apache) das Python Modul aktivieren.

Das ist aber nicht bei jedem Webserver def Fall. Apache kann viele Sprachen, aber auch nicht alle.

Von Experte medmonk bestätigt

Webserver-Software wie Apache, NGinx oder IIS ist von Haus aus "dumm". Ihre einzige Aufgabe ist es, Dateien aus Ordnern auf dem Serverrechner auf Anfrage an einen Client auszuliefern, der dann damit macht, was er möchte. Ob das eine HTML-Datei, ein Word-Dokument oder ein PDF ist, ist dem Webserver zunächst einmal egal.

Dann kommen erstmal MIME-Typen ins Spiel. Man konfiguriert den Webserver erst einmal so, dass er für jeden Dateityp, den man liefern möchte, dem Client im HTTP-Response-Header mitteilt, um was es sich überhaupt handelt. Normalerweise sind die Webserver für die gängigen Typen bereits vorkonfiguriert.

Auf Basis dieser Information ("Welche Dateitypen kennst Du?") kann man nun dem Webserver auch mitteilen, ob er eventuell vor der Auslieferung bereits etwas mit der Datei tun soll.

Das geschieht, wenn serverseitige Scripts ausgeführt werden sollen. Man sagt dem Webserver in der Konfiguration beispielsweise: Wenn die Dateiendung .php ist, dann führe den PHP-Interpreter aus und liefere nicht die Datei selbst, sondern die Ausgabe des Interpreters.

Was ist nun also die Konsequenz für Deine Frage? Um quasi beliebige Programmiersprachen serverseitig einzubinden, muss meistens in etwa folgendes gegeben sein:

  1. ein Interpreter für das Script muss auf dem Server installiert sein
  2. der Interpreter muss (entweder direkt über CGI/FastCGI oder mithilfe eines Zusatzmoduls für den Webserver) in den Webserver eingebunden werden
  3. der Webserver muss so konfiguriert werden, dass ihm bekannt ist, welches Modul für welchen Dateityp zum Einsatz kommen soll

Prinzipiell könnte man somit jede Programmiersprache serverseitig einbinden - solange es eben solche Module für den Webserver gibt bzw. der Interpreter in der Lage ist, mit dem Webserver entsprechend Daten auszutauschen.