Was ist ein Webserver?

In diesem Artikel erklären wir, was Webserver sind, wie sie funktionieren und warum sie wichtig sind.

Voraussetzungen: Sie sollten bereits wissen, wie das Internet funktioniert, und den Unterschied zwischen einer Webseite, einer Website, einem Webserver und einer Suchmaschine verstehen.
Ziel: Sie werden lernen, was ein Webserver ist, und ein allgemeines Verständnis dafür erlangen, wie er funktioniert.

Zusammenfassung

Der Begriff Webserver kann sich auf Hardware oder Software beziehen, oder auf beides, wenn sie zusammenarbeiten.

  1. Auf der Hardwareseite ist ein Webserver ein Computer, der Webserver-Software und die Komponenten-Dateien einer Website speichert (zum Beispiel HTML-Dokumente, Bilder, CSS-Stylesheets und JavaScript-Dateien). Ein Webserver ist mit dem Internet verbunden und unterstützt den physischen Datenaustausch mit anderen Geräten, die mit dem Web verbunden sind.
  2. Auf der Softwareseite umfasst ein Webserver mehrere Komponenten, die steuern, wie Webbenutzer auf gehostete Dateien zugreifen. Mindestens ist dies ein HTTP-Server. Ein HTTP-Server ist Software, die URLs (Webadressen) und HTTP (das Protokoll, das Ihr Browser verwendet, um Webseiten anzuzeigen) versteht. Ein HTTP-Server kann über die Domainnamen der Websites, die er speichert, zugegriffen werden und liefert den Inhalt dieser gehosteten Websites an das Gerät des Endbenutzers.

Auf der grundlegendsten Ebene fordert ein Browser immer dann, wenn er eine auf einem Webserver gehostete Datei benötigt, die Datei über HTTP an. Wenn die Anfrage den richtigen (Hardware-)Webserver erreicht, akzeptiert der (Software-) HTTP-Server die Anfrage, findet das angeforderte Dokument und sendet es zurück an den Browser, ebenfalls über HTTP. (Wenn der Server das angeforderte Dokument nicht findet, gibt er stattdessen eine 404-Antwort zurück.)

Grundlegende Darstellung einer Client/Server-Verbindung über HTTP

Um eine Website zu veröffentlichen, benötigen Sie entweder einen statischen oder einen dynamischen Webserver.

Ein statischer Webserver, oder Stack, besteht aus einem Computer (Hardware) mit einem HTTP-Server (Software). Wir nennen ihn "statisch", weil der Server seine gehosteten Dateien unverändert an Ihren Browser sendet.

Ein dynamischer Webserver besteht aus einem statischen Webserver plus zusätzlicher Software, meistens einem Anwendungsserver und einer Datenbank. Wir nennen ihn "dynamisch", weil der Anwendungsserver die gehosteten Dateien aktualisiert, bevor er den Inhalt über den HTTP-Server an Ihren Browser sendet.

Um die endgültigen Webseiten zu erzeugen, die Sie im Browser sehen, könnte der Anwendungsserver zum Beispiel eine HTML-Vorlage mit Inhalten aus einer Datenbank füllen. Seiten wie MDN oder Wikipedia haben Tausende von Webseiten. Typischerweise bestehen solche Seiten nur aus wenigen HTML-Vorlagen und einer riesigen Datenbank, statt aus Tausenden von statischen HTML-Dokumenten. Dieses Setup erleichtert die Pflege und Bereitstellung des Inhalts.

Tiefer eintauchen

Um das Ganze noch einmal zu überdenken: Um eine Webseite abzurufen, sendet Ihr Browser eine Anfrage an den Webserver, der die angeforderte Datei in seinem eigenen Speicherplatz sucht. Wenn die Datei gefunden wird, liest der Server sie, verarbeitet sie nach Bedarf und sendet sie an den Browser. Schauen wir uns diese Schritte genauer an.

Dateien hosten

Zuerst muss ein Webserver die Dateien der Website speichern, nämlich alle HTML-Dokumente und ihre zugehörigen Ressourcen, einschließlich Bilder, CSS-Stylesheets, JavaScript-Dateien, Schriftarten und Videos.

Technisch gesehen könnten Sie all diese Dateien auf Ihrem eigenen Computer hosten, aber es ist viel bequemer, alle Dateien auf einem dedizierten Webserver zu speichern, weil:

  • Ein dedizierter Webserver typischerweise verfügbarer ist (in Betrieb und funktionsfähig).
  • Abgesehen von Ausfallzeiten und Systemproblemen ist ein dedizierter Webserver immer mit dem Internet verbunden.
  • Ein dedizierter Webserver kann die ganze Zeit über die gleiche IP-Adresse haben. Dies wird als dedizierte IP-Adresse bezeichnet. (Nicht alle ISPs stellen eine feste IP-Adresse für Heimleitungen bereit.)
  • Ein dedizierter Webserver wird typischerweise von einem Dritten gewartet.

