vorheriges KapitelInhaltsverzeichnisStichwortverzeichnisFeedbacknächstes Kapitel


Woche 1

Tag 1

Einführung & Grundlagen

Nochmals willkommen zu »JavaScript in 21 Tagen«. Vielleicht stellen Sie sich gerade die Frage: »Was kann ich mit JavaScript anstellen?«. In den nächsten drei Wochen wollen wir diese Frage beantworten. Grundsätzlich werden Sie aber sicher schon eine Vorstellung davon haben, was JavaScript ist - eine an Java angelehnte, offene, plattformunabhängige Scriptsprache. Sie wurde von der Firma Netscape (http:// www.netscape.com) in Kooperation mit Sun Microsystem (http:// www.sun.com) entwickelt.

JavaScript wird auf Grund des ähnlichen Namens oft mit Java verwechselt. Die Sprache ist jedoch nur sehr weitläufig mit Java verwandt, obwohl bei der Entwicklung von JavaScript mit Sun der Erfinder von Java mit im Boot saß. Wir werden auf genauere Details später im Buch noch eingehen.

Neben JavaScript werden wir gelegentlich JScript erwähnen. Bei JScript handelt es sich um einen Ableger von JavaScript, welcher hauptsächlich der Unterstützung von JavaScripten im Internet Explorer der Firma Microsoft (http://www.microsoft.com) dient. Dort gibt es aus Lizenzgründen keinen direkten JavaScript-Interpreter. JScript stimmt in der Syntax in großen Bereichen mit JavaScript überein.

Grundsätzlich basiert jede Webseite auf HTML (HyperText Markup Language). So wichtig und grundlegend HTML jedoch für das Web ist - eine rein in HTML erstellte Webseite ist in ihrer Leistungsfähigkeit in alle Richtungen stark begrenzt und muss sich für viele Situationen supplementärer Technologien bedienen. Ob Style Sheets, Grafiken, Videos, Java-Applets, ActiveX-Controls oder Scripte - alle ergänzen im Rahmen einer Webseite HTML in gewisse Richtungen. Und alle verankern sich mittels HTML in einer Webseite, werden als Referenz einfach in den HTML-Code eingebunden oder direkt hineingeschrieben.

JavaScript ist in vielerlei Hinsicht die ideale Ergänzung zu HTML. JavaScript ist die wohl am weitesten unterstützte Scriptsprache für das World Wide Web, dazu noch leistungsfähig und dennoch recht einfach zu lernen. Mit einer Scriptsprache wie JavaScript kann man den eingeschränkten Client-Server-Prozess (was das ist, werden wir in dieser Lektion noch besprechen) einer »normalen« Internet-Verbindung im Rahmen des WWW (etwa mit HTML und CGI - Common Gateway Interface) mit Intelligenz aufwerten oder statische HTML-Seiten dynamisieren. Zudem erlauben JavaScripte die Programmierung von Clientprogrammen (Browser), optimieren, steuern oder kontrollieren Interaktionen, automatisieren Vorgänge, steuern und beeinflussen andere ergänzende Technologien (wie sie gerade angeführt wurden) und noch vieles mehr. Obwohl JavaScript von relativ einfacher Struktur ist, erlaubt der potentielle Zugriff auf vorgefertigte Module (Objekte) die Erstellung von vielen komplexen Vorgängen.

Wir wollen am ersten Tag unserer JavaScript-Tour die Hauptsache - eben JavaScript - erst einmal etwas hinten anstellen und zuerst grundlegende Begriffe rund um JavaScript und vor allem deren Umgebung im Allgemeinen klären. Wundern Sie sich nicht, wenn die einführende Etappe recht umfangreich ist - sie beinhaltet viel grundlegende, aber recht eingängige Theorie und kann deshalb leicht in einem Tag bewältigt werden. Sie lernen in dieser ersten Lektion Folgendes:

Grundlagen des Internets und des WWW

Es scheint so, dass man kaum jemand in einem Buch des 21. Jahrhunderts den Begriff Internet noch erklären muss. Selbst Personen, welche keinen Videorecorder programmieren könnten (wobei das komplizierter sein kann, als ein JavaScript zu schreiben ;-)), reden über das Internet mit, nutzen es möglicherweise oder kaufen gar Aktien von DOT-COM-Firmen1. Dass das Internet ein weltweites Netzwerk mit unzähligen Einsatzmöglichkeiten ist, hat man wahrscheinlich im hintersten Winkel der zivilisierten Welt bereits gehört. Internet als Begriff gehört mittlerweile zum normalen Sprachgebrauch. Das heißt aber noch lange nicht, dass alle, die über Internet reden, auch wissen, was sie da von sich geben oder was sich hinter in die Umgangssprache eingegangenen Fachbegriffen überhaupt verbirgt2. Es ist einfach zu »hipp«, Begriffe aus der IT-Branche einzustreuen. An sämtlichen Stellen, wo so etwas Sinn machen könnte oder einfach nur gut klingt. Wer nachfragt, erntet vielfach ein mildes Lächeln statt Erklärung. Was aber wie gesagt oft nicht bedeutet, dass der Gefragte die Antwort überhaupt weiß.

Dies äußert sich vielfach an ganz einfachen Grundfragen. Wenn ich beispielsweise in der Einleitung zu meinen Internet-Schulungen die Frage nach dem Alter des Internets stelle, wird diese Frage meist falsch beantwortet. Das Alter des Internets wird überwiegend viel zu jung geschätzt. Oder die Frage, welche wichtigen Dienste die Säulen des Internet bilden. Schon der Begriff Dienste ist für viele Teilnehmer ein Rätsel. Und das, obwohl sie diese Dienste teilweise wie selbstverständlich nutzen.

Das Wissen über das Internet und dessen Grundlagen erscheint mir bei vielen Leuten wie ein riesiges Gebäude, das auf einem maroden Fundament steht und dessen tragende Säulen extrem morsch sind. Zwar ist eigentlich überall ein gewisses Basiswissen da, man kann irgendwie mit Dingen umgehen, aber wehe es wird nachgebohrt. Im Nu trifft man auf Hohlräume, und schnell bricht das gesamte Gebäude zusammen. Dies kann aber kaum als Vorwurf an die breite Masse der Internet-Anwender gewertet werden. Diese werden einfach von Unmengen von nicht näherer erläuterten Informationen und falsch eingesetzten Begriffen überschüttet. Es soll ein Vorwurf an diejenigen sein, welche immer wieder Begriffe und Hintergründe voraussetzen, die erklärungsbedürftig sind, oder die Fachbegriffe einfach einsetzen, ohne sie selbst zu verstehen. Wir wollen insoweit diesem Manko abhelfen, als wir die wichtigsten Begriffe - obwohl scheinbar mittlerweile allgemein bekannt - nochmals durchsprechen.

Klären wir als Erstes die oben zitierte Frage nach dem Alter des Internets. Das Internet geht von der Idee her bis in die sechziger Jahre zurück. Und hat was mit Schweinen zu tun. Zumindest am Rande. Schweinen? Ja, aber im übertragenen Sinn ;-). Genau genommen mit der Invasion in der Schweinebucht in Kuba, mit der Exilkubaner mit Hilfe des CIA Fidel Castro stürzen wollten. Die Kubakrise, die drohende Stationierung von Atomwaffen auf Kuba durch die damalige UdSSR und der gesamte unselige kalte Krieg dieser Epoche bewirkte die Entwicklung eines Rechnernetzwerks, das bei einem potentiellen atomaren Erstschlag der UdSSR die USA zu einem Gegenschlag befähigen sollte. In den späten sechziger Jahren begann in den Vereinigten Staaten von Amerika eine Organisation mit Namen Advanced Research Projects Agency (ARPA) im Auftrag des US-Verteidigungsministeriums, ein solches Rechnersystem zu entwickeln. Kernziele des Systems sollten eine extrem hohe Ausfallsicherheit sein. Insbesondere sollte die Datenübertragung zwischen den einzelnen Rechnern unter allen Umständen funktionieren - auch beim Ausfall eines beliebigen Rechners im Netz und der Zerstörung eines Teils des Leitungssystems.

Wesentlicher Bestandteil war in Bezug auf die Ausfallsicherheit der Verbindungsstrukturen die Unterstützung von heterogenen Leitungsstrukturen. Von permanenten - und damit sehr schnellen - Standleitungen bis zu äußerst flexiblen und sicheren Telefonverbindungen - die unterschiedlichsten Techniken wurden einkalkuliert, um eine möglichst krisensichere Verbindung zu gewährleisten.

Zu Beginn (1969) bestand das ARPANET nur aus vier Computern, aber bereits 1972 waren ungefähr 50 militärische Forschungsanstalten und Rechner in Universitäten daran angeschlossen. In den Jahren 1973/74 bekam das Netz dann ein standardisiertes Übertragungsprotokoll, auf dem auch heute noch die meisten Vorgänge im Internet basieren - TCP/IP (Transmission Control Protocol/Internet Protocol).

Ein Protokoll kann als eine Vereinbarung verstanden werden, wie verschiedene unabhängige Einheiten (Personen, Tiere, Computer, Organisationen, beliebige Datengeräte usw.) so miteinander umgehen können, dass gewünschte Prozesse zuverlässig funktionieren. Dabei werden alle Schritte standardisiert, die für einen erfolgreichen Ablauf notwendig sind. Diese werden dann protokolliert und alle Beteiligten soweit wie notwendig bekannt gegeben.

Als Beispiel kann man die Kommunikation zwischen zwei Faxgeräten heranziehen, die wir einmal abstrakt durchspielen wollen. Das Kommunikationsprotokoll beim empfangsbereiten Fax könnte so aussehen:

1. Nehme ankommenden Anruf entgegen.

2. Analysiere, ob Sprachanruf, Datenanruf oder Faxanruf.

3. Bei Sprach- oder Datenanruf unterbreche die Verbindung.

4. Frage beim anrufenden Fax verstandene Übertragungsprotokolle ab.

5. Bestimme in Kooperation mit der Gegenstelle bestes gemeinsames Übertragungsprotokoll.

6. Bestimme in Kooperation mit der Gegenstelle maximal mögliche Übertragungsrate.

7. Warte auf die Übertragung der eigentlichen Daten.

Die entsprechenden Schritte auf Seiten des anrufenden Faxgerätes könnten so aussehen:

1. Warte, bis Anruf angenommen wird.

2. Analysiere, ob Gegenstelle ein Faxgerät.

3. Bei fehlender Rückmeldung durch ein annehmendes Faxgerät unterbreche die Verbindung nach adäquater Zeit.

4. Beantworte die Frage des angerufenen Fax nach den verstandenen Übertragungsprotokollen.

5. Bestimme in Kooperation mit der Gegenstelle bestes gemeinsames Übertragungsprotokoll.

6. Bestimme in Kooperation mit der Gegenstelle maximal mögliche Übertragungsrate.

7. Starte die Übertragung der eigentlichen Daten.

Die jeweils abwechselnd durchzuführenden Schritte definieren ein Protokoll, mit dem ein Datenaustausch zwischen Faxgeräten unterschiedlichster Art möglich ist (wobei das oben beschriebene Verfahren wie gesagt sehr abstrakt charakterisiert ist). Protokolle auf Netzwerkebene arbeiten genauso, wobei natürlich die jeweilige Situation zu berücksichtigen ist.

Signifikante Eigenschaft von TCP/IP ist die Möglichkeit mehrerer gleichzeitig und parallel aufgebauter Übertragungen. Sowohl mittels einer als auch mehrerer paralleler Leitungen. Das Protokoll wurde zudem so ausgelegt, dass es sich mit den verschiedensten Leitungsqualitäten und Leitungstypen zurechtkam und für die unterschiedlichsten Übertragungsgeschwindigkeiten einzusetzen war. Genau genommen ist TCP/IP kein einzelnes Protokoll, sondern die Erweiterung von IP (1973) um das 1974 auf IP aufgesetzte Erweiterungsprotokoll TCP, welches erst eine fehlerfreie Übertragung gewährleistet.

Das IP-Protokoll beinhaltet als ein zentrales Element ein Adresskonzept, mit dem Rechner im Internet (oder jedem anderen auf diesem Protokoll basierenden Netzwerk) eindeutig identifiziert werden können und das den Datenaustausch zwischen so lokalisierbaren Rechnern erlaubt. Es handelt sich um die so genannten IP-Nummern, welche derzeit3 aus vier Byte bestehen. Da in einem Byte 256 verschiedene Zeichen binär dargestellt werden können (2 hoch 8 = 256), lässt sich in jedem der vier Byte eine Zahl zwischen 0 und 255 verschlüsseln. Durch Kombination dieser vier Byte lassen sich dann theoretisch 256 hoch 4 Adressen angeben. Allerdings werden durch Nummernkreise für verschiedene Netzwerkgrößen4 und reservierte Kombinationen die tatsächlich adressierbaren Rechner ziemlich reduziert. Gewöhnlich werden die IP-Nummern im Dezimalsystem dargestellt und jedes Byte wird mit einem Punkt abgetrennt. Eine fiktive IP-Nummer eines Rechners könnte also so aussehen:

123.210.111.145

Anfang der 80er-Jahre nahmen die nichtmilitärischen Rechner (und damit die Sicherheitsrisiken für militärische Rechner) im ARPANET so stark zu, dass die meisten Teile des militärischen Bereichs in ein eigenes Netz, das MILNET, ausgegliedert wurden. Die zivilen Teile (Forschung, Bildung, Gewerbe) bekamen den Namen Internet. Ende der achtziger-Jahre öffnete sich das Internet dann über die USA hinaus.

Das Internet ist über die Zeit sowohl technisch als auch inhaltlich extrem heterogen (d.h. uneinheitlich) gewachsen. Es ist also im besten Sinn des Wortes chaotisch oder anarchistisch (es gibt keine Kontrollinstitution - das Internet als Ganzes gehört niemanden). Die technische Heterogenität bedeutet vor allem, dass Rechner jeglicher Architektur mit jedem denkbaren Betriebssystem, das TCP/IP unterstützt, zusammengeschlossen werden können. Damit diese aber sich dann auch verstehen, mussten Protokolle festgelegt werden, die auf dem Transportprotokoll TCP/IP aufsetzen und einheitliche Funktionalitäten bereitstellen.

In der Internet-Sprache sind diese auf dem Transportprotokoll TCP/IP aufsetzenden Funktionalitäten die so genannten Dienstprotokolle, welche den verschiedenen Diensten im Internet zugrunde liegen.

Diese Dienste sind die verschiedenen Funktionalitäten des Internets, welche sich über die Zeit im Netz der Netze gebildet haben. Die meisten sind schon in frühen Phasen des Internets entstanden. Etwa der Dienst Telnet (Name des Dienstprotokolls ist gleichfalls Telnet), mit dem via Internet fremde Computer ferngesteuert werden können. Oder der FTP-Dienst mit gleichnamigem Protokoll für den Dateien-Upload und -Download zwischen Rechnern über das Internet. Fast jeder Internet-Anwender nutzt Email, was ein weiterer eigener Dienst ist (mit verschiedenen zugrunde liegenden Protokollen), und auch vom Usenet bzw. den Newsgroups (Dienstprotokoll ist NEWS) haben viele bereits gehört. Der populärste Dienst im Internet ist jedoch erst Anfang der neunziger Jahre entstanden - das World Wide Web.

HTTP - das Protokoll des World Wide Web

HTTP (Hyper Text Transport Protocol) ist das bekannteste, aber auch eines der neuesten Protokolle im Internet. Es ist das Protokoll des World Wide Web. Wie bei FTP und TELNET etc. handelt es sich ebenfalls um ein Dienstprotokoll, welches auf TCP/IP aufgesetzt wird. Zu seinen herausragenden Eigenschaften gehört die Fähigkeit zur Übertragung von hochauflösenden Grafiken, Sound und Video.

Damit eröffnete es bei seiner Einführung dem Internet zum ersten Mal alle Möglichkeiten, solche Art von Informationen zu übertragen, die gerade auf normale Privatanwender eine große Faszination ausüben.

Gerade die Grafiken und damit verbunden die Möglichkeit einer grafischen Bedienungsoberfläche waren der Fortschritt, der die Bedienung und Navigation im Internet so vereinfachte, dass aus dem Tummelplatz für Technikfreaks und Mathematiker das Medium für die breite Masse wurde.

Mit HTTP werden wir uns später im Rahmen vom World Wide Web noch ausführlicher beschäftigen, denn im gesamten World Wide Web werden Objekte (HTML-Seiten, Grafiken, Sounds etc.) mit diesem Protokoll übertragen.

Die Adressierung im Internet

Jedes Netzwerk benötigt zum Datenaustausch zwischen Rechnern ein eindeutiges Adressierungskonzept. Also ein Verfahren, wie Informationen sicher und zuverlässig von einem Rechner auf den anderen gelangen können. In auf dem TCP/IP-Protokoll aufbauenden Netzwerken gibt es dazu, wie etwas weiter oben besprochen, die IP-Nummern. In der Praxis werden IP-Nummern von Anwendern beim Surfen im Internet (was streng genommen die Angabe von Rechneradressen ist oder zumindest beinhaltet) jedoch selten verwendet. Im Hintergrund werden die IP-Nummern zwar immer verwendet, der Anwender gibt jedoch meist symbolische Adressen ein, welche auf dem DNS-Konzept basieren. Grund dafür ist, dass IP- Nummern zwar hervorragend dazu geeignet sind, in kompakter und eindeutiger Form eine Adressierung von Rechnern vorzunehmen. Für Menschen jedoch sind diese abstrakten Zahlenkolonnen sehr lästig. Aus diesem Grund wurde den Zahlencodes zusätzlich ein eindeutiger Name zugeordnet und diese Zuordnung weltweit auf speziellen Name-Servern dokumentiert. Diese Zuordnung der eindeutigen Namen erfolgt über ein System von logisch und inhaltlich zusammengehörigen Rechnergruppen, das hierarchisch geordnet ist.

Die logisch zusammengehörenden Bereiche werden Domain genannt, woraus sich der Name für dieses Namenssystem ableiten lässt: Domain Name System, kurz DNS. Genau genommen ist das DNS-Konzept eine verteilte Datenbank, die über mehrere Internet-Rechner gestreut ist.

Genau wie bei den IP-Nummern werden die einzelnen Bestandteile eines DNS-Namens durch Punkte getrennt; die hierarchische Wertigkeit der Stufen ist jedoch von hinten nach vorne zu interpretieren.

Der Begriff Server taucht an dieser Stelle das erste Mal auf. Er gehört dringend erläutert (auch wenn viele Leser schon mit diesem Begriff umgehen), denn kaum ein Terminus in der EDV wird so oft falsch oder ungenau erklärt wie Server. Insbesondere ist der Begriff im Rahmen von JavaScript-Programmierung und für das Verständnis von grundlegenden Internet-Vorgängen ganz wichtig, da das Internet als Client-Server-Prozess zu verstehen ist. Deshalb sollten die Begriffe Client, Server und Client-Server-Beziehung als Ganzes vollkommen klar sein.

Der Ausdruck Server leitet sich aus dem lateinischen Wort Servus ab und bedeutet Sklave oder Diener. Dieser Sklave bedient irgendwelche Klienten - englisch: Clients. Eine Beziehung zwischen Client und Server bedeutet also streng genommen nicht mehr, als dass irgendjemand oder irgendetwas eine Leistung bereitstellt, die irgendjemand oder irgendetwas Weiteres verwenden will. Die oft verwendete Gleichsetzung von einem Server mit einem Rechner (im Sinn von Hardware) ist deshalb schlampig und verhindert das sinnvolle Verwenden dieses Begriffs, wenn man Prozesse in einem Netzwerk beschreiben möchte. Zwar ist es in der Tat so, dass in einem Netzwerk einem Rechner dort in der Regel eine besondere Bedeutung zukommt. Er stellt eine Leistung zur Verfügung (Bereitstellen von Daten oder Programmen, Datensicherung, Bereitstellung von Hardware), die von anderen Rechnern genutzt werden. Er ist gewissermaßen der Diener (oder Sklave) der anderen Rechner und kann dann auch als Server bezeichnet werden. Genau genommen stellt aber nicht der Rechner als Hardware die Ressourcen bereit, sondern die entsprechende Software auf dem Rechner.

Die Gleichsetzung von Server und dem physikalischen Rechner stößt spätestens dann an seine Grenzen, wenn auf einem physikalischen Rechner mehrere Serverprogramme installiert sind oder ein einziges Serverprogramm über mehrere physikalische Rechner verteilt wird (was beides so der Regelfall, nicht die Ausnahme, ist). Ebenso lässt sich mit dem vereinfachten Hardware-Denkansatz nicht so einfach klarmachen, warum ein Rechner oder Programm einmal als Server, dann aber wieder als Client fungieren kann.

Wenn man im EDV-technischen Sinn sowohl beim Server als auch beim Client jeweils an Programme denkt, welche miteinander kommunizieren können und einfach bestimmte ihnen zugeteilte Aufgaben in dem logischen Client-Server-Prozess durchführen, erleichtert dieses Gedankenmodell das Verständnis von dem Client-Server-Prinzip erheblich. Dann wird auch klar, warum ein Programm in Beziehung zu einem Programm als Client, in Beziehung zu einem weiteren Programm jedoch gleichzeitig auch als Server fungieren kann. Ein ziemlich oft verwendetes Beispiel, wo Client und Server sogar gewöhnlich auf einem Rechner laufen (damit ist klar, dass der Server kein mit dem physikalischen Rechner gleichzusetzender Ausdruck sein kann), ist die Einbindung einer Excel-Tabelle in ein Word-Dokument. Excel dient in dieser Konstellation als Server für Word, Word ist dann der Client. Genauso kann zwischen Wordpad und Paint eine Client-Server-Verbindung aufgebaut werden, wenn eine Paint-Grafik in Wordpad eingefügt wird.

Statt Server spricht man bei der Bezeichnung eines Rechners, der eine bestimmte Funktionalität bereitstellt, besser von einem Host.

Serverprogramme werden in der Regel nach ihren Aufgaben aufgeteilt und oft auch benannt. Im Internet/Intranet benennt man in diesem Zusammenhang die Serverprogramme nach den jeweilig betreuten Internet-Diensten als FTP-Server, News-Server, Mail-Server, WWW-Server usw.

Abbildung 1.1:  Eine Client-Server-Verbindung zwischen Paint und Wordpad auf einem Rechner

Die Top-Level Domain wird bei Ländern außerhalb der USA mit der jeweiligen Länderkennung belegt. Diese Ländercodes sind in der ISO- 3166-Norm festgelegt. Hier ein paar Beispiele:

Top Level

Land

at

Österreich

au

Australien

be

Belgien

ch

Schweiz

de

Deutschland

fr

Frankreich

nl

Niederlande

tr

Türkei

uk

Großbritannien

Tabelle 1.1: Ländercodes in der ISO-3166-Norm

Für die USA ist die Top-Level Domain us reserviert, aber dort wird ein anderes Konzept bevorzugt. Der hinterste Teil des DNS-Namens wird für Rechner, die ihren Standort in den USA haben, nach einem anderen Regelwerk definiert (das Internet war ja am Anfang auf die USA beschränkt und da ist kein Hinweis auf die Nation notwendig gewesen). Es gibt in diesem nur in der USA gültigen Regelwerk (daher ist auch die Nation implizit klar) nur sechs (wesentliche) logische Bereiche, in die alle Server in den USA eingeordnet werden. Dies sind folgende Top-Level:

Top-Level

Abkürzung für

Bedeutung

com

commercial

Kommerzielle Unternehmen

edu

educational

Ausbildungsinstitutionen (Universitäten, Schulen ...)

gov

governement

Regierungsbehörden

mil

military

Militärische Computer

net

network

Organisationen, die ein eigenes Netzwerk betreiben

org

organization

Nichtkommerzielle Organisationen

Tabelle 1.2: Top-Level Domain in den USA

Beispiele für gültige DNS-Namen sind:

www.mut.de
www.webscripting.de
www.rjs.de
www.sun.com
www.whitehouse.gov
www.netscape.com

Die Registrierung eines Rechners in einem bestimmten Land bedeutet in keiner Weise, dass der Rechner dort auch physikalisch stehen muss. Sie können sich einen solchen DNS-Namen wie ein Nummernschild bei einem Auto vorstellen. Eine Erweiterung com bedeutet nur, dass der Rechner in den USA für das Internet angemeldet ist. So als ob ein Auto in einer Zulassungsbehörde in den USA angemeldet wurde. Wo es dann herumfährt, hat damit überhaupt nichts zu tun. Die Folge davon ist, dass nicht direkt aus der Erweiterung com geschlossen werden kann, dort nur Informationen und Angebote aus den USA zu finden. Im Gegenteil - auch immer mehr deutsche Firmen, die sich als Global Player verstehen (oder zumindest den Anschein erwecken wollen), lassen sich com-Adressen reservieren.

Wie wir bereits diskutiert haben, verwendet intern das TCP/IP-Protokoll IP- Nummern zur Adressierung. Die DNS-Namen müssen durch spezielle Namens-Server erst in die zugehörigen IP-Nummern übersetzt werden. Dies erfolgt auf speziellen Domain-Name-Servern, die gemeinsam die DNS- Datenbank bilden. Sofern ein Aliasname nicht auf dem zuerst kontaktierten Server zuzuordnen ist, wird entsprechend der Namenshierarchie in einem komplexen Verfahren der Übersetzungsauftrag an andere Server weitergeroutet, bis die IP-Nummer vollständig ermittelt ist.

Uniform Resource Locator

Rechner selbst sind über die IP-Nummern beziehungsweise ihre DNS- Aliasnamen eindeutig adressiert. Damit ist aber noch nicht viel gewonnen. Wie auf Ihrem lokalen Rechner müssen auch im Internet alle Dateien auf dem Rechner adressiert werden können. Das bedeutet, es werden neben der Rechneradresse zusätzlich einige andere Angaben notwendig. Das sind zum einen die Pfad- und Dateiangaben (wie bei Ihrem lokalen Rechner), zum anderen aber noch zusätzlich Angaben zum verwendeten Dienstprotokoll.

Der Name dieser vollständigen Internet-Adressen lautet URL und steht für Uniform Resource Locator, was übersetzt ins Deutsche ungefähr einheitliches Adressierungsschema für Objekte im Internet bedeutet. Einheitlich deshalb, weil mit einem URL sowohl die verschiedenen Dienste, wie WWW, FTP, TELNET usw. als auch Rechner selbst oder direkt Dokumente adressiert werden können.

Die exakte Schreibweise ist je nach Dienstprotokoll leicht unterschiedlich, sieht aber in der Regel schematisch folgendermaßen aus:

Dienstprotokoll://[DNS-Name]/[Pfad]/[Datei]

Unter Dienstprotokoll sind beispielsweise http oder ftp zu verstehen. Danach folgen fast immer der Doppelpunkt und zwei Schrägstriche (eine Ausnahme ist mailto zum Aufruf eines Email-Clients oder news zum Aufruf des News-Clients - dort folgen nach dem Doppelpunkt keine zwei Schrägstriche).

Die anschließende Angabe des DNS-Namens oder der alternativen IP- Nummer gibt den Server an. Da auf jedem Rechner eine ganze Reihe von verschiedenen Diensten parallel betrieben werden (üblich sind z.B. ein FTP- Server und ein HTTP-Server), kann man bei Bedarf eine zweite Information, den so genannten Port (eine Art Kanal - ähnlich den Kanälen beim Funkverkehr), angeben. Dieser wird dann mit Doppelpunkt abgetrennt dem DNS-Namen nachgestellt. Ports werden durch positive nummerische Werte spezifiziert. In der Regel ist die Port-Angabe überflüssig, denn jeder Internet-Dienst besitzt einen Defaultport, der immer dann verwendet wird, wenn man keinen Port angibt6.

Die letzte Angabe in einem URL ist immer die konkrete Pfad- und Dateiangabe.

Beachten Sie, dass im Internet zur Trennung von Ebenen keine Backslashes (wie unter DOS oder Windows) genommen werden, sondern die normalen Slashes.

Wenn Sie in einem Browser beim Surfen im Internet eine Adresse im Adressfeld des Browsers eingeben, geben Sie einen URL an. Dabei wissen erfahrene Anwender, dass dort oft eine auf verschiedene Weise verkürzte Angabe möglich ist. Man kann etwa in der Regel das Protokoll weglassen. Dieses wird im Rahmen der Client-Server-Beziehung zwischen Browser und Server automatisch ergänzt (meist korrekt, aber nicht immer). Sogar den DNS-Namen kann man in vielen Fällen scheinbar verkürzen. So kann die Angabe eines zweiteiligen DNS-Names der Art rjs.de durchaus funktionieren, obwohl die vollständige Internet-Adresse als www.rjs.de angegeben wird (was auch funktioniert - andere Angaben als www führen bei dieser nachfolgend noch genauer erläuterten Konstellation jedoch meist zu Fehlern). Dabei wird streng genommen aber gemogelt. Zweiteilige DNS-Namen sind nur dann möglich, wenn auf einem per DNS-Name adressierten Host nur ein einziges Serverprogramm läuft. Dann ist die Angabe www einfach überflüssig, weil das Serverprogramm bereits ohne diese Angabe klar ist.

Was ist aber in dem Fall vorgesehen, wenn ein Anwender bei einem URL keine Datei und keine Pfadangaben macht? Dann werden die Defaultseiten des jeweiligen Verzeichnisses in einem Browser angezeigt. Ein Vergleich mit einem großen Bürogebäude ist ganz passend:

Wenn man einen URL ohne Pfad- und Dateiangaben im Browser eingibt, ist es so, als wenn man sich beim Pförtner des Unternehmens meldet. Dieser leitet dann weiter, was bei einer Default-Webseite eines Servers die entsprechenden Hyperlinks sind. Gibt man bereits zusätzlich ein Verzeichnis an, wird dessen Default-Webseite im Browser angezeigt (entspricht in etwa der Sekretärin der Abteilung oder so). Gibt man jedoch zusätzlich die gewünschte Datei an, kommt man als Surfer ohne Umwege zum gewünschten Ziel.

Beachten Sie bitte, dass Sie dieses unterstützende Verhalten des Browsers respektive des Servers bei der Verwendung von Links in HTML oder Adressierungsbefehlen in JavaScript teilweise nicht (!) zur Verfügung haben. Dort müssen Sie insbesondere die Protokolle unbedingt angeben.

HTML

In einem Atemzug mit dem Dienstprotokoll HTTP wird meist die Dokumentenbeschreibungssprache HTML (HyperText Markup Language) genannt, die darauf aufbaut. In diesem Buch steht zwar JavaScript im Mittelpunkt, aber ohne HTML-Grundlagen lässt sich kein JavaScript sinnvoll betreiben. Deshalb sollte man über die Grundzüge von HTML und bestimmte Verhaltensweisen von daraus erstellten Webseiten als JavaScript-Programmierer informiert sein. Vieles des notwendigen Hintergrundwissens erschließt sich, wenn man die Entwicklung von HTML verfolgt.

HTML ist eine Weiterentwicklung der Ende der Sechziger-Jahre von IBM entwickelten und derweil in der ISO-Norm 8779:1986 festgeschriebenen Sprache SGML (Structured Generalized Markup Language) zur abstrakten Beschreibung von Dokumenten auf Computerplattformen und dem internationalen standardisierten Datenaustausch. HTML ist speziell auf HyperText-Funktionaltität (also anklickbare Querverweise bzw. Hyperlinks in einer Seite, die dann direkt einen neuen Inhalt anzeigen) ausgerichtet, aber das ist beileibe nicht alles. Zu einer so mit HTML beschriebenen logischen Dokumentenstruktur im Web können Texte, Überschriften, Bilder, Kapitel, Absätze, Aufzählungen, Tabellen, Referenzen auf multimediale Elemente (Sound, Video u.ä.) oder komplexe Objekte und Referenzen auf Scripte und Stilvereinbarungen gehören. HTML-Dateien bestehen (wie auch JavaScript-Quelltext) aus reinem Klartext. Dies bewirkt die Plattformunabhängigkeit von Webseiten (sofern keine plattformabhängigen Zusatztechniken referenziert werden).

HTML ist keine Programmiersprache wie JavaScript, sondern beschreibt nur die logischen Strukturen eines Dokuments. HTML fehlen wesentliche für eine Programmiersprache unabdingbare Elemente - insbesondere Variablen zum Zwischenspeichern von dynamischen Informationen und Kontrollflussanweisungen (darauf kommen wir bald noch genauer zu sprechen). Dementsprechend werden Webseiten mit HTML auch nicht programmiert. Wenn dies jedoch so behauptet wird, zeugt es entweder von Unkenntnis oder man möchte den diffizilen Unterschied nicht erläutern. Für Sie als potentiellen JavaScript-Programmierer ist es aber wichtig, den Unterschied zu verstehen (wir gehen noch auf Details ein). Er verdeutlicht auch gut die Situationen, wann bei bestimmten Problemen in einer Webseite HTML nicht ausreicht und zur Lösung auf JavaScript oder eine andere Web-Programmiersprache zurückgegriffen werden muss.

Da HTML ein Dokument nur abstrakt und plattformneutral beschreibt, muss diese Beschreibung irgendwann in die konkrete Darstellung der Webseite umgesetzt werden. Dies machen Browser, welche die plattformneutralen Anweisungen in einer Webseite analysieren und dann nach ihren Vorgaben auf ihrer jeweiligen Plattform umsetzen. Dieses Verfahren wird Interpretation genannt. Ein Browser ist also ein unter einem bestimmten Betriebssystem laufendes Programm, welches neutrale Anweisungen so interpretiert, wie die Plattform es gestattet. Er wird deshalb auch Interpreter genannt.

Auch für ein Programm oder ein Script gilt, dass es in der Regel erst einmal in Klartextanweisungen erstellt wird. Bevor daraus eine für einen Computer verständliche Folge von Anweisungen entsteht, muss der Klartext für den Prozessor übersetzt werden, auf dem es laufen soll (in Maschinencode). Es gibt also auch für diesen Fall den Mechanismus der Interpretation. Beim Anwender, der das noch nicht übersetzte Programm/Script als Quelltext erhält, erfolgt die dynamische Übersetzung zur Laufzeit durch ein entsprechendes Programm, welches den Quelltext interpretiert.

HTML kann man sich gut als ein Notenblatt oder eine ganze Partitur vorstellen. Der Browser ist das Orchester, das die Noten interpretiert und das Stück spielt. Der Vergleich passt übrigens ziemlich gut. Spinnen wir ihn einfach mal weiter. Stellen Sie sich eine anspruchsvolle, klassische Oper vor. Diese wird einmal von den Berliner Philharmonikern und das zweite Mal von dem Hintertupfinger Blasorchester interpretiert. Beide bedienen sich der gleichen Vorlage, die Interpretation wird jedoch sehr wahrscheinlich leicht7 unterschiedlich sein. Mit HTML-Seiten verhält es sich analog - jeder Browser kann die HTML-Anweisungen verschieden interpretieren. Zwar werden von den wichtigsten Browsern die meisten HTML-Anweisungen gleich oder sehr ähnlich interpretiert, aber es gibt genügend Abweichungen.

Denken wir den Vergleich mit den Berliner Philharmonikern und dem Hintertupfinger Blasorchester bei der Interpretation eines schwierigen Musikstücks noch einmal weiter. Ohne den Musikern des (fiktiven - jede Ähnlichkeit mit lebenden oder verstorbenen Personen und Orchestern :-) wäre rein zufällig) Hintertupfinger Blasorchesters zu nahe treten zu wollen - bei diversen Stellen werden verschiedene Musiker garantiert überfordert sein. Was bleiben da für Möglichkeiten? Falsch spielen oder aufhören und erst wieder einsetzen, wenn man den Faden wiedergefunden hat. Letzteres ist genau das, was Browser tun, wenn sie einen HTML-Befehl in einer Webseite vorfinden, den sie nicht kennen und damit nicht interpretieren können. Sie ignorieren solche Anweisungen einfach. Das Verfahren ist im Web übrigens zu einem festen Prinzip geadelt worden - das Prinzip der Fehlertoleranz bei Browsern (vielleicht das wichtigste Element für den Erfolg des Webs - HTML kann wachsen, ohne dass neue Webseiten alte Browser abschießen).

Das Prinzip der Fehlertoleranz löst ein großes Problem beim Interpreterkonzept. Was soll passieren, wenn ein Interpreter eine Anweisung nicht kennt? Grundsätzlich veralten Interpreter sehr schnell. Wenn eine Interpretersprache einen neuen Befehl hinzugefügt bekommt, können die bis dahin entwickelten Interpreter diesen Befehl noch nicht kennen und ihn entsprechend nicht ausführen. Solche unbekannten Befehle bewirken also auf jeden Fall Probleme, die irgendwie zu lösen sind. Das Prinzip der Fehlertoleranz bei HTML mag zwar erst einmal nicht besonders positiv erscheinen, ist aber immer noch die beste Möglichkeit überhaupt. Das Ignorieren von unbekannten Anweisungen durch den Browser erlaubt die Auswertung von HTML-Dokumenten, soweit es irgend möglich ist. Selbst syntaktisch unkorrekte Dokumente können teilweise ausgewertet werden. Soweit Browser korrekte Anweisungen vorfinden, werden diese ausgeführt und angezeigt (darunter fällt bei HTML jede Klartextangabe außerhalb der spitzen Klammern, welche einen HTML-Befehl kennzeichnen). Falsche oder unvollständige Anweisungen werden ganz einfach ignoriert. Schlimmstenfalls können einige signifikante Informationen beim Anzeigen verloren gehen. Leider lässt sich dieses geniale Konzept nicht so einfach auf Scripte fortsetzen. Scripte werden nicht linear von oben nach unten abgearbeitet. Vielfache Abhängigkeiten in Scripten (Variablen, Funktionen, Objekte etc.) lassen es einfach nicht zu, bestimmte Anweisungen einfach zu ignorieren, denn sie könnten ja Grundlage für Folgeanweisungen sein.

All das zusammen bewirkt die unterschiedlichen Darstellungen von Webseiten in verschiedenen Browsern, wie sie sicher vielen Lesern schon aufgefallen sind.

HTML gibt es seit 1997 in der Version 4, welche auch heute noch aktuell ist. Ein Grund für die - in Internet-Maßstäben gemessene - doch sehr lange Zeitspanne dürfte darin liegen, dass hinter der Normung von HTML das World Wide Web-Consortium (W3C - http://www.w3.org) steht.

Abbildung 1.2:  Die Webseiten des W3C.

Diese Organisation bemüht sich schon seit dem ersten Auftreten von HTML im Jahr 1991 um die Standardisierung der Sprache. Mit leider sehr geringem Erfolg und insgesamt wenig effektiv, was sich sicher nicht zuletzt aus der Zusammensetzung des W3C erklären lässt. In dieser Organisation sind Protagonisten des Internets zusammengeschlossen, die sich nicht die Butter auf dem Brot gönnen. Mittlerweile sind an dem W3C weltweit mehr als 130 Unternehmen beteiligt, von denen die meisten Konkurrenten auf dem Internet-Markt sind. Die damit verbundenen strategischen und politischen Entscheidungen bei der Sprachstandardisierung lassen die geringen Fortschritte bei einer einheitlichen Struktur verständlicher werden. Jede Interessensgruppe versucht Entwicklungen in die ihr genehme Richtung zu beeinflussen, weshalb ein allgemein akzeptierter Standard immer eine sehr schwere Geburt ist. Dabei muss man unbedingt betonen, dass das W3C keinerlei rechtliche Handhabe zur Durchsetzung von Beschlüssen hat, sondern auf die freiwillige Kooperation der beteiligten Stellen angewiesen ist (also in Bezug auf HTML sind das im Wesentlichen die Browser-Hersteller). Das hat zur Folge, dass jeder Browser-Hersteller einen beschlossenen Standard von HTML oder anderen Webtechniken umsetzen, ihn aber auch ignorieren oder um individuelle Befehle erweitern kann. Dies ist leider so auch nicht die Ausnahme, sondern die Regel. Fast alle Browser kennen jeweils nur einen Teil der zu einem Standard gehörenden Befehle, dafür bieten sie aber meistens Extrawürste, die dann konkurrierende Browser nicht verstehen. Oft werden solche Extrawürste so populär, dass viele Anwender sie für HTML-Standards halten oder die Technik über den Druck der Masse eine Anpassung des HTML-Standards erzwingt. Frames sind ein bekanntes Beispiel aus der HTML- Vergangenheit.

HTML (und die damit erstellten ersten WWW-Seiten) hat mit einem sehr einfachen 1.0-Standard angefangen. In der ersten Variante dieser Sprache bestand zunächst nur die Möglichkeit, HyperText-Systeme im Internet aufzubauen, die neben einfachem Text und Grafiken insbesondere Hyperlinks, also Verweise auf andere Dokumente, enthalten konnten. Eine exakte Gestaltung von Strukturelementen wie Überschriften, Aufzählungen oder Kapiteln war in der Version 1.0 bereits vorgesehen; um das genaue Layout sollte sich bei der Darstellung jedoch jeder Browser selbst kümmern. Diese mageren Darstellungsmöglichkeiten genügten vielen Browser- Herstellern sehr schnell nicht mehr und die ersten Erweiterungen um eigene Befehle wurden integriert. Etwa durch den populären Browser Mosaic, den ersten WWW-Browser mit grafischer Oberfläche. Obwohl eine schnelle Reaktion auf die daraus resultierenden Internet-Entwicklungen für die Verhinderung einer Unmenge von Individuallösungen durch verschiedene Browser-Hersteller äußerst wichtig gewesen wäre, konnte erst im September 1995 der HTML-Standard 2.0 verabschiedet werden. Nicht zuletzt durch diese lange Zeitspanne zwischen Version 1.0 und 2.0 und die Trägheit des W3C (in Bezug auf das unglaublich dynamische Internet) hatten sich derweil verschiedenste Browser-spezifische Dialekte gebildet, an denen eine Standardisierung des WWW auch heute noch krankt. Dazu kam, dass schon im 2.0-Standard durch Unstimmigkeiten im W3C nur ein kleinster gemeinsamer Nenner realisiert werden konnte. Dieser 2.0- Standard enthielt dennoch schon eine ganze Menge Gestaltungsmöglichkeiten für das World Wide Web. Dazu gehörten unter anderem die Elemente der äußeren Dokumentenstruktur (zum Beispiel Kopfteil mit Meta- und Titelzeile, die Body-Struktur), verschiedene Überschriften, Hyperlinks, Hervorhebungen, Befehlsstrukturen zu einer flexiblen Grafikeinbindung, aber auch bereits Tabellen, Listen und Formulare. Nach der HTML-Stufe 2 gab es eine peinliche Konfusion mit einem Standard 3.0, der konsequent von den Browser-Herstellern ignoriert wurde. Erst anlässlich der fünften WWW-Konferenz vom 6. bis 8. Mai 1996 in Paris präsentierte das W3C endlich wieder eine Version, die zum aktuellen Sprachstandard von HTML wurde, die Version 3.2 vom 7. Mai 1996. Der 3.2-Sprachstandard unterstützte und standardisierte endlich Sprachelemente, die in der Praxis seit geraumer Zeit in Gebrauch waren. Etwa Tabellen mit der strukturierten Darstellung von Elementen, verschiedene Schriftgrößen und Schriftfarben, das Höher- und Tieferstellen von Zeichen, Textfluss um Grafiken herum, verweissensitive Grafiken ohne Serverkommunikation und vor allem die standardisierte Referenz auf Java- Applets und Scripte (was gerade in Hinsicht auf unser JavaScript-Thema von entscheidender Bedeutung ist). Leider galt aber auch bei der Verabschiedung des 3.2-Standards, dass sich die W3C-Teilnehmer auch diesmal wieder nicht auf die Standardisierung einiger Elemente einigen konnten, obwohl diese bereits sehr verbreitet waren. Dazu zählten insbesondere Frames, d.h. die Aufteilung des Anzeigebereichs eines Browsers in mehrere voneinander unabhängige Teilbereiche. Diese Technik wurde von Netscape entwickelt und deren Browser Navigator unterstützt. Obwohl auch andere Browser-Hersteller sich dem Druck der Popularität von Frames beugten und sie unterstützten, ließ sich in HTML 3.2 kein standardisiertes Verfahren festschreiben (erst HTML 4.0 hat die Technik offiziell eingeführt). Aber auch andere Techniken wie die Unterstützung von untergeordneten Fensterstrukturen, eine direkte Unterstützung von Scriptsprachen als Erweiterung eines HTML-Befehls, erweiterte Formulare, eine Notation von mathematischen Sonderzeichen und hardwareabhängige Darstellungen fanden keinen Eingang in HTML 3.2. Genau genommen wurde HTML 3.2 sogar gegenüber der unglücklichen HTML-3.0-Zwischenlösung um einige (in der Regel redundante) Befehle reduziert.

Anfang Juli 1997 wurde dann ein erster öffentlicher Entwurf für die nächste Version von HTML - die auch heute noch aktuelle Variante 4.0 - veröffentlicht. Neben einem neuen Tabellenkonzept und Formularerweiterungen betrafen wesentliche Neuerungen der neuen HTML-Version die Erweiterung der Aus- und Eingabemöglichkeiten und HTML. Darunter sind beispielsweise verschiedene Auflösungen, Farbzuweisungen, flexible Ein- und Ausgabemöglichkeiten sowie Spracheingabe und akustische Informationen zu verstehen. Grundsätzlich sollte die Version 4.0 die Beschränkungen auf Maus und Tastatur (bisher auch nicht voll unterstützt) bei der Eingabe und dem Bildschirm bei der Ausgabe abschaffen.

HTML 4.0 wurde auch internationaler. Die so genannte Internationalisierung (engl.: internationalization) nach dem ISO/ IEC:10646-Standard bzw. I18N war ein Schritt, wie er bei den meisten Internet-basierenden Techniken notwendig wurde, um die Grenzen des bisher verwendeten ISO-Standards 8859-1 bei der Verwendung von Zeichen und Buchstaben zu sprengen. Der abwärtskompatible Umstieg vom bisher verwendeten ASCII-Code (Darstellung eines Zeichens in einem Byte, was 256 verschiedene Zeichen in einem Zeichensatz erlaubt) auf den neuen UNICODE mit zwei Byte erlaubt die Verwendung von vielen neuen Zeichen in einer Webseite innerhalb eines Zeichensatzes (unabhängig von der zugrunde liegenden Plattform und deren Einstellungen). Die Darstellung von Sonderzeichen und landesspezifischen Zeichen erfolgt gegebenenfalls über so genannte Entities (eine Folge von Zahlen oder Zeichen, die dem Steuerzeichen & folgen).

Grundsätzlich hat das W3C auch mit HTML 4.0 wieder versucht, redundante Anweisungen zu elimieren oder ähnliche Anweisungen zu einer einzigen Angabe zusammenzufassen. Dies betrifft insbesondere die Referenzierung von Multimedia-Objekten (Bilder, Videos, Java-Applets, ActiveX-Controls usw.) über nur eine einzige Anweisung - den <OBJECT>- Tag.

Für die Verbindung zu JavaScript ganz wichtig ist die Erweiterung von HTML um eine Reihe von neuen Schlüsselwörtern, die Voraussetzung für das Ausführen von Scripten bei bestimmten Ereignissen in Webseiten sind. Diese Schlüsselworte können als Attribute in HTML-Anweisungen verwendet werden Dazu zählen onLoad, onMouseOver, onClick usw. (so genannte Event-Handler) Bezüglich der Script-Verwendung sind unter HTML 4.0 die Voraussetzungen für die Einbindung erheblich erweitert worden. Und zwar unabhängig von einer zu verwendenden Sprache: Sowohl JavaScript als auch VBScript, Tcl und Perl lassen sich verwenden.

Style Sheets

HTML erlaubt, wie wir besprochen haben, keine vollständige Kontrolle über das Aussehen von Webseiten. Um diesem Manko abzuhelfen, gibt es mit Style Sheets (Stilvereinbarungen) eine ergänzende Technologie, die versuchen soll, die teils sehr unterschiedlichen Interpretationen von Gestaltungsanweisungen für Webseiten auf verschiedenen Plattformen zu vereinheitlichen. Entgegen sehr frei interpretierbaren HTML- Empfehlungen an den Browser kann über Style Sheets das Layout von Webseiten (zumindest in der Theorie) recht genau festgelegt werden (wenn der Browser die Style Sheets versteht und sich an vorgegebene Standards hält). Style Sheets eröffnen daneben die Möglichkeit der strikten Trennung von Gestaltungsbefehlen und Informationsträgern, d.h. es kann eine klare Aufteilung von Struktur und Layout erreicht werden.

Wie auch Scripte gehören Style Sheets nicht zu HTML, sondern sind eine eigenständige Technik, die in HTML verankert werden kann und diese Technik ergänzt. Style Sheets bezeichnen keine bestimmte Sprache (wie etwa HTML oder JavaScript), sondern nur eine Technik. Es gibt diverse Sprachen zum Definieren von Style Sheets. Cascading Style Sheets (CSS) sind ein vom W3C (World Wide Web Consortium) akzeptierter Sprachstandard zur Darstellung und Formatierung von HTML-Seiten und werden von den meisten modernen Browsern - zumindest im Ansatz - unterstützt. Cascading Style Sheets gibt es mittlerweile in der Version 2, aber die aktuellen Browser unterstützen maximal die Version 1 (und das meist nur unvollständig beziehungsweise mit abweichenden Varianten - das gleiche Dilemma wie bei HTML).

Abbildung 1.3:  Eine Seite mit CSS-Style-Sheets

Verschiedene Browser

Wie bereits angesprochen, werden Webseiten beim Anwender durch Browser interpretiert und angezeigt. Zeitgemäße Browser sind zudem in der Lage, neben der Anzeige von Webseiten auch andere Internet-Dienste wie FTP, Email oder Newsgroups direkt zu benutzten oder eine automatische Verbindung zu einem ergänzenden Programm (etwa einem Email-Client) aufzubauen. Wenn man in dem Eingabefeld einer URL einen anderen Internet-Dienst eingibt, wird der zurückkommende Datenblock dem Dienst entsprechend aufbereitet. Selbst der Zugriff auf das lokale Verzeichnissystem des eigenen Rechners funktioniert, sodass ein Browser wie der »normale« Arbeitsplatz unter Windows zu verwenden ist (etwa mit dem Protokoll file, z.B. file:///C:/ für die Anzeige des Inhalts der Festplattenpartition C:).

Abbildung 1.4:  Die Darstellung der lokalen Festplatte im Opera-Browser

Abbildung 1.5:  Die Darstellung der lokalen Festplatte im Internet Explorer bei gleicher Eingabe von file:///C:/ - die enge Verzahnung mit Windows zeigt sich deutlich

Abbildung 1.6:  Die Darstellung der lokalen Festplatte im Netscape Navigator

Ein Browser kümmert sich neben den offensichtlichen Aktionen auch um Hintergrundaktionen. Insbesondere darum, Daten über das Internet zu empfangen und zu senden. Dabei sollte man sich die Art der Datenübertragung im Internet klar machen. Das Internet basiert auf paketorientiertem Datenaustausch, was zentraler Aspekt von TCP/IP ist. Dies bedeutet, jede über das Netz zu übertragende Datei wird bei Bedarf in kleinere Datenblöcke bzw. Datenpakete zerlegt, die dann einen Strom von einzelnen Datenpaketen bilden. Nichtsdestoweniger wird jedes einzelne Datenpaket als in sich geschlossene, vollständige und in Hinsicht auf den Transport im Netz vollkommen unabhängige Dateneinheit vom Sender zum Empfänger transportiert. Auf zentralen Zwischenstationen - so genannten Routern - werden die Datenpakete in die unter den aktuellen Bedienungen optimale Richtung weitergeleitet. Die etwas geschraubte Formulierung »unter den aktuellen Bedienungen optimale Richtung« bedeutet, dass der Weg der einzelnen Datenpakete nicht unbedingt fest vorgegeben ist. Es kann durchaus vorkommen, dass ein Strom von Datenpaketen auseinander gerissen wird und die einzelnen Datenpakete unterschiedliche Wege nehmen (bei Überlastung von Verbindungen wird von Routern bei Bedarf automatisch eine Alternativverbindung gewählt). Es kann sogar vorkommen, dass hintere Datenpakete der Kolonne auf Ausweichrouten geschickt werden und dabei die vorderen Datenpakete überholen.

Ein Browser muss nun auf so eine Situation reagieren können. Wenn eine in mehrere Datenpakete zerlegte Webseite bei ihm ankommt, müssen die Datenpakete so zusammengesetzt werden, dass das Datenpaket mit den ersten Zeichen der Seite zuerst ausgewertet und verwendet wird, danach das zweite usw. Dies muss unabhängig davon erfolgen, in welcher Reihenfolge die Datenpakete beim Browser ankommen. Relevant darf nur die Reihenfolge sein, wie eine Webseite zerlegt und abgeschickt wurde. Um dieses zu gewährleisten, beinhaltet die Kombination TCP/IP und HTTP (neben Adressangaben) Informationen darüber, wie groß der gesamte zu empfangende Strom von Datenpaketen ist, welche Position ein jedes einzelne Datenpaket in dem Strom einnimmt und wie eine Webseite wieder zusammenzusetzen ist.

Sobald die ersten Datenpakete auf dem lokalen Rechner eintreffen, fängt der Browser an, diese zu interpretieren. Alle Datenpakete, die in chronologischer Reihenfolge eintreffen, können bereits ausgewertet und verwendet werden (auch wenn der Rest noch fehlt). Alle diejenigen Datenpakete, welche zu früh eintreffen, werden in einem Puffer gespeichert und erst dann weiter verwendet, wenn die Lücken davor geschlossen sind. Dies ist auch der Grund, warum sich beispielsweise eine Webseite im Browser oft einige Zeilen weit aufbaut, dann ewig unverändert bleibt und hernach schlagartig der gesamte Rest erscheint. In diesem Fall hat einfach in der Mitte des Stroms ein Paket gefehlt, der Rest war aber schon da. Sobald der Nachzügler eingetroffen ist, können dann auch die bereits im Puffer gespeicherten Datenpakete vom Browser verwendet werden.

Wichtige Browser

Schauen wir uns einige der bekanntesten Browser nun an. Der Browsermarkt wurde lange Zeit von einem Browser dominiert - dem Browser Navigator von Netscape. In den neunziger Jahren verwendeten bis zu 90% der Internetsurfer ihn in den verschiedensten Versionen. Dies hat sich gegen Ende des Jahrzehnts durch erhebliche Anstrengungen von Microsoft (sowohl technisch als auch in der Vertriebsstruktur) geändert. Dessen Browserfamilie, die Internet Explorer, hat - nicht zuletzt durch die standardmäßige Integration in Windows - erhebliche Marktanteile gewonnen. Beide Browser dürften derzeit und wahrscheinlich auch noch längere Zeit die gleiche Bedeutung haben, obwohl es Mitte 2000 eine Untersuchung gab, wonach der Internet Explorer in Deutschland von 94% aller Anwender genutzt wird (wobei - wie bei allen Statistiken - die Aussagefähigkeit sehr in Frage gestellt werden kann - immerhin ist der Browser ja sowieso in Windows integriert, und damit wird fast jeder Anwender zumindest das Symbol einmal angeklickt haben - die Unabhängigkeit der Studie obendrein außer Acht gelassen).

Beide Browser sollten auf jeden Fall zur Verfügung stehen, wenn man Webseiten erstellen möchte, und vor allen Dingen, wenn JavaScript- Programmierung ansteht. Es gibt aber zu den beiden Marktführern noch eine ganze Anzahl von Alternativen, von denen hier insbesondere eine interessante vorgestellt werden soll - Opera.

Der Netscape Communicator

Der Navigator war wie gesagt lange Zeit der mit Abstand wichtigste Browser im WWW und obwohl er diese Position mittlerweile mit dem Internet Explorer teilen muss, ist er immer noch eines der Referenzsysteme schlechthin, wenn man Webseiten erstellen und vor allem JavaScripts oder Java-Applets programmieren möchte. Gerade bei JavaScript- Programmierung muss man den Browser des JavaScript-Erfinders natürlich auf dem Rechner haben. Es gibt ihn für die verschiedensten Betriebssysteme.

Der Navigator wurde erstmals mit der Versionsnummer 2.0 veröffentlicht, denn er ist der direkte Nachfolger des legendären Mosaic-Browsers (dessen Entwickler ist Mitbegründer von Netscape). Für dieses Buch wird der Navigator in der Version 4.7 als Referenzsystem verwendet8.

Abbildung 1.7:  Der Netscape Navigator 6.0 mit einem erheblich veränderten Design

Abbildung 1.8:  Der Netscape Navigator 4.7

Der Navigator bietet so alles, woran sich Websurfer über die Zeit gewöhnt haben:

Der Browser Navigator ist seit der Version 4.0 nur noch als Bestandteil des Communicator-Programmpakets (dieses gibt es in verschiedenen Versionen) zu haben, welches aus einer Reihe von Einzelprogrammen besteht, die sich gegenseitig ergänzen. Dazu zählen grundsätzlich mit dem Netscape Messenger ein Email- und News-Client auf HTML-Basis sowie zum Verfassen und Bearbeiten von Webseiten ein integrierter HTML-Editor - der Netscape Composer. Daneben gibt es im Communicator ein Konferenz- und Chat-Tool (Netscape Conference), ein Tool zur Unterstützung von Channels bzw. Informationsdiensten im WWW (Netcaster) sowie in den umfangreicheren Versionen des Communicator Fernkonfigurations- und Zugriffsmöglichkeiten auf verschiedenste Elemente (AutoAdmin, Administration Kit, AutoConfig, AutoUpdate, IBM Host On- Demand für Zugriffe auf einen IBM 3270-Host) und einen Terminplaner (Netscape Calendar), der in Verbindung mit dem Netscape Calendar Server eine Lösung für die unternehmensweite und plattformübergreifende Arbeitsgruppenplanung bereitstellt.

Eine Besonderheit des Communicator ist die Möglichkeit, Benutzerprofile für verschiedene Anwender zu erstellen. Wenn der Communicator zum ersten Mal gestartet wird, muss sogar ein solches Benutzerprofil erst einmal erstellt werden, bevor mit dem Programm gearbeitet werden kann (was viele Anwender als sehr lästig empfinden). Diese Benutzerprofile ermöglichen es, dass mehrere Benutzer Communicator auf jeweils individuelle Weise für den Internet-Zugriff einsetzen. Für jeden Anwender werden darin Einstellungen, Lesezeichen und Mail-Nachrichten separat verwaltet.

Ein großer Nachteil des Communicator, aber auch des Internet Explorer, ist dessen Ressourcenbedarf beim Anwender. Sowohl die Größe der Installationsdatei (über 20 Megabyte bei der Version 4.7) als auch die hinterher auf dem Rechner des Anwenders geforderten Ressourcen sind indiskutabel (je nach installierten Komponenten 40 Megabyte und mehr auf der Festplatte und ein nicht zu langsamer Prozessor).

Die Version 6 geht (zumindest in der Betaversion) bei der Installation einen etwas anderen Weg als die Vorgängerversionen - nur ein Teil der zu installierenden Daten befindet sich in der Installationsdatei. Der Rest wird bei der Installation bzw. dem ersten Start direkt aus dem Internet nachgeladen. Ein bei einer kostenlosen Internet-Verbindung sicher interessanter, aber in Deutschland - trotz neuster Preissenkung - teurer Weg9.

Vor allem bedenklich an dieser Technik ist aber der Sicherheitsaspekt. Egal ob rational begründet oder nicht - psychologisch ist eine Online-Verbindung bei der Installation von Software sicher ein nicht unerhebliches Problem. Es ist fraglich, ob vorsichtige Anwender eine solche Online-Verbindung bei der Installation von Software akzeptieren. Was Verbindungen zum Internet gekoppelt mit automatischen Aktionen so alles bewirken können, hat der Virus »I love you« ja deutlich gemacht. Leider tendiert auch der Communicator prinzipiell bei vielen Funktionalitäten zu einer permanenten Online-Verbindung, wobei eigentlich die Tendenz - wenigsten in Bezug auf Sicherheit und Kostenersparnis - in die andere Richtung gehen sollte.

Beziehen kann man den Communicator in den jeweils aktuellen Versionen über CD-Beilagen diverser Computerzeitungen oder aus dem Internet von der Homepage der Netscape Corporation, http://www.netscape.com bzw. http://www.netscape.com/de/.

Der Microsoft Internet Explorer

Der hauptsächlich unter dem Windows-Betriebssystem (es gibt ihn aber auch für andere Betriebssystem-Versionen, etwa für den Mac) verfügbare Internet Explorer von Microsoft ist der große Gegenspieler des Netscape Communicator. Zum Zeitpunkt der Bucherstellung ist gerade die Version 5.01 des Internet Explorer von Microsoft aktuell, die als Referenzsystem für dieses Buch verwendet werden soll10.

Abbildung 1.9:  Der Internet Explorer 5.01

Während die ersten Versionen des Internet Explorer im Web mehr oder weniger als Witz aufgefasst wurden, steht er seit der Version 4.0 dem jeweilig aktuellen Communicator im Leistungsumfang kaum nach. Die Experten streiten wie bei einem Religionskrieg, welcher der bessere Browser ist.

Wie auch der Navigator kennt der Internet Explorer die automatische Vervollständigung von Webadressen11, Unterstützung von Suchaktionen im Internet, Unterstützung, um schnell zu häufig besuchten Seiten zurückkehren12, Filterfunktionalität, um gewisse Inhalte auszublenden, und diverse Sicherheitsfunktionen, um den Computer vor potentiell unsicheren Dateien und Programmen zu schützen und die von Ihrem Computer freigegebenen Informationen einzuschränken. Auch der Internet Explorer unterstützt Java und die Zertifizierung von Java-Applets, aber kein JavaScript. Stopp - keine Panik! Fehlende JavaScript-Unterstützung heißt nicht, dass der Internet Explorer keine JavaScripts versteht - er muss sie sich quasi nur vorlesen lassen. Der Internet Explorer darf JavaScript nämlich nicht direkt verstehen, er darf nur eine Abwandlung davon kennen - JScript. Bei JScript handelt es sich um einen Microsoft-Ableger von JavaScript, womit Microsoft Zahlungen von Lizenzgebühren an Sun/ Netscape umgeht, welche bei der direkten Implementation von JavaScript in den Internet Explorer fällig wären. JScript besitzt im Wesentlichen die gleiche Struktur wie JavaScript und versteht die gleiche Syntax. Deshalb kann in der Regel von der JavaScript-Syntax direkt auf die JScript-Syntax geschlossen werden (und umgekehrt). Allerdings ist der Befehlssatz der beiden Sprachen in einigen Details nicht vollständig deckungsgleich. Insbesondere bietet JScript viele Erweiterungen, welche nur im Internet Explorer oder verwandten Microsoft-Techniken unterstützt werden. Man kann zwar Scripte direkt in JScript erstellen, aber meist wird JavaScript vorgezogen. Dabei gibt es das Problem, dass durch die nicht vorhandene direkte Implementation von JavaScript der Internet Explorer sämtliche JavaScripte in einer Webseite in JScripte übersetzen muss. Erst diese werden dann ausgeführt. Dies funktioniert zwar halbwegs zuverlässig, aber Fehler sind nicht ganz auszuschließen. Prinzipiell hat JScript im Web nicht die Bedeutung wie JavaScript. Der Internet Explorer versteht JavaScript wie gesagt weitgehend, der Navigator von Netscape und viele andere Browser dagegen kein JScript13.

Eine Erweiterung der Leistungsfähigkeit des Internet Explorer gegenüber dem Navigator ist die Unterstützung von VBScript, einer von Microsoft aus Visual Basic entwickelten und weitgehend auf das Windows-Betriebssystem mit INTEL-basierenden Prozessoren optimierte Scriptsprache. Zwar wurde VBScript einige Zeit als ernst zu nehmende Konkurrenz zu JavaScript gesehen, aber da die Sprache fast vollständig auf den Internet Explorer als Clientprogramm beschränkt ist (ohne Zusatzmodule streiken der Netscape Navigator und dazu kompatible Browser bei VBScript), verbauen sich Webseitenersteller mit dem Einsatz dieser Sprache den Weg zu den meisten Kunden. Dies hat die Akzeptanz von VBScript wenig gefördert. Obwohl VBScript durch seine Optimierung im Hinblick auf die WINTEL-Plattform dort als leistungsfähiger als JavaScript gesehen wird, wird auch das eher als Gegenargument zu VBScript gesehen, denn die Sprache eröffnet einige Missbrauchsmöglichkeiten und Sicherheitslücken (gerade in Verbindung mit den äußert umstrittenen ActixeX-Controls, die der Internet Explorer als einziger wichtiger Browser unterstützt).

Der Begriff Internet Explorer bezeichnet nicht nur den Microsoft-Browser, sondern eine Programmfamilie, die wie beim Communicator Mail-, Newsreader- und einige weitere Internetanruf-Programme integriert hat. Microsoft liefert als Gegenstück zu dem Netscape Messenger Outlook Express eine abgespeckte Version von Outlook als Mail- und Newsclient aus. Audio- und Videokonferenzen werden mittels Netmeeting realisiert. Die Audiokonferenzen werden nach H.323 (Internet-Telefonie) durchgeführt. Statt einer Videokonferenz mit nur zwei Teilnehmern wie beim Communicator kann Netmeeting auch mehr Teilnehmer verwalten. Daneben sind ein Chat-Tool, ein Programm zum Erstellen von Grafiken und ein weiteres Programm zum Dateitransfer in Netmeeting enthalten.

Auch Microsoft integriert in das Explorer-Paket einen HTML-Editor zum Erstellen von Webseiten. FrontPage tritt in einer Light-Variante gegen den Composer des Netscape Communicator an.

Dem Internet Explorer muss wie dem Netscape-Produkt der gigantische Ressourcenhunger (von 6,5 bis zu 46 Megabyte bei Vollinstallation der Version 5.01) angekreidet werden, aber beim Explorer gibt es zudem noch das Problem, dass neuere Versionen des Explorer Vorgängerversionen überschreiben und Webprogrammieren damit unumgängliche Testmöglichkeiten rauben. Außerdem greift der Internet Explorer bei der Installation grundsätzlich sehr tief in das Betriebssystem ein. Mittels der unter Windows 95 eingeführten Active-Desktop-Technologie müssen Informationen nicht mehr zwingend innerhalb des Browsers bleiben, sondern können direkt in den Desktop integriert werden14. Ziel von Microsoft ist eine enge Verzahnung von dem Betriebssystem und lokalen Anwendungen mit dem Internet. Der Internet Explorer soll mit diesem Prozess langfristig den Windows Explorer überflüssig machen (und natürlich damit erst recht Browser von anderen Firmen). Die Vorteile der Active- Desktop-Technologie sind die Möglichkeit einer persönlichen Gestaltung des Desktops und der einheitliche Zugriff auf lokale Daten, Daten aus dem Netzwerk und Daten aus Intranet oder Internet. Die enge Verzahnung mit dem Betriebssystem schmeckt sicher nicht jedem Anwender - es ist einfach nicht mehr transparent, welche Zugriffe auf das lokale System bei einer Online-Verbindung möglich sind und welche Informationen beim Surfen die lokale Station verlassen - und schon gar nicht den Konkurrenten. Die letzten Urteile durch amerikanische Gerichte werden Microsoft wohl zwingen, die Verzahnung zwischen Betriebssystem und Browser wieder zu lösen. Da der Internet Explorer mit Windows ausgeliefert wird, hat ihn jeder Windows-Anwender zwingend installiert (nur vielleicht nicht die neueste Version). Zu beziehen ist die jeweils neueste Variante des Explorer von der Internet-Homepage von Microsoft (http://www.microsoft.com) oder als aktuelle CD-Beilage in diversen Computerzeitungen.

Der Opera-Browser

Die wohl interessanteste Alternative zu den beiden gerade beschriebenen Browsern dürfte der äußerst stabil laufende Opera-Browser der norwegischen Firma Opera Software sein, den wir in der Version 3.6 als drittes Referenzsystem verwenden wollen15. Den Browser gibt es in einer 16- und einer 32-Bit-Version für MS Windows (3.1, 95, 98, NT3.51 und NT4.0). Er läuft aber auch unter OS/2 und der Mac-Plattform unter Virtual PC. Linux, BeOS, Amiga und Psion sollen bald folgen.

Abbildung 1.10:  Der Opera 3.6

Um bei diesem Browser mit dem größten Nachteil für eine höhere Verbreitung anzufangen: Er ist im Gegensatz zu den beiden Massenbrowsern nicht kostenlos (Preis ca. 35 Dollar). Zu beziehen ist dieser Browser jedoch in einer 30-Tage-Testversion unter http:// www.opera.com/de/ oder wie die beiden anderen Browser als Beilage in etlichen Computerzeitungen.

Dafür bietet diese norwegische Browser-Alternative jedoch einige erhebliche Vorteile gegenüber den Konkurrenten, weshalb gerade immer mehr Profis auf diesen Browser umsteigen. Insbesondere ist Opera extrem ressourcensparend (nur 1,2 Mbyte in der Version 3.6 - die Installationsroutine passt damit auf eine Diskette, was sonst kaum noch ein Programm schafft) und baut Internet-Seiten bedeutend schneller auf als seine fettleibigen Rivalen. In diversen Tests im Sommer 2000 hat sich gezeigt, dass Opera bei einigen (besonders bei komplexeren) Webseiten bis zu viermal schneller ist als der Navigator (Zweitschnellster). Opera wurde, im Gegensatz zu anderen Browsern, von Grund auf neu entwickelt und basiert nicht auf altem 16-Bit-Code. Insbesondere ist Opera unabhängig von Win32. Gerade bei älterer Hardware16 zeigen sich die Geschwindigkeitsvorteile, aber auch auf schnellen Rechnern funktionieren Datei-Downloads, Cache-Zugriffe und die Darstellung von Webseiten mit rechenintensiven Anweisungen extrem schnell. Daneben bietet der Browser eine intelligente und umfangreiche, wenngleich etwas gewöhnungbedürftige Befehlssteuerung mit Maus und Tastatur.

Die Installation von Opera greift so gut wie gar nicht in das Betriebssystem ein (nur eine Datei - opera.ini - wird in das Windows-Verzeichnis geschrieben) und ist absolut unkompliziert. Dies prädestiniert den Browser für die Verbreitung von Software mit einer unter HTML erstellten Oberfläche. Der mitgelieferte Browser kann sogar direkt von einer CD gestartet werden, ohne unerwünschte Installationen beim Anwender vornehmen zu müssen.

Die Hersteller von Opera schreiben sich auf die Fahne, den in anderen Browsern zu findenden überflüssigen Ballast erheblich reduziert und dafür intelligente Zusatzfunktionen ergänzt zu haben. Opera unterscheidet sich bereits im Design in einigen wichtigen Details von anderen Browsern. Etwa befindet sich die Statuszeile oben und die Adresszeile unten (entgegen der Positionierung bei den Rivalen). Nach einer Eingewöhnung erweisen sich die meisten Veränderungen als echte Verbesserungen. Opera bietet zudem zahlreiche Einstellungsvarianten, die den Browser äußerst flexibel anpassen lassen. Selbstverständlich gibt es die von den anderen Browsern gewohnten Features (so lange nach Einschätzung der Opera-Leute sinnvoll) wie Lesezeichen (obwohl auch diese leistungsfähiger sind als bei den Kontrahenten - sie erlauben das gleichzeitige Hinzufügen mehrerer Bookmarks), aber die Vorteile von Opera liegen woanders. So bietet Opera beispielsweise einfachste Möglichkeiten, das Laden von Grafiken auf Wunsch zu aktivieren oder zu deaktivieren um Ladezeiten einzusparen (Echtzeit-Grafikumschaltung). Und nicht nur Grafiken können deaktiviert werden. Opera unterstützt zwar auf der einen Seite alle gängigen Multimedia-Formate, aber alle Multimedia-Elemente können auf einfachste Art und Weise jederzeit abgestellt werden, inkl. GIF-Animationen, JavaScript, Tabellen, Frames, Grafiken allgemein, Cookies, Referrer Logging, Videos, Sound in Webseiten und PlugIns. Statt sich über überfrachtete Webseiten mit endlosen Ladezeiten ärgern zu müssen, hat der Anwender totale Kontrolle über die Anzeige von Webseiten17. Ebenso können dynamisch per Tastenkombination in Webseiten gewählte Farbkombinationen durch die Standardanwendereinstellung ersetzt oder wieder zurückgeschaltet werden. Genauso können mit Tasten Schriften in Webseiten einfach vergrößert und verkleinert werden (das können auch andere Browser), und zwar - wenn gewünscht - mitsamt den integrierten Grafiken (also eine Zoom-Funktion, und so etwas kennt weder der Navigator noch der Internet Explorer).

Etwas gewöhnungsbedürftig für Browserverhältnisse sind die im Opera verwendeten Mehrfachfenster. Dies ist eine andere Fenstertechnik, als herkömmliche Browser verwenden. Opera wird auch dann nur einmal in den Arbeitsspeicher geladen, wenn mehrere Webseiten angezeigt werden sollen (in anderen Browsern wird für jedes parallel angezeigte Dokument eine neue Kopie des Browsers geladen). Die verschiedenen Fenster werden in Opera so geöffnet wie beispielsweise Word-Dokumente in den Versionen vor Word 2000. Dies ermöglicht dem Anwender erheblich mehr Kontrolle über die einzelnen geladenen Webseiten. Damit können mehrere Fenster gleichzeitig geöffnet und überlagert, gekachelt oder im Vollbildmodus anzeigt werden.

Abbildung 1.11:  Gekachelte Fenster im Opera

Die Mehrfachfenstertechnik des Opera kann bei Seitenreferenzen unter JavaScript Schwierigkeiten machen. Ohne zu weit vorzugreifen zu wollen: Es gibt in JavaScript die Möglichkeit, mit einer open()-Anweisung neue Seiten im Browser anzeigen zu lassen. Opera kann da in einigen Versionen recht eigen reagieren, weshalb solche Konstrukte unbedingt damit getestet werden sollten. Leider muss man bei Opera aber auch an anderen Stellen mit Problemen bei JavaScript (und auch Java) rechnen, was der vielleicht größte Kritikpunkt beim Opera-Browser ist. Die Probleme sollten aber in der Finalversion 4.0 beseitigt sein.

Ein Highlight von Opera ist die Offline-Arbeit. Wenn man mit dem Browser offline geht, werden nicht einfach alle Verbindungen gekappt, sondern Opera fragt nach, ob die geladenen Fenster gesichert werden sollen.

Im Bereich der Sicherheit hat Opera die vollen 128-Bit- Verschlüsselungsprotokolle nach SSL 2 und 3 sowie TLS 1.0 integriert. Java wird bis zur Version 4.0 nur über ein Java PlugIn von Sun Microsystems unterstützt, die Version 4.0 hat Java dann komplett implementiert18. Insbesondere hält sich Opera aber strikt an die von Sun veröffentlichten Vorgaben für Java.

In Bezug auf Style Sheets hält sich Opera strikt an den W3C-Standard für CSS1 und unterstützt diesen nach eigenen Angaben fast vollständig. Dies ist keine Selbstverständlichkeit, wie sowohl der Internet Explorer, aber auch der Navigator zeigen (beide halten sich nicht vollständig an die W3C- Empfehlungen). Etwas schmalbrüstig zeigt sich Opera bedauerlicherweise in der Unterstützung von JavaScript. Bis zur Version 4 wird nur JavaScript 1.1 unterstützt, ab der Version 4 soll JavaScript 1.3 funktionieren, und die bei vorherigen Versionen vorhandenen JavaScript-Probleme sollen behoben sein19. Ebenso wird die Mail- und News-Unterstützung erst ab der Version 4 konkurrenzfähig sein (bisher kann Opera Emails versenden, jedoch nicht empfangen, und der eingebaute Newsreader funktioniert nur online).

Einige Alternativen

Der NCSA Mosaic ist der Urahn aller grafischen Browser und wird seit einiger Zeit nicht mehr weiterentwickelt (dessen Nachfolger ist wie gesagt der Navigator). Er kann deshalb weder die neuen HTML-Standards anzeigen noch Webscripte ausführen. Trotzdem ist dieses Programm bei Anwendern noch sehr beliebt, denn der Browser ist schnell und läuft auf den einfachsten Rechnern mit minimaler Ausstattung. Gerade diese Verbreitung und die mangelnden Fähigkeiten machen ihn zum idealen Testbrowser, um zu sehen, wie sich ein Projekt in einem Browser mit minimalen Fähigkeiten darstellt.

Ein erwähnenswerter Browser ist ebenso HotJava, den die Firma JavaSoft - ein Ableger des Java-Erfinders und JavaScript-Mitentwicklers Sun - vollständig in Java geschrieben hat. Durch die Erstellung des Browsers in Java bietet er die optimale Integrationsmöglichkeit für Java-Applets in HTML-Seiten. Ebenso ist er als Java-Applikation plattformunabhängig und kann direkt auf allen 32-Bit-Betriebssystemen eingesetzt werden, wo Java unterstützt wird. Durch die nicht vorhandene Beschränkung auf das Windows-Design zeichnet er sich gegenüber seinen Konkurrenten auch durch ein anderes Styling aus. Leider ist der Browser recht langsam und hat sich nicht allzu weit verbreitet.

Tools zur Webseitenerstellung und JavaScript- Programmierung

Bei der Erstellung von Programmen und auch Webseiten stellt sich die Frage, welche Programme man dazu überhaupt braucht? Dass Sie als zukünftige Webseitenersteller und JavaScript-Programmierer verschiedene Browser benötigen, haben wir ja gerade durchgesprochen. Aber welche weiteren Tools benötigen Sie noch? Wenn man der Fraktion der Hardcore- Programmierer folgt - für HTML oder JavaScript keine. Dieses Lager der Webprogrammierer verwendet nur einen Texteditor, wie er beispielsweise in Windows schon dabei ist (unter Zubehör). Selbst dieser Minimaleditor ohne jeglichen Komfort langt für alles, was Sie mit HTML und JavaScript machen können. Im Ernst. Hardcore-Programmierer geben jeden Befehl Buchstabe für Buchstabe über die Tastatur ein. Da sowohl HTML als auch JavaScript ausschließlich aus Klartext bestehen, benötigt man nach der Erstellung des Quellcodes auch kein weiteres Programm, welches den Quelltext in Maschinencode übersetzt. Dies übernimmt ja der Interpreter - sprich der Browser - auf der jeweiligen Plattform.

Abbildung 1.12:  Der Windows-Einfachsteditor Notepad

Das direkte Eingeben alle Befehle Buchstabe für Buchstabe über die Tastatur hat einiges für sich. Etwa die vollständige Kontrolle über alle Befehle einer Sprache (auch die neuesten Befehle) und Anweisungen in einem Dokument (keine Menüstruktur oder sonst etwas schränkt einen ein), eine schnelle Eingabe der Befehle (wenn man fix mit der Tastatur ist und die Befehle kennt), keinerlei Kosten für irgendwelche Programme oder Einarbeitungszeit in ein solches Tool (englisch: Werkzeug, also ein Hilfsprogramm, welches bestimmte Arbeiten erleichtern soll).

Nur - so gnadenlos Buchstabe für Buchstabe ohne Hilfe durch Tools wird die ganze Geschichte nicht sonderlich komfortabel sein. Und Sie werden viel Zeit verlieren, indem Sie Dinge manuell eingeben müssen, die mit guten Tools leichter und schneller gehen. Ebenso ist die Suche von Fehlerquellen ohne Hilfsmittel sehr mühsam. Grundsätzlich werden die Resultate von professionellen Hardcore-Programmierern zwar nicht schlechter sein als die Ergebnisse der meisten Tools zur Erstellung von Webseiten. Im Gegenteil - normalerweise viel besser als die von Tools, wenn diese zu viel automatisch machen. Man hat jedoch viel Schreibarbeit (insbesondere bei standardisierten Elementen meist überflüssig), muss Befehle samt Parameter genau kennen, eventuelle spezielle Zeichenkombinationen umständlich eingeben20 und permanent mit Schreib- und Flüchtigkeitsfehlern rechnen.

Es erscheint also sinnvoll, sich von Tools ein bißchen helfen zu lassen - sowohl in Hinsicht auf HTML als auch JavaScript. Dabei sollte aber gleich voran geschickt werden, dass die Hilfe der meisten Tools bezüglich HTML recht umfangreich werden kann, für JavaScript jedoch in der Regel ziemlich beschränkt bleibt.

Welche Form von Hilfsprogrammen und welche konkreten Tools sollten Sie dann aber verwenden? Diese Frage kann nicht allgemein beantwortet werden, denn jeder Webseiten-Ersteller und JavaScript-Programmierer hat seine persönlichen Vorlieben, Stärken und Schwächen.

Die Webeditoren in den Browser-Paketen

Auf jeden Fall haben Sie schon mal die Tools zur Verfügung, die in modernen Browser-Paketen integriert sind. Im Fall vom Internet Explorer ist das Frontpage Express, im Fall vom Netscape Communicator der Composer.

Abbildung 1.13:  Eine Webseite im grafischen Erstellungsmodus des Composers

Diese integrierten Programme zur Erstellung von Webseiten werden jedoch von vielen Profis nicht sonderlich geschätzt. Das liegt an mehreren Gründen, die wir im Folgenden durchsprechen wollen. Steigen wir in die Erklärung etwas grundsätzlicher ein.

Texteditoren mit sinnvollen Zusatzfunktionen

Besonders sinnvoll und auch bei Hardcore-Programmierern meist noch akzeptiert sind Texteditoren mit ein paar sinnvollen Zusatzfunktionen: Etwa dass sie mehrere Dateien gleichzeitig öffnen lassen, »Suchen und Ersetzen« in mehreren Dokumenten in einem Schritt erlauben oder einige Bestandteile einer Sprache (etwa HTML) kennen und damit gewisse Vorgänge unterstützen. Etwa das Maskieren von Sonderzeichen oder Hilfestellung für die Übersichtlichkeit durch farbliche Kennzeichnung von bekannten Befehlen. Gerade dies als Syntaxhighlighting bezeichnete Verfahren, welches einen Quelltext vor der Anzeige durch einen Syntaxparser analysieren lässt, vereinfacht eine weniger fehlerträchtige Programmierung erheblich.

Ein Parser ist ein Mechanismus zum Identifizieren von zu einer Sprache gehörenden Ausdrücken.

Abbildung 1.14:  Super NoteTab, ein Editor, der mehrere Dokumente gleichzeitig verwalten kann

Wenn luxuriöse Texteditoren dann noch bei Standardvorgängen wie Suchen und Ersetzen von Textpassagen leistungsfähige Bonbons anbieten (etwa das automatische Ersetzen von Textpassagen in allen geöffneten Dokumenten, wie es beispielsweise der Freeware-Editor Super NoteTab - http://www.unige.ch/sciences/terre/geologie/fookes/ - kann), hat man sich schon einige Arbeit gespart, ohne Vorteile der Hardcore- Programmierung aufzugeben.

Etwas mehr Hilfestellung geben HTML-Editoren und direkt HTML- erstellende Programme (die oft auch Grundzüge von JavaScript kennen). Solche Programmtypen bieten die Befehle einer Sprache direkt an - etwa durch Menüs oder Symbolleisten, wo der Anwender diese auswählen kann (auch mit der Maus). Sie werden je nach der Auswahl und dem Programm dann in verschiedenartiger Form im Dokument dargestellt. Obwohl hier bereits die Grenze für viele Verfechter der Hardcore-Programmierung überschritten ist, bieten solche Tools Hilfestellungen in vielen Situationen. Zumal gute Tools dieser Art verschiedene Ansichten eines Webdokumentes bieten - etwa eine Vorschau, einen grafischen Erstellungsmodus und vor allem eine Ansicht des eigentlichen HTML- und JavaScript-Codes.

Wizards, Office-Programme und WYSIWYG-Editoren

Die generelle Ablehnung von weitergehenden HTML-Tools durch viele Experten rührt daher, dass es leider auch zahlreiche schlechte Vertreter von HTML-Editoren und Tools zur Webseitenerstellung gibt. Zumindest aus Sicht derjenigen, die HTML und/oder JavaScript beherrschen und die Hintergründe des Webs verstehen.

Vollkommen indiskutabel sind für halbwegs in die Materie involvierte Anwender so genannte Wizards für Webseiten, die einem Anwender vollständig die Erstellung eines Dokuments abnehmen und nur auf Grund einiger Basiseingaben eine HTML-Seite erstellen. Diese Resultate werden langweiliger Einheitsbrei sein, der keinerlei gesteigerten Ansprüchen genügen kann. Dazu ist der erzeugte Quelltext nie optimal. Dies gilt auch für Wizards, die von Online-Anbietern als Webseiten für ihre Kunden ins Netz gestellt werden (so etwas wie die Homepage für 39 Pfennige mit Homepage-Baukasten). Die Verwendung von Wizards bleibt meist nur absoluten Laien vorbehalten und scheitert auf jeden Fall, wenn Scripte ins Spiel kommen.

Aber auch viele andere Programme, welche Dokumente in HTML-Code abspeichern können, verschleiern vollständig, dass damit HTML-Seiten für das heterogene Web erstellt werden. Anwender werden dabei meist vom eigentlichen HTML-Source ferngehalten. Es handelt sich bei solchen Quellcode-fernen Programmen entweder um reine Office-Programme (etwa Word oder Excel ab der Version 7.0), deren resultierende Seite einfach im HTML-Format gespeichert wird. Wenn der resultierende HTML-Quelltext in einem Texteditor analysiert wird, erkennt der Profi unzählige Stellen, die verbessert werden könnten21.

Abbildung 1.15:  Ein Office-Dokument einfach als Webseite gespeichert

Die anderen von vielen Experten abgelehnten Programme sind solche Tools, welche sich von der Bedienung wie eine Textverarbeitung zeigen und dem Anwender suggerieren, eine Webseite lasse sich wie ein Textdokument für den Drucker erstellen. Dazu zählen leider auch die meisten der in den Browser-Paketen integrierten Tools (zumindest in den meisten bisherigen Versionen - die neuesten integrierten Tools sind etwas besser). Solche Programme arbeiten meist mit einem grafischen Erstellungsmodus, der den Zauberzustand WYSIWYG (What you see is what you get) verspricht (wie auch ein Office-Programm). Ein solcher WYSIWYG-Zustand ist bei der Erstellung von Webseiten für das Internet jedoch reine Theorie. Eine Vorgaukelung einer Situation, die einen unerfahrenen Webprogrammierer in trügerische Sicherheit wiegt und Probleme verschleiert. Der Reiz und die Leistungsfähigkeit des Internets beruhen doch darauf, dass Anwender mit den unterschiedlichsten Plattformen zusammengeschlossen sind. Was soll dann das Weismachen eines bestimmten Aussehens, wenn die meisten Anwender die Seite nicht so sehen werden? Kaum ein Anwender wird die vollkommen identische Konstellation wie der Ersteller der Webseite haben22. Dies würde einen übereinstimmenden Browser samt identischer Versionsnummer, eine vollkommen deckungsgleiche Konfiguration des Browsers, die kongruente Bildschirmauflösung, die gleiche Anzahl Farben, das analoge Betriebssystem, die gleiche Monitorgröße und den korrespondierenden Rechnertyp voraussetzen. Eine mehr als unwahrscheinliche Voraussetzung. Um dennoch eine halbwegs realistische Vorschau bieten zu können und das Resultat auf den unterschiedlichsten Plattformen oder zumindest den Rechnern einer Familie (etwa PCs mit Windows-Betriebssystemen) nicht zu extrem von dem - scheinbaren - Endergebnis beim Erzeuger der Webseite abweichen zu lassen, werden alle denkbaren Techniken zum Bändigen des Internets herangezogen. Style Sheets, massenhafter Einsatz von HTML- Befehlen, sehr neue Befehle, eventuell Plattform-beschränkte Anweisungen usw. Es wird versucht, nahezu jedes einzelne Zeichen unter Kontrolle zu bekommen. Statt sich die fließende und freie Darstellung von Seiten im Web zunutze zu machen, wird mit brutaler Gewalt versucht, Webseiten wie Papierdokumente zu behandeln (entgegen der ursprünglichen Philosophie des Webs). Anstelle auf den Wellen des Webs wie mit einem Surfbrett zu reiten, versucht man, die Wellen des Web-Meers einzubetonieren, um trockenen Fußes an den Strand zu laufen. Der erzeugte HTML-Code wird deshalb sehr oft schlecht sein, weil er unnütz groß ist, aber oft dennoch nicht funktioniert. Der Anwender wird durch längere Übertragungszeiten verärgert, obwohl es überflüssig ist. Dazu kann kommen, dass der Einsatz von Browser-beschränkten Befehlen in anderen Browsern zu erheblichen Fehldarstellungen führt. So werden Microsoft-Tools unter Umständen Befehle verwenden, die der Navigator nicht versteht, und Netscape- Programme erzeugen HTML-Code, mit dem der Internet Explorer nichts anfangen kann. Daneben kann es vorkommen, dass Befehle automatisch gewählt werden, obwohl es bessere Befehle (etwa weiter abwärtskompatible Befehle oder mit kürzerem Code) mit gleicher Funktionalität gibt. Wenn dann noch ein Tool überhaupt keinen direkten Zugriff auf den Quelltext erlaubt, sollte ein solches Programm vom ambitionierten Anwender nur als Ergänzung für Teilaufgaben gesehen werden. Außerdem sollte solcher Code auf jeden Fall nachträglich in einem Editor analysiert und optimiert werden (darauf gehen wir am Tag 7 genauer ein).

Die Erstellung von Webseiten unter der Voraussetzung, bei der Erstellung bereits eine exakte Vorschau dessen zu sehen, was die Anwender sehen werden, drängt mir den Vergleich mit einem Auto auf, das ursprünglich für eine Geschwindigkeit von 100 km/h konzipiert wurde (das Web- und HTML-Konzept) und dessen Motor nun mit allen möglichen Tuning- Maßnahmen aufgebohrt wird. Hauptsache, der Wagen schafft die 200 km/ h. Ob Bremsen, Fahrwerk oder Sicherheitsausstattung dem noch gerecht werden, ist egal. Dem (unbedarften) Kunden zeigt man dann aber nur, wie schnell das Auto plötzlich ist, und verschleiert alle Hinweise auf Sicherheitsprobleme. Jedoch der Vergleich macht das Problem deutlich - wehe, wenn was schiefgeht. Fährt die Kiste auf einer Autobahn mit absolut ebener Strecke ohne Schlaglöcher, Kurven, Hindernissen und ähnlichen Problemen (sprich, der Besucher hat eine Plattform, die kompatibel zu der des Webseiten-Erstellers ist), wird es wahrscheinlich gutgehen. Aber wehe, es kommt eine Kurve oder ein Hindernis (ein Besucher mit einer anderen Plattformeinstellung), dann knallt es. Wenn also das Webkonzept in einer Hinsicht optimiert wird, müssen auch Vorkehrungen für die Situationen geschaffen werden, wo die Optimierung für Probleme sorgt. Zumal - im Web hat man so gut wie nie so etwas wie eine freie Autobahn vor sich, sondern eine permanent verstopfte Straße, wo Hindernisse die Regel sind.

Office-Programme erzeugen zwar in Bezug auf die Dateigröße und Kompatibilität einen außergewöhnlich schlechten HTML-Code, aber man muss ihnen zugute halten, dass sie nicht nur das Web im Auge haben. HTML ist nicht gleich HTML. HTML für das Web sollte ohne Zweifel möglichst kleine Dateien mit maximaler Plattformunterstützung gewährleisten. Das unter den Office-Programmen erzeugte HTML muss jedoch das leisten, was die Hausdateiformate der Programme sonst gewährleisten. Eine Excel-Datei, die in HTML gespeichert ist, darf auf PC-Ebene gegenüber dem Programm-eigenen XLS-Format keine Informationen verlieren. Dies erzwingt viel HTML-Code und Stilvereinbarungen, die im Web überflüssig oder gar schädlich sind. Auf Einzelplatzrechnern, homogenen Netzwerken oder Intranets ist es hingegen durchaus sinnvoll. Nur dann sollte man klar sagen, dass es nun mal keine Eier-legende-Woll-Milch-Sau gibt - auch wenn die Hersteller von Office-Programmen ihre Produkte als solche an den Kunden verkaufen wollen.

Aber die Verwendung von Tools beinhaltet noch einige weitere Klippen. Da sind erst einmal potentielle Kosten, denn einige Tools sind nicht kostenfrei. Das sollte aber kein Argument sein, denn Freewareprogramme oder in Browser integrierte Erstellungs-Tools bekommen Sie umsonst und deren Leistung langt allemal (oder sind sogar bereits überfrachtet). Die Fallstricke sind andere.

Programme können naturbedingt nur den Standard einer Sprache kennen, der zum Zeitpunkt ihrer Erstellung realisiert war. Wenn dieser erweitert wird, muss es eine Möglichkeit zur Eingabe von den dann notwendigen neuen Befehlen geben (oder auch sonst nicht direkt im Programm unterstützten Anweisungen). Dummerweise bieten viele Programme nicht diese Möglichkeit, neue Befehle hinzuzufügen oder sie anderweitig in den Quellcode zu integrieren. Dies ist gerade Programmen ohne direkten Quellcode-Kontakt ein gravierender Mangel.

Ein anderes Problem, das lange Zeit insbesondere Frontpage angekreidet wurde (in neueren Versionen ist der Mangel beseitigt), ist die ungewollte Codeveränderung durch Tools. Das bedeutet, eine auf einem anderen Weg erstellte Webseite wird dabei beim Laden in ein Tool vollkommen verändert (auch wenn in dem betroffenen Bereich keine Veränderungen vorgenommen werden). Gut und komprimiert erstellter HTML-Code wird nach den Vorstellungen des Tools umgebaut und meist schlechter und größer. Insbesondere nutzen viele Tools Webseiten, um Eigenwerbung für den Hersteller des Tools in der Seite unterzubringen (in Form einer Metainformation, die wir bei HTML behandeln). Dahingegen werden Möglichkeiten zur sinnvollen Nutzung von Metainformationen (Hintergrundinformationen über die Webseite) in der Regel nicht bereitgestellt (auf Metainformationen gehen wir am Tag 3 ein).

Content-Management-Systeme

Ein bei diesen bisherigen Ausführungen vollkommen außer Acht gelassenes Thema ist jedoch das, was mit dem schrecklichen neudeutschen Unwort »Content Management« bezeichnet wird. Dies bezeichnet die - möglichst transparente - Erstellung und vor allem Verwaltung von Inhalten und Webseiten. Insbesondere, wenn Web-Projekte sehr umfangreich23 sind und sich in sehr kurzen Zeitabständen aktualisieren. Professionelle Content- Management-Systeme (CMS) können Kosten im fünf- bis sechstelligen Bereich verursachen und sind für Privatanwender sowieso, aber auch für kleinere und mittlere Webpräsentationen überdimensioniert. Umfangreichere Webeditoren bieten heutzutage oft bereits ein Seitenmanagement für kleinere bis mittlere Projekte. Das beinhaltet vom Layouten der Webseiten (mit allen gerade beschriebenen Faktoren) bis hin zum Publizieren insbesondere weitergehende Features wie automatische Linkkontrolle, übergeordnetes, grafisches Erstellen von Navigationsstrukturen, Verzeichnis- und Dateiverwaltung, Vorlagenerstellung, Einbindung von unterschiedlichsten Elementen, Assistentenunterstützung, die diesen Namen auch verdienen, Datenbankanbindungen oder Unterstützung von verteilter Arbeit mit mehreren Personen in größeren Projekten. Meist stellen diese Programme mehrere Fenster bereit, in denen dann die verschiedenen Vorgänge parallel durchgeführt werden können.

Wir wollen, obwohl diese Systeme in der Regel mehrere hundert DM kosten, ein paar professionelle Webeditoren zumindest kurz vorstellen.

Abbildung 1.16:  Dreamweaver 3.0

Macromedia Dreamweaver 3.0 ist einer der beliebtesten professionellen Webeditoren, dessen Stärken im Designbereich (Style Sheets, dynamische Elemente, Positionierungen - und das weitgehend Browser-unabhängig) liegen. Die Verwaltung von Struktur und Inhalt von Webprojekten ist nicht so weit gediehen.

Ein weiteres sehr populäres Tool ist Microsoft Frontpage 2000. Dessen Stärke ist eindeutig das Management von großen Seiten sowie die Bereitstellung von diversen Assistenten. Die Pflege von Inhalt ist jedoch unnötig kompliziert, da extern erstellte Inhalte nur schwer in das - dort Web genannte - Projekt zu integrieren sind. Außerdem werden HTML- Seiten Microsoft-typisch mit einer Unzahl von Formatierungsanweisungen versehen, die sich dann schwer abstellen lassen, wenn es überflüssig ist. Die nachträgliche Entfernung ist sogar fast unmöglich.

Abbildung 1.17:  Frontpage 2000

Netobjects Fusion 5.0 ist ein weiteres - sehr teures - Tool, das für statische Seiten ideale Verwaltungsmöglichkeiten besitzt. Schwächen zeigt es mit dynamischen und häufig zu aktualisierenden Inhalten; dafür gibt es zahlreiche Schnittstellen zu externen Elementen wie ASP (Active Server Pages) und Datenbanken.

Abbildung 1.18:  Fusion 5.0.

Hot Metal Pro 6.0 von der Firma Softquad ist eine weitere, verbreitete Alternative. Er ist einer der schon am längsten auf dem Markt befindlichen Webeditoren und gilt als recht ausgewogen, aber sehr ressourcenhungrig und gelegentlich instabil.

Grundsätzlich muss man bei diesen kommerziellen Webeditoren festhalten, dass sie wie gesagt recht teuer und oft kompliziert und überdimensioniert sind. Im professionellen Bereich bei größeren Webprojekten haben sie sicher ihre Bedeutung, im privaten Bereich und bei kleineren Projekten kann man sich das Geld sicher sparen. Zumal es Freeware-Editoren gibt, die diesen Tools kaum nachstehen.

Zwei gute Freeware-Webeditoren

Auch auf die Gefahr hin, andere gute Freeware-Webeditoren zu vergessen, sollen zwei leistungsfähige HTML-Programme angegeben werden, die zeigen, wie Webseitenersteller auf der einen Seite durch viele nützliche Tools sinnvoll unterstützt, auf der anderen Seite nicht durch Fernhalten vom Quellcode und anderen Gängeleien behindert werden. Beide Programme dürften sogar für Hardcore-Programmierer noch akzeptabel sein, da sie keinerlei Code verändern und ziemlich guten Code erzeugen. Dazu löst der Einsatz eines der beiden Tools ein grundsätzliches Problem, was man bei der Arbeit ohne Hilfsmittel hat - die sinnvolle Verwaltung und Strukturierung mehrerer zusammengehörender Dateien in Projekten (eben das, was mit dem grässlichen Begriff Content-Management beschrieben wird). Beide Programme unterstützen solche bei größeren Webprojekten sehr sinnvolle Verwaltung, nötigen einen Anwender jedoch nicht dazu, wie es etwa Frontpage versucht, wo die von einem Projekt losgelöste Bearbeitung einzelner Seiten ziemlich umständlich ist.

Die eine Empfehlung ist das australische Programm 1st Page 2000 von der Firma Evrsoft (http://www.evrsoft.com), welches sehr stark im Bereich Webseitenoptimierung ist, verschiedene über HTML hinausgehende Techniken ansatzweise unterstützt (etwa CGI, Perl, SSI, ASP und natürlich JavaScript) sowie zahlreiche vorgefertigte Schablonen in verschiedenen Techniken bereitstellt. Insbesondere erzeugt das Programm - Zitat aus der Hilfe - »keinen unerwünschten Junk-Code wie die meisten WYSIWYG- Editoren«, sondern bietet eine flexible Programmierumgebung für den Anwender mit maximalen Einstellungs- und Optimierungsmöglichkeiten.

Abbildung 1.19:  Der kostenlose HTML-Editor Phase 5

Abbildung 1.20:  Der Freeware-HTML-Editor 1st Page 2000

Der zweite Vorschlag ist der deutsche HTML-Freeware-Editor Ulli Meybohms HTML EDITOR Phase 5 (http://www.meybohm.de). Der Editor beinhaltet verschiedene Syntaxparser, welche die Darstellung von Quelltexten in verschiedenen Sprachen (JavaScript, HTML, SQL, Perl usw.) durch Syntaxhighlighting erheblich verbessert. Befehle, Parameter und Text werden durch unterschiedliche Darstellungsfarben voneinander abgehoben. Reservierte Wörter werden fett dargestellt. Der Editor erlaubt weiterhin die Darstellung von Zeilennummern, was erheblich bei der Fehlersuche in Scripten und Quelltexten hilft. In der unteren Statuszeile werden Statusinformationen des Editors angezeigt, zum Beispiel die Position des Cursors. Dazu kann der Anwender Befehle über Tastatur, Schaltflächen oder Menüs eingeben und bekommt auf Wunsch HTML- Container und Schablonen generiert.

Sie finden Phase 5 auf der Buch-CD.

Script-Editoren und Entwicklungstools für Programmiersprachen

Die bisherigen Überlegungen betreffen die Tools, welche im Schwerpunkt HTML-Seiten erstellen sollen. Was ist aber mit Script-Editoren und Tools für komplexere Sprachen? Nun, die meisten umfangreicheren HTML-Tools beherrschen Grundzüge von erweiternden Techniken. Da JavaScript eine der wichtigsten Erweiterungen ist, zählt diese Technik fast immer dazu. Allerdings beschränkt sich die jeweilige Unterstützung meist auf die Integration in Webseiten und wenige ausgewählte Anweisungen.

Es gibt auch Tools, die sich auf die weitergehende Unterstützung von JavaScript spezialisiert haben. Der gegenüber HTML komplexere Aufbau von Scriptsprachen lässt die Unterstützung durch geeignete Tools sogar angeraten erscheinen. Aber obwohl bei einigen Script-Editoren von deren Herstellern versprochen wird, dass auf die Kenntnisse der Sprache verzichtet werden kann, zeigt sich immer wieder, dass dies nicht stimmt. Grundlegende Kenntnisse der gewünschten Sprachen sind immer notwendig, und leider fängt bei echten JavaScript-Tools auch das Geldausgeben an. Wir werden deshalb - und vor allem wegen des Lerneffekts - auf die Verwendung von JavaScript-Tools verzichten.

Bei »richtigen« Programmiersprachen wie C/C++, PASCAL oder Visual Basic kommen Sie ohne vollständige Tools nicht aus. Insbesondere wenn Sie keine Programme auf Interpreterbasis erstellen wollen. In diesem Fall benötigen Sie mindestens einen Compiler, also ein Programm, welches den in einem Editor erstellten Quelltext erst in Maschinencode übersetzt. Richtige Programmiersprachen sind außerdem kompliziert. Sie benötigen viele Funktionalitäten, die nur durch eine vollständige Programmierumgebung zur Verfügung gestellt werden.

Fazit

Trotz einiger wirklich empfehlenswerter Tools werden wir im Laufe des Buchs dennoch auf die explizite Verwendung von bestimmten Programmen verzichten. Dies hat mehrere Gründe:

Weitere sinnvolle Programme

Neben Browsern, einem geeigneten Texteditor und einem optionalen HTML-Editor gibt es noch weitere Programme, welche für die Erstellung von Webseiten im Allgemeinen sinnvoll (wenn nicht zwingend) sind. Dies sind im Wesentlichen Grafik- und Animationsprogramme sowie Tools zum Upload von den fertigen Seiten ins Internet.

Grafik und Animation

So gut wie keine Webseite kommt ohne Grafiken aus und auch aus JavaScript heraus kann eine Verbindung dazu aufgebaut werden. Sei es nur der Start eines Scripts über eine Grafik, sei es eine Script-gesteuerte Animation, sei es die Manipulation von Grafiken über Scripte. Ebenso finden sich in Webseiten immer mehr Animationen unterschiedlichster Art. Teilweise mit JavaScript über geschickte Steuerung von Grafiken realisiert, aber auch immer öfter, indem unterschiedlichste Techniken und Formate zum Einsatz kommen.

Unabhängig davon, dass der Einsatz von Grafiken und Animationen auf vielen Webseiten übertrieben wird - ein Webseitenersteller sollte einen kleinen Fundus an den wichtigsten Programmen aus dem Grafik- und Animationsbereich zur Verfügung haben. Zumal die meisten Programme für den normalen Gebrauch Freeware oder zumindest Shareware sind. Eine Ausnahme bildet das recht teure Macromedia Flash, das in letzter Zeit bei vielen Animationen im Web zum Einsatz kommt und mit dem Flash-Format mittlerweile einen Animationsstandard im Web etabliert hat, der sich schon einer recht breiten Unterstützung erfreut24.

Abbildung 1.21:  Flash

Aber wenn Sie JavaScript beherrschen, können Sie sich ein solches Animationsprogramm auch sparen - das meiste werden Sie am Ende des Buchs auch über JavaScript und Grafiken selbst programmieren können. Und das, ohne dass auf Zielrechnern eine Flashunterstützung vorhanden sein muss.

Ansonsten gehören normale Grafikprogramme auf fast jedem Rechner zur Grundausstattung. Die Palette ist so umfangreich, dass kaum alle sinnvollen Programme aufgeführt werden können. Das Grafikprogramm sollte nur auf jeden Fall in der Lage zur Verarbeitung der üblichen Internet-Grafikformate .GIF und .JPEG sein, eine möglichst große Anzahl von anderen Bildformaten importieren können und Konvertierungen bezüglich der Farbanzahl beherrschen. Ideal ist, wenn eine flexible Reduktion der Dateigröße möglich ist, was ja im Web eine oft notwendige Aktion ist.

Das beliebte Grafikprogramm Paint Shop Pro von Jasc (http://www. jasc.de) wurde Mitte 2000 als kostenlose Vollversion in der Version 4.15 freigegeben. Das Programm beinhaltet eine direkte Scanner-Einbindung, über 30 Grafik-Import- und -Export-Formate, eine große Anzahl an Effekten und zahlreiche Farbmanipulations- und -Reduktions-Befehle, was ideal für die Erstellung von Webgrafiken ist.

Abbildung 1.22:  Der GIF-Animator

Abbildung 1.23:  Die kostenlose Vollversion von Paint Shop Pro

Animierte GIFs gehören im Web zu den Klassikern von Animationen. Viele einfache Animationen lassen sich bereits mit kostenlosen Grafikprogrammen realisieren, zumal animierte GIFs in vielen Fällen bessere Lösungen sind als zusätzliche Techniken voraussetzende Animationen. Zwei interessante Vertreter für Programme zur GIF- Animation sind der kostenlose Microsoft GIF Animator oder das preisgünstige GIF Construction Set von Alchemy Mindworks Inc. (http:// www.mindworkshop.com/alchemy). Beide Programme erlauben das Zusammensetzen einzelner GIFs zu einer fertigen Animation. Per Maus oder Menü werden die Bilder an die gewünschte Position gebracht sowie Zusatzdaten wie die Wiederholungsrate, der Transparenzmodus, die Bildwechselgeschwindigkeit, die Größe usw. eingegeben.

Wenn sich im Laufe einer Webprojektphase eine Vielzahl von Grafiken ansammeln, ist ein Programm zur Verwaltung, zum Sortieren und für die Vorschau der in einem Projekt/Verzeichnis enthaltenen Grafikdateien sehr nützlich. Die meisten teuren Grafikprogramme bieten das natürlich, aber auch preiswerte Shareware und teilweise sogar Freeware-Programme bieten diese Features. Aus der Masse der Angebote wollen wir nur Grafik Workshop von Alchemy Mindworks Inc. erwähnen (http:// www.mindworkshop.com/alchemy/gww.html). Das Programm bietet alles zum Anschauen von Grafikdateien in zahlreichen Grafikformaten, eine gute Sortierfunktion und die Möglichkeit, den Bildern einen Kommentar zu verpassen.

Upload-Programme

Neben Grafikprogrammen benötigen Sie unbedingt ein Programm, welches den Upload der fertigen HTML-Seiten samt dazugehörender Dateien ermöglicht, denn grundsätzlich müssen alle Informationen, Bilder, Scripte etc., die im World Wide Web öffentlich zugänglich gemacht werden sollen, irgendwie von dem lokalen Rechner auf einen über das Internet erreichbaren Webserver geladen werden. Dazu können im einfachsten Fall Upload-Wizards verwendet werden, im allgemeinen Fall FTP-Clients.

Die meisten Internet-Dienstanbieter bieten Webspeichermöglichkeiten für die Webseiten ihrer Kunden an. Die großen Online-Dienste bieten in ihrer Zugangssoftware integrierte Module in Form von Wizards zum Upload an, die dann aber normalerweise auf den Kontakt zu dem jeweiligen Online- Dienst beschränkt sind. Daneben haben sie oft noch andere Schwächen (etwa ungenügender Bedienkomfort bei AOL oder kein direktes Management von Client und Server parallel), weshalb eine zusätzliche Software meist notwendig wird.

Ein recht komfortabler und brauchbarer (und überdies kostenloser) Upload- Wizard für den Kontakt zu beliebigen Servern ist Microsofts Web- Publishing-Assistent. Sie erhalten ihn von den üblichen Microsoft-Seiten. Der Assistent stellt ein einfaches Verfahren für das Übertragen von beliebigen Daten auf einen beliebigen Webserver zur Verfügung. Dies funktioniert damit u.U. auch dann, wenn ein direkter FTP-Kontakt per FTP-Client nicht möglich ist. Der Assistent unterstützt neben dem Upload per FTP-Protokoll auch HTTP Post oder CRS. Das ist beispielsweise für CompuServe-Kunden wichtig, wo kein direkter FTP-Upload möglich ist oder aber auch für AOL-Kunden, die nur bei bestimmten Konstellationen mit einem FTP-Client arbeiten können.

Abbildung 1.24:  Microsofts Web-Publishing- Assistent

Grundsätzlich ist die Flexibilität eines Wizards jedoch nicht mit der eines echten FTP-Clients vergleichbar. So ist die Wartung eines etwas umfangreicheren bestehenden Webprojekts auch mit dem Web-Publishing- Assistenten mehr oder weniger eine Zumutung, wenn einzelne Dateien auf dem Server aus dem Projekt gelöscht, verschoben oder umbenannt werden sollen. Entweder muss man alle Dateien pauschal löschen und alles neu hochladen oder in alphabetischer Reihenfolge für jede Datei (Grafik, Webseite, Videodatei, externe Scriptdatei, externe Style Sheetdatei, etc.) bestätigen, ob sie gelöscht werden soll oder nicht. Da kommen leicht dreistellige Dateianzahlen zusammen, wo jedes Mal Löschen oder nicht ausgewählt werden muss. Und zurück gibt es in dem Dialog nicht. Bei Fehlern muss man wieder alles durchlaufen. Wenn die Möglichkeit eines direkten FTP-Kontaktes besteht, sollte auf jeden Fall mit einem solchen FTP-Client gearbeitet werden. Zwei populäre FTP-Clients sind CuteFTP (http://www.cuteftp.com) und WS_FTP95 (http://www.ipswitch.com).

Abbildung 1.25:  Der FTP-Client CuteFTP

Beide Clients bieten die Möglichkeit des vom Windows-Dateimanager/- Explorer gewohnten Dateimanagements. Über zwei Fenster werden Client und Server nebeneinander dargestellt. Man hat im Rahmen seiner Rechte sowohl beim Client als auch Server Zugriff auf alle relevanten Daten wie Dateigröße, Datum, Verzeichnisstrukturen usw.

Abbildung 1.26:  Der FTP-Client WS_FTP95 - links der Clientrechner, rechts das Serververzeichnis

Der Up- und Download von Dateien funktioniert einfach per Drag&Drop. Ebenso lassen sich auf dem Server im Rahmen der zugeordneten Rechte Verzeichnisse erstellen, Dateien gemeinsam markieren und manipulieren (löschen, verschieben, downloaden) usw. - wie bei der Arbeit auf dem lokalen Rechner.

Auch die Kontaktaufnahme zu einem Server ist über die Clients ein Kinderspiel. IP-Nummer, UserId und Passwort (bei frei zugänglichen Servern auch anonymer Zugang, aber dann funktioniert so gut wie nie ein Upload) müssen eingegeben werden. Ansonsten langen meist die Grundeinstellungen wie automatische Hosterkennung.

Zusammenfassung

Das Internet ist ein gigantisches Netzwerk, welches die unterschiedlichsten Fähigkeiten und Informationen bereitstellt. Sie haben in dieser Lektion einige wichtige Hintergründe zum Internet, seinen Protokollen und seinen verschiedenen Diensten - insbesondere dem World Wide Web - erfahren. Besonders beachtet bei dieser Lektion wurde die Bedeutung von HTML (noch gänzlich ohne auf die Syntax einzugehen) sowie das überall im Web zu findende Interpreter-Prinzip, welches sowohl bei HTML, aber auch bei JavaScript zum Tragen kommt. Des Weiteren stand die Funktion von Browsern (mit einer Vorstellung verschiedener Browser) sowie der im Internet überall zu findende Client-Server-Mechanismus im Mittelpunkt unserer Ausführungen. Daneben sollten Sie eine Vorstellung davon haben, welche Programme Sie im Laufe Ihrer JavaScript-Karriere wirklich benötigen, wo Vor- und Nachteile von bestimmten Programmen liegen und worauf Sie erst einmal verzichten können.

In den nächsten Tagen erfahren Sie Näheres zu HTML und JavaScript und wie Sie Scripte in HTML-Seiten integrieren können.

Fragen und Antworten

Frage:
Ist jeder Browser JavaScript-fähig?

Antwort:
Nein, aber die meisten. Insbesondere neuere Varianten können so gut wie immer JavaScript direkt umsetzen oder - wie der Internet Explorer - zumindest die Sprache verstehen. JavaScript ist damit ein Quasistandard bei Scriptsprachen im Web und hat gegenüber allen anderen Scriptsprachen - etwa VBScript - eine erheblich höhere Verbreitung. Allerdings sollte man immer wieder betonen, dass sich auch in neueren Browsern JavaScript vom Anwender deaktivieren lässt. Außerdem kann man sich nicht darauf verlassen, dass auch die neusten Versionen von JavaScript verstanden werden.

Frage:
Ist Interpretation die einzige Möglichkeit, aus Quelltext lauffähige Arbeitsschritte auf dem Computer zu machen?

Antwort:
Nein, es gibt ebenso einen Vorgang, der Compilierung genannt wird. In diesem Fall wird der Quelltext bereits vom Entwickler eines Programms oder Scripts direkt übersetzt und dann diese in lauffähigen Programmcode übersetzte Datei an den Anwender weitergegeben. Unter Windows sind das in der Regel Dateien mit der Erweiterung .exe. Compilierung hat gegenüber Interpretation einige Vorteile, aber diesen stehen natürlich auch einige Nachteile gegenüber (sonst gäbe es nicht beide Varianten).

Interpretation hat sich als ideale Lösung für den Fall bewährt, wenn unterschiedliche Plattformen zu bedienen sind. Etwa wie sie im Internet mit seiner extrem heterogen Struktur und den unterschiedlichsten dort zusammengeschlossenen Rechnertypen mit ihren unzähligen Betriebssystemen vorkommen. Diese Heterogenität erzwingt gemeinsame Nenner zur Verständigung, und da sind Klartextanweisungen ideal, denn diese werden auf nahezu jeder Plattform verstanden. Solche neutralen Befehle werden in einem gemeinsamen Zeichensatz (ASCII oder neuerdings oft UNICODE) dargestellt und erst auf der jeweiligen Zielplattform (also beim Client) in konkrete Prozessorbefehle übersetzt (interpretiert)25. Das Programm zur Übersetzung der Anweisungen in plattformspezifischen Code läuft auf der jeweiligen Plattform und kennt die konkreten Prozessorbefehle. HTML als auch JavaScript sind Beispiele für so eine Konstellation. Sowohl die HTML als auch JavaScript-Anweisungen bestehen aus Klartext, der auf jeder Rechnerplattform verstanden werden. Über einen Interpreter - den Browser - werden die Anweisungen in die jeweiligen Prozessorbefehle übersetzt und ausgeführt. Ein weiterer Vorteil der Interpretation ist die Reduzierung der Menge der zu übertragenden Daten. Man überlässt dem Anwender einige Freiheiten und hat zudem bereits in den Interpreter einige Funktionalitäten eingebaut, die nicht jedes Mal zu übertragen sind.

Compilierung ist dagegen sinnvoller, wenn direkt für eine Plattform (etwa Windows) entwickelt wird und es auf Performance ankommt. Wenn man ein vollständig in Maschinencode für einen bestimmten Prozessor übersetztes Programm (compiliert) unter einer anderen Plattform laufen lassen möchte, wird dies in der Regel nicht funktionieren, aber das spielt dann ja keine Rolle. Dafür ist es in Hinsicht auf eine Plattform optimiert und muss vor allem nicht zur Laufzeit erst übersetzt werden. Dies verbessert das Laufzeitverhalten gegenüber interpretierten Anwendungen erheblich.

Frage:
Wo können IP-Nummern und DNS-Namen registriert werden?

Antwort:
Das Internet kommt ohne eine obere Instanz aus. Dies bedeutet, es gibt keine Organisation oder Behörde, die im Internet so etwas wie eine gesetzgebende Funktion ausüben kann. Mit eigentlich nur einer Ausnahme - die Vergabe von IP-Nummern respektive zugeordneten DNS-Namen. Dies kann nicht willkürlich erfolgen, sondern muss rein technisch zentral verwaltet werden. Verantwortlich für die eindeutige Vergabe und Verwaltung von DNS-Namen im Internet ist eine Organisation namens InterNIC (http://www.internic.net) bzw. deren nationale Ableger wie das Deutsche Network Information Center (DE-NIC - http:// www.denic.de). Diese Organisation zur Vergabe und Verwaltung von eindeutigen Adressangaben samt ihrer Unterorganisationen sind wohl die einzigen Instanzen im Internet, welche die Möglichkeit haben, verbindliche Vorschriften zu vergeben. Wenn eine Firma, eine Organisation oder auch eine Privatperson eine IP-Nummer für einen Server oder einen DNS-Namen für eine Homepage beantragen möchte, kann dies direkt bei dem Network Information Center erfolgen. Allerdings wenden sich die meisten Interessenten nicht direkt an diese Organisation, sondern an einen Zwischenhändler, der für (bei Privatpersonen ziemlich kleines) Geld die Beantragung übernimmt26.

Frage:
Hat jeder Rechner im Internet einen DNS-Namen?

Antwort:
Nein. Nur eine IP-Nummer ist notwendig, ein DNS-Name ist optional.

Frage:
Verstehen der Netscape Navigator und der Opera die JavaScript- Konkurrenzsprache VBScript?

Antwort:
Nein. Nicht ohne Zusatzmodule oder gar nicht.

Frage:
Verstehen alle Browser Style Sheets?

Antwort:
Nein. Nur die neueren, und diese verwenden Style-Sheet- Anweisungen sehr unterschiedlich.

Frage:
Unterstützen der Netscape Navigator und der Opera ActixeX-Controls?

Antwort:
Nein27.

Frage:
Sollte man auf Flash-Formate bei Animationen vertrauen?

Antwort:
Nein, denn trotz der recht großen Verbreitung wird die Masse der Anwender keine Flash-Unterstützung installiert haben und viele Anwender akzeptieren auch kein nachträglich installiertes PlugIn. Eine Flash-Animation ist nur unter dem Aspekt »Nice-to-have« zu sehen, darf aber nie eine ausschließliche Informationsquelle sein.

Workshop

Für diesen Workshop benötigen Sie verschiedene Browser. Mindestens sollte eine halbwegs aktuelle Version des Internet Explorer und des Netscape Communicator installiert sein. Wenn es geht, noch eine Version des Opera-Browsers. Sofern Sie noch keine verschiedenen Browser zur Verfügung haben, installieren Sie die fehlenden Browser (jeweils eine neuere Version).

Die parallele Installation von mehreren Browsers verschiedener Hersteller auf einem Rechner sollte mittlerweile kein Problem mehr sein. Es gibt eigentlich nur eine kleine Unschönheit zu beachten - jeder Browser versucht, sich selbst als Standardbrowser für alle Webseiten und einige zugehörige Dateiformate einzurichten. In der Regel wird damit der zuletzt installierte Browser zu Ihrem Standardbrowser (wenn Sie es bei der Installation nicht verneinen). Ein Doppelklick auf eine zugeordnete Datei (normalerweise lokal vorhanden) startet dann diesen Browser und lädt die Datei. Die Folge ist, dass sich vorher installierte Browser beim direkten Start über den Programmaufruf beschweren, sie wären nicht mehr der Standardbrowser und ob Sie das nicht vielleicht doch nicht lieber ändern wollten. Diese ungefragten, lästigen und eigentlich ziemlich unverschämten Nachfragen können Sie ein für alle Mal deaktivieren, wenn Sie das entsprechende Kontrollfeld zur Erinnerung bei jedem neuen Start im Rückfragefenster ausschalten.

Leider ist es jedoch nicht so einfach, auf einem Rechner mehrere Versionen desselben Browsers zu installieren. In der Regel überschreibt die Installation einer neuen Version die alte Variante. Dieser für den Laien sinnvolle Mechanismus erschwert dem Webseitenersteller die Arbeit erheblich, denn man sollte - wie sich aus den Ausführungen dieses Kapitels ergibt - auch alte Browser zum Testen von Webseiten und Scripten zur Verfügung haben. Da helfen nur verschiedene Rechner oder gegeneinander abgeschottete Partitionen auf einem Rechner. Beachten Sie jedoch, dass die Installation einer Browserversion Schwierigkeiten machen kann, wenn dort bereits eine neuere Abart davon installiert ist. Selbst eine Deinstallation der neueren Variante vor einer Installation der Altversion funktioniert nicht immer. Es können Reste der Neuversion zurückbleiben, die eine Installation einer älteren Variante verhindern (etwa in der Registry).

Ihre Aufgaben in diesem Workshop sollen folgende sein:

Kontrollfragen

Im Anhang »Antworten zu den Kontrollfragen« finden Sie die Antworten zu den jeweils am Ende einer Lektion notierten Fragen.

  1. Welches ist der meist genutzte Dienst im Internet?
  2. Aus welcher Sprache sind Webseiten aufgebaut?
  3. Was ist ein Server?
  4. Gehören Style Sheets zu HTML?
  5. Welchen Style-Sheet-Standard unterstützen die meisten modernen Browser zumindest im Ansatz?
  6. Was ist Unicode?
  7. Sind JScript und JavaScript identisch?
  8. Was ist ein URL?
  9. Zu welcher HTML-Version gehören Frames?
  10. Wie alt ist das Internet?



vorheriges KapitelInhaltsverzeichnisStichwortverzeichnisFeedbackKapitelanfangnächstes Kapitel


123456789101112131415161718192021222324252627

© Markt+Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH