# Webseite

Als Webseite (Wortzusammensetzung aus Web und Seite), Webdokument, Internetseite, Webpage oder kurz Seite wird ein Dokument im World Wide Web bezeichnet, das mit einem Browser unter Angabe eines Uniform Resource Locators (URL) abgerufen und von einem Webserver angeboten werden kann.
Die Gesamtheit der Webseiten eines Internetauftritts wird als Website, Webpräsenz, Webauftritt, Internetpräsenz oder umgangssprachlich auch als Homepage bezeichnet. In der Fachsprache steht Homepage allerdings für die zentrale Seite einer Website, die meist deren Einstiegsseite bildet.
Als Startseite wird die Einstiegsseite einer Website bezeichnet oder auch die Seite, die beim Start eines Webbrowsers geladen wird.

## Aufbau

Webseiten bestehen zumeist aus einem Text im Format Hypertext Markup Language (HTML), in dem Bilder, andere Multimediaelemente, Stylesheets, Skripte für dynamische Funktionen der Seiten, Daten u. a. eingebunden sein können. Jede Webseite hat mindestens eine Adresse (URL), über die sie in einem Webbrowser aufgerufen werden kann. Eingebundene Elemente sind oft nicht direkt in die abgerufenen Daten einer Webseite integriert, sondern dort durch Angabe einer eigenen URL referenziert. Die meisten Webbrowser laden diese Elemente ohne weitere Interaktion nach, entweder durch eine neue Anfrage an den entsprechenden Webserver (nicht unbedingt identisch mit dem Server, von die Webseite geliefert wurde) oder aus einem lokalen Cache.
Die angezeigte Seite kann vom Browser auf der Festplatte des Besuchers als HTML-Datei abgespeichert werden. Dabei wird meist ein zur Datei ähnlich benanntes Verzeichnis erstellt, in dem die eingebundenen Elemente untergebracht sind.
Webseiten werden meist aus dem Internet oder einem Intranet geladen, können aber auch auf einem lokalen Speichermedium, zum Beispiel einer Festplatte, abgelegt sein.

## Rezeption

Webseiten auf einem Bildschirm werden anders wahrgenommen als gedruckte Textseiten. Englische Eye-Tracking-Versuche, bei denen die Augenbewegung des Lesers verfolgt wird, zeigten, dass die meisten Besucher einer Webseite den Text überfliegen (scannen) und dabei mit den Augen zunächst den oberen Rand und dann den linken Rand des Inhaltsbereichs abtasten. Es entsteht ein F-förmiger Bereich, der von den meisten Besuchern angeblickt wird. Besucher, die über eine Suchmaschine auf eine Webseite kommen, halten dort vorzugsweise nach ihrem Suchwort (Schlüsselwort) Ausschau. Aus diesen Tatsachen ergeben sich besondere Anforderungen für den Webtext.

## Erstellung

Die Erstellung und Gestaltung von Webseiten wird unter dem Begriff Webdesign zusammengefasst. Basissprache für die Erstellung ist die Auszeichnungssprache HTML, wobei die einheitliche und rationelle Formatierung mehrerer Webseiten durch Formatierungssprachen wie Cascading Style Sheets (CSS) erleichtert werden kann. Vor allem für das Erstellen dynamischer Seiten wurden weitere Sprachen entwickelt, mit deren Hilfe auch komplexe Gefüge aus Webseiten (siehe Website) erstellt werden können.

## Dynamische Webseiten

Im Gegensatz zu rein statischen Webseiten, die technisch meist ein HTML-Dokument auf dem Webserver darstellen, werden Webseiten häufig auch dynamisch oder aktiv im Moment der Anforderung erzeugt. Das ist dann sinnvoll, wenn eine Webseite sehr aktuelle Informationen wie beispielsweise Börsenkurse oder Wettervorhersagen enthalten soll. In diesem Fall führt der Webserver ein Programm aus, das vorher spezifisch für diese Aufgabe entwickelt wurde. Es trägt die Daten z. B. aus Datenbanken zusammen. Diese werden dann vom Webserver an den Browser übertragen und beim Benutzer angezeigt.
Ein anderer Anwendungsfall ergibt sich aus dem Bedürfnis, auf Eingaben des Benutzers zu reagieren, wie z. B. die Eingabe eines Suchbegriffs in eine Suchmaschine. Die Software der Suchmaschine erstellt anhand des Suchbegriffs eine Liste von passenden Links und erzeugt eine Webseite, die dem Benutzer diese Liste komfortabel darstellt.
Die Möglichkeit, Webseiten dynamisch in Abhängigkeit von Benutzereingaben und Datenbankinhalten zu generieren, machte das Web schnell zu einer universellen Plattform für viele Arten von Anwendungen. Die Vorteile liegen in Unabhängigkeit von Betriebssystemen und anderen Eigenschaften der Clients. Grundvoraussetzungen sind lediglich eine Netzwerkverbindung zum Server und ein Webbrowser.
Zum Generieren von dynamischen Webseiten kommen verschiedene Programme zum Einsatz, wobei sich die Dynamik auf dem Serversystem ausführen lassen muss. Um die Programmierung zu vereinfachen, wurden jedoch Standards wie das Common Gateway Interface (CGI) eingeführt, um Webanwendungen auch unabhängig von der Art des Webservers zu machen. Die Mehrzahl von CGI-Anwendungen wurden und werden in der Programmiersprache Perl geschrieben. Aufgrund des rasant steigenden Bedarfes zum Betrieb von Web-Anwendungen entwickelten sich Technologien wie PHP, J2EE und das .Net-Framework.
Da die Inhalte umfangreicher Websites meist von mehreren Personen eingepflegt werden, wird bei solchen Projekten häufig ein Content-Management-System (CMS) eingesetzt. Weiterer Vorteil sind die größere Flexibilität bei der Gestaltung und kürzere Einarbeitungszeit für die beteiligten Personen. Es drängen mehr und mehr meist PHP- und MySQL-basierte Lösungen in freier Software auf den Markt.
Im Gegensatz zu herkömmlichen CMS, wo Datenbankinhalte in vorgefertigte und relativ starre HTML-Schablonen eingefügt werden, kann ein strukturiertes XML-Ausgangsdokument das Layout erleichtern. Das ermöglicht die Herstellung auch von langen und zusammenhängenden Inhalten per XML-Editor sowie deren Präsentation in leicht rezipierbarer Form, etwa als webgerechtes E-Book, wobei eine einzige „Webseite“ aus etlichen Bildschirmseiten bestehen kann, die per CSS „gefaltet“ sind und sich bequem durchblättern oder per Menünavigation ansteuern lassen. Auch die Gestaltung ganzer Websites als grafische Benutzeroberflächen mit mehreren, parallel bedienbaren Elementen wird so möglich.
Mit den Standardisierungen für XML und XSLT hat das W3C im Dezember 2000 einen Weg gewiesen, wie sich auch „echte“ und damit statische HTML-Dokumente auf dynamischem Wege erzeugen lassen, die es an Komplexität mit den Datenbankauszügen eines CMS aufnehmen können oder diese sogar noch übertreffen: einfach gehaltene und auf den Inhalt beschränkte, dabei aber gut strukturierte Ausgangsdaten in XML werden durch einen angepassten XSL-Transformator in valides, komplexes HTML umgesetzt, das dann als statisches Dokument auf dem Webserver abrufbereit vorliegt.

## Trennung von Inhalt, Darstellung und Verhalten

Bei der Implementierung von Webseiten wird heutzutage in der Regel ein Technologie-Mix eingesetzt. Dazu gehören HTML, CSS und oft auch JavaScript. Es existieren verschiedene Möglichkeiten diese Techniken innerhalb eines HTML-Dokuments (Webseite) zu kombinieren. Der JavaScript-Code kann z. B. direkt „inline“ in der HTML-Beschreibung platziert werden. Hierzu kann das „Script“-Tag von HTML verwendet werden. Des Weiteren können über HTML-Eventhandler-Attribute, wie „onclick“ oder „ontouchstart“, direkte Verbindungen mit bestimmten JavaScript-Funktionen gesetzt werden. Bei einem solchen Vorgehen wird Logik für die Beschreibung des Inhalts, der Gestaltung und des Verhaltens gemischt. Durch eine Vermischung können spätere Änderungen am Verhalten nicht vorgenommen werden, ohne ebenfalls Inhalte (HTML) und Darstellung (CSS) zu berücksichtigen. Bei der Trennung kann dies separat angepasst und weiterentwickelt werden. Des Weiteren wird das HTML-Dokument vereinfacht und bleibt frei von längeren JavaScript-Bereichen und CSS-Definition. Folgende Trennung sollte erreicht werden:

### HTML-Content

    Das HTML-Dokument sollte lediglich den darzustellenden Inhalt aufbewahren. Die hierzu verwendeten HTML-Tags sollten frei von Eventhandler-Attributen und Inline-JavaScript-Code sein. Styling-Attribute mit CSS-Inhalten sollten zudem nicht im HTML-Markup verwendet werden.

### Visuelle Darstellung

    Die visuelle Darstellung des Contents der View sollte in separaten CSS-Dateien definiert werden. Die dort definierten Styles werden von der Rendering-Engine des Webbrowsers beim Aufbau der View angezogen. Die separate Definition der visuellen Darstellung erlaubt zusätzlich eine leichtere Anpassung der Präsentation für verschiedene Ausgabemedien. So kann beispielsweise ein responsives Webdesign umgesetzt werden, welches sich automatisch an die technischen Gegebenheiten des Endgerätes anpasst, wie zum Beispiel die Bildschirmgröße. Die Einbindung der CSS-Datei in dem HTML-Dokument sollte hierbei lediglich über ein „Link“-Tag im Kopfbereich des Dokuments erfolgen. Ältere HTML-Tags für die Anpassungen visueller Darstellungen, wie font oder center, sollen nicht mehr verwendet werden und wurden mit HTML5 als veraltet (eng. „deprecated“) gekennzeichnet.

### Verhalten

    Das clientseitige Verhalten einer Webseite und die Registrierung auf Eingabeereignisse sollten allein im JavaScript-Code erfolgen. Dieser Code sollte zudem in separaten JavaScript-Dateien untergebracht sein. Die Einbindung der JavaScript-Datei in das HTML-Dokument erfolgt hierbei ebenfalls mit dem Script-Tag. Allerdings wird mit dem src-Attribut eine externe Datei adressiert. Bei der Einbindung von JavaScript-Dateien in ein HTML-Dokument hat sich zudem die Strategie durchgesetzt, alle Script-Tags am Ende des HTML-Dokuments zu definieren. Grund hierfür ist das Renderingverhalten von Webbrowsern. Sobald der Webbrowser einen Script-Tag findet, wird das Script heruntergeladen und ausgeführt. Erst nach diesem Vorgang wird das eigentliche Rendering des restlichen Inhalts des HTML-Dokuments fortgesetzt. Wenn nun der Kopfbereich des HTML-Dokuments bereits mehrere Scripts definiert, bleibt die Webseite blockiert, bis alle Scripts geladen wurden. Alternativ kann das async- oder defer-Attribut von HTML5 für das Script-Tag verwendet werden. Allerdings dürfen dann die zuladenden Script-Dateien keine Abhängigkeiten aufweisen, da die genaue Reihenfolge des Ladens nicht mehr definiert ist.
Wenn die beschriebene Trennung von Inhalt, Verhalten und Darstellung berücksichtigt wird, sind zudem die verwendeten Techniken für die Implementierung von Webseiten in einzelne Bereiche aufgeteilt. Es kommt zu keiner direkten Vermischung. Durch die strikte Separierung erhöht sich die Wartbarkeit und Anpassbarkeit des Dokuments.
Als ein Haupthindernis für eine breite Verwendung dieser wesentlich erweiterten Möglichkeiten bzgl. Darstellung und Datenvorhaltung galt lange der Microsoft Internet Explorer, der als langjähriger Marktführer erst mit der 2009 erschienenen Version 8 auch hinsichtlich CSS ausreichende Standardkonformität bietet.