Aus all diesen Gründen ist es ein wichtiger Teil beim Erstellen Ihrer Website, einen guten Hosting-Anbieter zu finden. Prüfen Sie die verschiedenen Services, die Unternehmen anbieten. Wählen Sie einen, der Ihren Bedürfnissen und Ihrem Budget entspricht. (Die Angebote reichen von kostenlos bis zu Tausenden von Dollar pro Monat.) Weitere Details finden Sie in diesem Artikel.

Sobald Sie einen Webhosting-Dienst haben, müssen Sie Ihre Dateien auf Ihren Webserver hochladen.

Kommunikation über HTTP

Zweitens bietet ein Webserver Unterstützung für HTTP (Hypertext Transfer Protocol). Wie der Name schon sagt, spezifiziert HTTP, wie Hypertext (verknüpfte Webdokumente) zwischen zwei Computern übertragen wird.

Ein Protokoll ist ein Satz von Regeln für die Kommunikation zwischen zwei Computern. HTTP ist ein textuelles, zustandsloses Protokoll.

Textuell

Alle Befehle sind im Klartext und menschlich lesbar.

Zustandslos

Weder der Server noch der Client merken sich vorherige Kommunikation. Zum Beispiel kann ein Server sich bei alleiniger Verwendung von HTTP kein Passwort merken, das Sie eingegeben haben, oder Ihren Fortschritt bei einer unvollständigen Transaktion verfolgen. Für solche Aufgaben benötigen Sie einen Anwendungsserver. (Wir werden diese Art von Technologie in anderen Artikeln behandeln.)

HTTP liefert klare Regeln dafür, wie ein Client und ein Server kommunizieren. Wenn Sie mehr erfahren möchten, können Sie die HTTP-Dokumentation lesen. Für den Moment gibt es ein paar Dinge zu beachten:

  • Clients machen HTTP-Anfragen an Server. Server antworten auf eine Client-HTTP-Anfrage.
  • Wenn Clients eine Datei über HTTP anfordern, müssen sie die URL der Datei angeben.
  • Der Webserver muss jede HTTP-Anfrage beantworten, zumindest mit einer Fehlermeldung.

Auf einem Webserver ist der HTTP-Server verantwortlich für die Verarbeitung und Beantwortung eingehender Anfragen.

  1. Nach Erhalt einer Anfrage überprüft ein HTTP-Server, ob die angeforderte URL mit einer vorhandenen Datei übereinstimmt.
  2. Wenn ja, sendet der Webserver den Dateiinhalte zurück an den Browser. Wenn nicht, wird überprüft, ob die Anfrage die dynamische Generierung einer Datei erfordert (siehe Statische vs. dynamische Inhalte).
  3. Wenn weder von beiden Optionen möglich ist, gibt der Webserver eine Fehlermeldung an den Browser zurück, in der Regel 404 Not Found. Der 404-Fehler ist so verbreitet, dass einige Webdesigner beträchtliche Zeit und Mühe investieren, um 404-Fehlerseiten zu gestalten. Die MDN 404-Seite als Beispiel für eine solche Fehlerseite

Statische vs. dynamische Inhalte

Grob gesagt kann ein Server entweder statische oder dynamische Inhalte bereitstellen. Denken Sie daran, dass der Begriff statisch bedeutet "wie es ist serviert". Statische Websites sind am einfachsten einzurichten, daher empfehlen wir Ihnen, Ihre erste Seite als statische Seite zu erstellen.

Der Begriff dynamisch bedeutet, dass der Server den Inhalt verarbeitet oder ihn sogar dynamisch aus einer Datenbank erstellt. Dieser Ansatz bietet mehr Flexibilität, aber der technische Stack ist komplexer, was den Aufbau einer Website erheblich herausfordernder macht.

Es ist unmöglich, ein einziges gebrauchsfertiges Anwendungsserver-Produkt vorzuschlagen, das die richtige Lösung für jeden möglichen Anwendungsfall darstellt. Einige Anwendungsserver sind darauf ausgelegt, Blogs, Wikis oder E-Commerce-Lösungen zu hosten und zu verwalten, während andere generischer sind. Wenn Sie eine dynamische Website erstellen, nehmen Sie sich die Zeit, Ihre Anforderungen zu erforschen und die Technologie zu finden, die am besten zu Ihren Bedürfnissen passt.

Die meisten Website-Entwickler müssen keinen Anwendungsserver von Grund auf neu erstellen, da es so viele gebrauchsfertige Lösungen gibt, von denen viele hochgradig konfigurierbar sind. Wenn Sie jedoch Ihren eigenen Server erstellen müssen, sollten Sie wahrscheinlich ein Server-Framework verwenden, um auf bestehendem Code und Bibliotheken aufzubauen und nur die Teile zu erweitern, die Sie benötigen, um Ihren Anwendungsfall zu erfüllen. Nur eine relativ kleine Anzahl von Entwicklern sollte einen Server komplett von Grund auf neu entwickeln müssen: zum Beispiel, um enge Ressourceneinschränkungen auf einem eingebetteten System zu erfüllen. Wenn Sie experimentieren möchten, wie man einen Server erstellt, schauen Sie sich die Ressourcen im Serverseitigen Website-Programmierung Lernpfad an.

Nächste Schritte

Nun, da Sie mit Webservern vertraut sind, könnten Sie: