This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
atelier für gestaltung, niesner & huber, wuppertal Sylvia Hasselbach, [email protected] Anna Plenk, [email protected] Roswitha Leferink, Düsseldorf; Barbara Decker, München mediaService, Siegen freiburger graphische betriebe, Freiburg
Inhaltsverzeichnis Teil I: Einführung und Installation .......................................................15 1
Was ist FrontPage? ...........................................................................................17 1.1 Neu in FrontPage 2002 ............................................................................17 1.1.1 Navigation................................................................................17 1.1.2 Neue Seite oder neues Web......................................................18 1.1.3 Dynamic HTML ........................................................................20 1.1.4 Script Editor..............................................................................20 1.2 Struktur und Aufbau.................................................................................21 1.2.1 Menüsystem .............................................................................21 1.2.2 Der Editorbereich .....................................................................22 1.3 Dialoge ....................................................................................................25 1.3.1 Die wichtigsten Dialogfelder .....................................................25 1.3.2 Grundeinstellungen des Programms .........................................25 1.3.3 Seitenoptionen für ein Web ......................................................26 1.3.4 Basisoptionen eines Webs .........................................................32 1.3.5 Seiteneigenschaften..................................................................35 1.4 Die Komponenten....................................................................................39 1.4.1 Übersicht ..................................................................................39 1.4.2 Umgang mit Komponenten......................................................40
2
Server-Erweiterungen .......................................................................................43 2.1 Vorbereiten der FrontPage-Erweiterung....................................................43 2.1.1 Installation der FrontPage-Erweiterungen..................................43 2.1.2 Upgrade und Kompatibilität FrontPage 2000 zu FrontPage 2002 ........................................................................44 2.2 Konfiguration der FrontPage-Erweiterungen .............................................45 2.2.1 Einen virtuellen Server erweitern ...............................................45 2.3 SharePoint Services ..................................................................................48 2.3.1 Übersicht über die Verwaltungsfunktionen................................48 2.3.2 SharePoint Konfigurationseinstellungen ....................................49 2.3.3 SharePoint-Verwaltung virtueller Server ....................................51 2.3.4 SharePoint Websites und FrontPage..........................................54 2.4 SharePoint-Teamfunktionen .....................................................................55 2.4.1 Listen........................................................................................55 2.4.2 Diskussionsrunden ....................................................................56 2.4.3 Dokumente ..............................................................................56
6
Inhaltsverzeichnis
3
Das Internet und seine Dienste ........................................................................57 3.1 Einführung und Grundbegriffe .................................................................57 3.1.1 Grundlagen und FrontPage ......................................................58 3.1.2 Grundbegriffe...........................................................................58 3.2 Die Internet-Protokolle und ihr Ursprung..................................................62 3.2.1 Die Organisationen ICANN und IANA.......................................62 3.2.2 Das ISO/OSI-Modell und die Internet-Protokolle .......................63 3.2.3 Request For Comments (RFC) ...................................................66 3.2.4 Internetprotokolle im Detail ......................................................67 3.3 Höhere Netzwerkprotokolle......................................................................76 3.3.1 Hypertext Transfer Protocol (HTTP) ..........................................76 3.3.2 File Transfer Protocol (FTP) .......................................................81 3.3.3 Protokolle für E-Mail-Verkehr ....................................................87 3.3.4 Codierungsstandard für E-Mail: MIME ......................................92 3.3.5 Network News Transfer Protocol (NNTP)..................................96
4
Basiswissen Online-Marketing..........................................................................99 4.1 Die Gestaltung von Webseiten .................................................................99 4.1.1 Zehn Regeln für gutes Design ...................................................99 4.2 Online-Marketing ...................................................................................101 4.2.1 Definition ...............................................................................101 4.2.2 Zehn Grundregeln für erfolgreiches Marketing .......................103 4.2.3 Werbung für Online-Angebote ..............................................105 4.2.4 Optimal anmelden .................................................................105 4.2.5 Bannertauschprogramme .......................................................107 4.2.6 Werbenetzwerke.....................................................................108 4.2.7 Attraktive Werbeplätze............................................................108 4.2.8 Kundenbindung .....................................................................109 4.3 Domainnamen .......................................................................................110 4.3.1 Namen im Internet .................................................................110 4.3.2 Alternativen ............................................................................112 4.3.3 Konventionell werben.............................................................113
5
Basiswissen HTML ...........................................................................................115 5.1 Die Sprache des Web – HTML ................................................................115 5.1.1 Einführung in HTML ...............................................................115 5.1.2 Kleine Fallen in HTML .............................................................117 5.2 HTML-Grundlagen .................................................................................119 5.2.1 HTML pur ...............................................................................119 5.2.2 Ein bisschen Farbe ..................................................................120 5.2.3 Text und Layout .....................................................................121 5.2.4 Linien .....................................................................................125 5.2.5 Formatierungen......................................................................126 5.2.6 Sonderzeichen ........................................................................131 5.2.7 Bilder und Hyperlinks einbinden .............................................132
Teil II: Webseiten-Gestaltung mit FrontPage ....................................187 6
Arbeiten mit FrontPage-Webs ........................................................................189 6.1 Ein neues Web erstellen..........................................................................190 6.1.1 Die Webstruktur .....................................................................193 6.2 Die erste Seite ........................................................................................195 6.3 Änderungen am Web vornehmen ..........................................................196 6.3.1 Erstellen neuer Seiten..............................................................196 6.3.2 Erstellen neuer Ordner ............................................................197 6.3.3 Umbenennen von Ordnern und Dateien.................................197 6.3.4 Verschieben und Löschen von Dateien und Ordnern ..............197 6.4 Verwendung von Unterwebs ..................................................................199 6.5 Die Webvorlagen ...................................................................................200 6.5.1 Die Vorlage Leeres Web ..........................................................201 6.5.2 Die Vorlage Persönliches Web.................................................201 6.5.3 Die Vorlage Projekt-Web .........................................................204 6.5.4 Die Vorlage Kundenunterstützungs-Web ................................210 6.6 Die Web-Assistenten...............................................................................213 6.6.1 Der Web-Assistent für Firmenpräsenz im Internet....................213 6.6.2 Der Diskussionsweb-Assistent..................................................225 6.7 Webs importieren und ergänzen ............................................................231 6.7.1 Der Webimport-Assistent ........................................................231 6.7.2 Dateien, Ordner und Webs importieren ..................................235
8
Inhaltsverzeichnis
6.8
6.9
7
Import eines Webs als ein Unterweb.......................................................237 6.8.1 Vorbereitung ..........................................................................237 6.8.2 Ein Unterweb veröffentlichen..................................................238 Konfiguration von Webs .........................................................................240 6.9.1 Allgemeine Optionen..............................................................241 6.9.2 Webparameter........................................................................244 6.9.3 Zugriffsberechtigungen ..........................................................246 6.9.4 Quellcodekontrolle .................................................................247 6.9.5 Erweiterte Verzeichnisstruktur von Webs .................................248
Erstellen und Gestalten von Internetseiten ...................................................251 7.1 Was sind Internetseiten?.........................................................................251 7.1.1 Was ist Hypertext? ..................................................................252 7.1.2 Die Struktur von HTML ...........................................................252 7.1.3 Adressierung von Seiten .........................................................255 7.2 Einstieg in die Seitengestaltung ..............................................................257 7.2.1 Eine neue Seite erstellen .........................................................257 7.2.2 Speichern von Seiten ..............................................................258 7.2.3 Dateitypen in FrontPage .........................................................259 7.3 Seiteneigenschaften ...............................................................................260 7.3.1 Allgemeine Optionen..............................................................261 7.3.2 Hintergrund............................................................................262 7.3.3 Meta-Tags ..............................................................................264 7.3.4 Sprache und Codierung..........................................................269 7.3.5 Arbeitsgruppe.........................................................................270 7.3.6 System- und Benutzervariablen...............................................271 7.4 Text .......................................................................................................271 7.4.1 Besonderheiten von HTML-Text..............................................272 7.4.2 Text eingeben und bearbeiten ................................................274 7.4.3 Absätze und Umbrüche ..........................................................277 7.4.4 Überschriften ..........................................................................280 7.4.5 Zeichenformatierungen ..........................................................281 7.4.6 Zeichenformatierungen ..........................................................286 7.4.7 Spracheinstellungen und Rechtschreibung..............................289 7.5 Grafiken einfügen...................................................................................291 7.5.1 Bilder einfügen .......................................................................292 7.5.2 Die ClipArt-Gallery..................................................................293 7.5.3 Clip Organizer ........................................................................296 7.6 Hyperlinks ..............................................................................................297 7.6.1 Text mit Hyperlinks versehen ..................................................297 7.6.2 E-Mails versenden ...................................................................299 7.6.3 Textmarken ............................................................................300 7.6.4 Hyperlinks an Grafiken ............................................................301 7.6.5 Image Maps ...........................................................................301
Inhaltsverzeichnis
7.7
7.8
9
7.6.6 Rollovers.................................................................................303 7.6.7 Hinter den Kulissen .................................................................304 Seitenvorlagen .......................................................................................306 7.7.1 Vorlagen auswählen ...............................................................307 7.7.2 Neu aus vorhandener Seite .....................................................309 Websites für alle .....................................................................................310 7.8.1 Plattformübergreifende Seitenentwicklung .............................310 7.8.2 Schriftarten.............................................................................312 7.8.3 Browserkompatibilität .............................................................314 7.8.4 Anpassungen für behinderte Internetnutzer ............................317 7.8.5 Hardwarevoraussetzungen......................................................318 7.8.6 Farben ....................................................................................319 7.8.7 Die Geschwindigkeit der Anbindung ......................................321
8
Bilder und Design ...........................................................................................325 8.1 Grundlagen des Designs.........................................................................325 8.2 Bilder in Internetseiten ...........................................................................330 8.2.1 GIF .........................................................................................330 8.2.2 JPEG .......................................................................................333 8.2.3 Andere Formate......................................................................334 8.2.4 Formate im Vergleich..............................................................335 8.3 Bilder vorbereiten und bereitstellen ........................................................336 8.3.1 Bilder digitalisieren .................................................................336 8.3.2 Andere Ressourcen .................................................................337 8.4 Bilder mit FrontPage bearbeiten .............................................................337 8.4.1 Bilder einfügen .......................................................................337 8.4.2 Die Bildeigenschaften festlegen ..............................................338 8.4.3 Bilder in FrontPage bearbeiten ................................................341 8.5 FrontPage-Designs .................................................................................346 8.5.1 Designs zuweisen ...................................................................346 8.5.2 Designs ändern.......................................................................347 8.5.3 Randbereiche definieren .........................................................349
9
FrontPage-Webs veröffentlichen....................................................................351 9.1 Die Fehler-Checkliste ..............................................................................351 9.1.1 Stimmen die Inhalte?..............................................................351 9.1.2 Haben Sie alle rechtlichen Aspekte berücksichtigt?..................355 9.1.3 Ist alles korrekt geschrieben? ..................................................356 9.1.4 Sind alle Seiten verlinkt? .........................................................357 9.1.5 Sind alle Seitentitel richtig benannt? .......................................358 9.1.6 Funktionieren alle Hyperlinks?.................................................359 9.1.7 Welche Schwachpunkte hat Ihr Web? .....................................361 9.1.8 Wie stellen Browser das Web dar?...........................................364 9.1.9 Sind die Seiten bereit für Suchmaschinen?..............................365 9.1.10 Was sagen andere zu Ihrem Web? ..........................................366
10
Inhaltsverzeichnis
9.2
9.3
9.4
9.5 9.6
Seíten für die Veröffentlichung auswählen ..............................................366 9.2.1 Synchronisierung....................................................................367 9.2.2 Seiten zur Veröffentlichung kennzeichnen ..............................367 Das Web veröffentlichen ........................................................................368 9.3.1 Die Daten des Webservers ......................................................368 9.3.2 Optionen für die Veröffentlichung ..........................................369 9.3.3 Server mit Servererweiterungen ..............................................369 9.3.4 Server ohne Servererweiterungen ...........................................370 Andere Veröffentlichungswege...............................................................372 9.4.1 Der Windows-FTP-Client .........................................................373 9.4.2 Andere FTP-Programme..........................................................374 Veröffentlichung auf dem lokalen System ...............................................374 Nach der Veröffentlichung .....................................................................375 9.6.1 Site-Check ..............................................................................375 9.6.2 Anmeldung bei Suchmaschinen..............................................375
Teil III: Fortgeschrittene Webs erstellen ...........................................377 10 Layout und Interaktion ...................................................................................379 10.1 Tabellen .................................................................................................379 10.1.1 Anlegen einer Tabelle .............................................................379 10.1.2 Tabellen bearbeiten ................................................................383 10.1.3 Die Größe von Zellen verändern .............................................386 10.1.4 Tabellen formatieren...............................................................387 10.1.5 Umwandlung von Tabellen und Text ......................................389 10.1.6 Dokumentvorlagen für Tabellen..............................................390 10.2 Formulare ..............................................................................................391 10.2.1 Formulare erzeugen................................................................392 10.2.2 Formulare anpassen................................................................392 10.2.3 Die Formularfelder im Überblick .............................................399 10.2.4 Dokumentvorlagen und Assistenten für Formulare ..................407 10.2.5 Der Formular-Assistent............................................................408 10.3 Frames ...................................................................................................411 10.3.1 Ein Frameset und Seiten anlegen ............................................412 10.3.2 Frames sinnvoll einsetzen........................................................413 10.3.3 Browser ohne Frameunterstützung ansprechen ......................414 10.3.4 Frames teilen und verschachteln .............................................414 10.3.5 Frameeigenschaften anpassen ................................................415 10.3.6 Darstellung der Frames anpassen............................................417 10.3.7 Zielframes für Hyperlinks anlegen ...........................................417 10.4 Listen .....................................................................................................418 10.4.1 Aufzählungen .........................................................................419 10.4.2 Nummerierungen...................................................................420 10.4.3 Definitionslisten ......................................................................421 10.4.4 Listen einsetzen ......................................................................422
erstellt von ciando
Inhaltsverzeichnis
11
11 Stylesheets und Dynamic HTML.....................................................................423 11.1 Stylesheets verstehen .............................................................................424 11.2 Stylesheets verknüpfen und einbetten ....................................................426 11.2.1 Stylesheet-Typen ....................................................................426 11.2.2 Selektoren ..............................................................................427 11.2.3 Externe Stylesheets mit dem Dokument verknüpfen ...............428 11.3 Stylesheets definieren .............................................................................428 11.4 Stylesheets anpassen ..............................................................................430 11.4.1 Zeicheneigenschaften .............................................................430 11.4.2 Absatzeigenschaften ...............................................................432 11.4.3 Rahmeneigenschaften ............................................................433 11.5 Positionierung mit Stylesheets ................................................................435 11.5.1 Relative und absolute Positionierung.......................................435 11.6 DHTML-Effekte .......................................................................................437 11.6.1 Animationseffekte ...................................................................437 11.6.2 Mouseover-Effekte ..................................................................438 11.6.3 Effekte für den Internet Explorer .............................................438 11.6.4 Seitenübergänge ....................................................................440 12 Die FrontPage- Komponenten........................................................................441 12.1 Nutzen und Funktion der Komponenten ................................................441 12.1.1 Komponenteneigenschaften anpassen ....................................443 12.2 Inhaltsverzeichnis ...................................................................................443 12.3 Suchformular .........................................................................................445 12.4 Navigationsleisten ..................................................................................446 12.5 Seitenbanner..........................................................................................448 12.6 Elemente einschließen............................................................................449 12.6.1 Seiten einschließen .................................................................449 12.6.2 Seiten nach Zeitplan einschließen ...........................................450 12.6.3 Bild nach Zeitplan einschließen...............................................451 12.7 Anzeigenwechsler ..................................................................................451 12.8 Hoverschaltfläche ...................................................................................452 12.9 Office-Komponenten..............................................................................453 12.9.1 Office-Tabelle .........................................................................453 12.9.2 Office Diagramm ....................................................................455 12.9.3 Office Pivot Table ...................................................................455 12.10 Weitere Komponenten ...........................................................................456 12.10.1 Zugriffszähler..........................................................................456 12.10.2 Kommentar ............................................................................457 12.10.3 Ersetzen..................................................................................457 12.10.4 Datum und Uhrzeit.................................................................458 12.10.5 Laufschrift...............................................................................459 12.10.6 HTML-Markup ........................................................................460 12.10.7 Java-Applets............................................................................461
12
Inhaltsverzeichnis
12.10.8 12.10.9 12.10.10 12.10.11
Andere Dateiformate einbinden ..............................................462 Video......................................................................................463 ActiveX-Steuerelemente..........................................................464 Entwurfszeit-Steuerelemente...................................................466
Teil IV: FrontPage-Webs erweitern ....................................................469 13 Web-Management mit FrontPage..................................................................471 13.1 Ein Web planen ......................................................................................471 13.1.1 Wieso wollen Sie eine Internetpräsenz errichten? ....................471 13.1.2 Was soll kommuniziert werden?..............................................472 13.1.3 Wer ist die Zielgruppe, wer die Konkurrenz? ...........................472 13.1.4 Wie sollen die Inhalte präsentiert werden? ..............................473 13.1.5 Welche Gestaltungsmittel sind angemessen? ..........................473 13.1.6 Wie sieht die Zeitplanung aus? ...............................................473 13.1.7 Wer arbeitet am Web mit?......................................................474 13.1.8 Welche technischen Erfordernisse gibt es? ..............................474 13.1.9 Welche Kosten verursacht die Web-Site?.................................474 13.1.10 Wie wird die Web-Site bekannt gemacht?...............................475 13.2 Mit der Navigationsansicht arbeiten .......................................................475 13.2.1 Eine Webstruktur erzeugen .....................................................476 13.2.2 Die Ansicht anpassen ..............................................................477 13.3 Aufgabenverwaltung ..............................................................................477 13.3.1 Kategorien..............................................................................478 13.3.2 Kategorien erstellen und verwalten .........................................479 13.3.3 Mehrautorenumgebung .........................................................479 13.3.4 Prüfstatus ...............................................................................480 13.3.5 Aufgaben erstellen ..................................................................480 13.3.6 Berichte ..................................................................................481 13.3.7 Aufgaben erledigen und prüfen ..............................................483 14 Datenbankanbindung und Programmierung ................................................485 14.1 Datenbankpraxis ....................................................................................485 14.1.1 Das Datenbankprojekt ............................................................485 14.1.2 Planung der Datenbankstruktur ..............................................485 14.1.3 Entwurf der Seiten und Formulare ..........................................486 14.1.4 Aktivierung des Datenbankzugriffs ..........................................487 14.1.5 Erweiterung durch Active Server Pages ...................................491 14.2 Datenbankfunktionen im Detail..............................................................493 14.2.1 Verbindung zu einer Datenbank .............................................494 14.2.2 Formulare und Datenbanken ..................................................496 14.3 Umgang mit den generierten Codes ......................................................498 14.3.1 Die Ergebnisseite ....................................................................499 14.3.2 Formularauswertung...............................................................499 14.3.3 Interaktiver Datenbankeditor ..................................................500
Inhaltsverzeichnis
13
15 Programmierung von Webseiten ...................................................................503 15.1 Active Server Pages ................................................................................503 15.1.1 Die Programmierung mit VBScript ..........................................503 15.1.2 Eine Einführung in VBScript ....................................................507 15.1.3 Programmieren mit VBScript ..................................................511 15.2 Übersicht Bibliotheken ...........................................................................515 15.2.1 Zusätzliche allgemeine Bibliotheken........................................515 15.2.2 Objekte des Webservers..........................................................516 15.2.3 Mitgelieferte Komponenten ....................................................517 15.3 Datenspeicherung ..................................................................................526 15.3.1 Kollektionen mit Scripting.Dictionary......................................526 15.3.2 Dateizugriff.............................................................................528 15.4 Webserver-Bibliothek..............................................................................538 15.4.1 Die Objekte Request und Response.........................................538 15.4.2 Daten aus einem Formular entnehmen ...................................540 15.4.3 Daten mit Hilfe des URL übertragen........................................544 15.4.4 Weiterleitung (Redirection) .....................................................545 15.4.5 Wie Sie Sessions benutzen können..........................................546 15.4.6 Applikationen .........................................................................552 15.5 Datenbankzugriff ...................................................................................556 15.5.1 Einführung in ADO .................................................................556 15.5.2 Einführung in SQL ..................................................................558 15.5.3 ADO praktisch verwenden ......................................................575 15.6 Die FrontPage-Skriptbibliotheken ...........................................................584 15.6.1 Übersicht FrontPage-Skriptbibliotheken ..................................585 15.6.2 Die Datei global.asa eines FrontPage-Webs.............................585 15.6.3 Die Formularbibliothek fpdbform.inc ......................................588 15.6.4 Die Datenbankbibliothek fpdblib.inc.......................................590 15.6.5 Die Datenbankbibliothek fpdbrgnX.inc...................................594 15.7 Der Microsoft Skript-Editor .....................................................................601 15.7.1 Übersicht über die Entwicklungsumgebung ............................601 15.7.2 Seiteneigenschaften: Einstellungen für ASP .............................604
Teil V: Anhang ....................................................................................607 A
Die FrontPage-Werkzeuge..............................................................................609 A.1 FrontPage 2002 .....................................................................................609 A.1.1 Standard (Kapitel 1, 6 und 7) .................................................609 A.1.2 Format (Kapitel 7)...................................................................611 A.1.3 Berichte (Kapitel 6) .................................................................612 A.1.4 DHTML-Effekte (Abschnitt 11.4) .............................................612 A.1.5 Formatvorlage (Kapitel 11) .....................................................612
HTML-Referenz ...............................................................................................617 B.1 HTML 3.2...............................................................................................617 B.1.1 HTML 3.2-Elemente................................................................617 B.1.2 Übersicht und Einteilung ........................................................619 B.1.3 HTML 3.2-Elemente................................................................619 B.1.4 Liste der Elemente ..................................................................638 B.2 HTML 4..................................................................................................638 B.2.1 HTML 4 – Einführung .............................................................638 B.2.2 Liste der Elemente ..................................................................639 B.2.3 Neue strukturelle Elemente in HTML 4....................................640 B.3 Cascading Style Sheets - CSS..................................................................646 B.3.1 CSS – Klassenübersicht ...........................................................646 B.3.2 Die CSS-Referenztabellen........................................................647 B.3.3 Weitere Informationen............................................................653
C
Angebote im Internet .....................................................................................655 C.1 Offizielle Web Sites.................................................................................655 C.2 Newsgroups zu FrontPage......................................................................655 C.3 Tipps & Tricks ........................................................................................656 C.4 Englische Web Sites zum Thema ............................................................656 C.5 Themes (FrontPage-Designs) ..................................................................656 C.6 FrontPage-Add-ins..................................................................................657 C.7 Newsgroups zu Internet-Themen ...........................................................657 C.7.1 Deutschsprachige Newsgroups...............................................657 C.7.2 Englischsprachige Newsgroups ...............................................657 C.8 Bildarchive .............................................................................................658 C.8.1 Online-Anbieter ......................................................................658 C.8.2 Anbieter von Clip-Art-Sammlungen ........................................658 C.9 Online-Recht ..........................................................................................658 C.9.1 Newsgroups ...........................................................................658 C.10 Suchmaschinen und Verzeichnisse..........................................................659 C.11 Software und Services ............................................................................659
D
Die Autoren.....................................................................................................661 Stichwortverzeichnis.......................................................................................663
I Einführung und Installation Díe Frage mag Ihnen unsinnig erscheinen. Wer kauft sich schon ein FrontPage-Buch und weiß nicht, was das ist? Die Beantwortung nimmt trotzdem einigen Raum ein. Neueinsteiger erfahren, was sie mit FrontPage machen können und ob der Einsatz für einen bestimmten Zweck lohnt. Umsteiger von der 98er oder der 2000er Version – und solche, die es werden wollen – lernen die Vorteile und Erweiterungen kennen. FrontPage ist ein Werkzeug zur Entwicklung von Hypertext-Systemen, die im Folgenden als Webs bezeichnet werden. Das Programm unterstützt Sie beim Design, bei der Verknüpfung von Seiten und der Erstellung des Layouts. Es existieren Hilfsmittel zur Kontrolle auf fehlerhafte Verknüpfungen, der Versionskontrolle und zum Upload der Daten auf einen Server. Nicht zuletzt unterstützt FrontPage die Entwicklung von Skripten – sowohl auf dem Server als auch für den Browser.
erstellt von ciando
FrontPage ist ein komplexes Autorenwerkzeug, das sich vielfältig in die Microsoft Office Umgebung einklinkt. Viele Dialoge sind vereinheitlicht und teilweise mit anderen Programmen identisch. Entsprechend können sich Einstellungen in FrontPage auch auf andere Teile der Office-Suite auswirken, auch auf den Internet Explorer. FrontPage und der Internet Explorer Die Betrachtung der fertigen Seiten wird in aller Regel mit dem Internet Explorer erfolgen. An dieser Stelle sei gleich gesagt, dass Sie auf jeden Fall auch den Netscape Navigator installieren sollten, um Ihre Layouts auf „Browserfestigkeit“ zu prüfen. Trotzdem ist der Internet Explorer ein wesentlicher Bestandteil der Entwicklungsumgebung. Auf die Besonderheiten im Umgang wird in den entsprechenden Abschnitten hingewiesen.
1
Was ist FrontPage?
1.1
Neu in FrontPage 2002
Wenn Sie bereits mit FrontPage 2000 gearbeitet haben, werden Sie sich sicherlich sehr gut zurechtfinden in FP 2002. Die Bedienung ist grundsätzlich gleich geblieben wurde und lediglich den neuesten Windows-Versionen angepasst. Der Schritt von FP 98 nach FP 2002, in dem die beiden Komponenten FrontPage Editor und FrontPage Explorer zu einem einzigen Programm zusammengefasst wurden, war wesentlich umfangreicher und mit größerem Aufwand an Umstellung verbunden. Das Arbeiten mit FP 2002 ist im Prinzip genau gleich geblieben. Die neue Version hat an Umfang zugelegt. So gibt es beispielsweise noch das eine oder andere Design (früher: FrontPage Themen) mehr zur Auswahl und einige neue Servererweiterungen. Am auffälligsten ist sicherlich das neue Wording in der deutschen Version von FrontPage 2002. Die Benennung von Menüpunkten, Schaltflächen, Funktionen etc. hat sich in der neuen Version an vielen Stellen geändert, was oft von zweifelhaftem Nutzen ist. Es heißt nun zum Beispiel „Grafik“, was vorher „Bild“ hieß und aus „Spread Sheet“ wurde die „Office-Tabelle“. Gemeint ist natürlich nach wie vor dasselbe.
1.1.1
Navigation
Die Navigation zwischen den einzelnen Bearbeitungsfenstern erfolgt über die graue Werkzeugleiste ANSICHTEN an der linken Seite: 왘 Seite. In dieser Ansicht bearbeiten Sie die Seite in zwei Modi (Im WYSI-
WYG1-Editor oder im HTML-Quellcode). Eine dritte Ansicht bietet eine Vorschaufunktion. Der Wechsel erfolgt mit drei Registerkarten im Bearbeitungsfenster:
왘 Ordner. Diese Ansicht zeigt alle Ordner Ihres Projekts an und erlaubt die
Navigation. 왘 Berichte. In dieser Ansicht können Sie sich die Ergebnisse der verschiede-
nen Berichte anschauen. Berichte bieten eine gute Unterstützung für die Fehlersuche.
1. WYSIWYG = What You See Is What You Get
17
1 Was ist FrontPage? 왘 Navigation. Wenn Sie Webseiten mit den Navigationselementen von
FrontPage aufbauen, können Sie hier die Navigation grafisch entwerfen. 왘 Hyperlinks. Alle Hyperlinks der Site finden Sie in der dieser Ansicht. Ein
gutes Werkzeug zur Fehlersuche. 왘 Aufgaben. Ob im Team oder alleine: Definieren Sie alle Aufgaben, und
schon verfügen Sie über ein einfaches, aber leistungsfähiges Projektmanagementwerkzeug.
1.1.2
Neue Seite oder neues Web
Die Schritte zum Öffnen neuer Seiten oder ganzer Webs sind in FrontPage 2002 neu angeordnet. Ob Sie nur eine leere neue Seite anlegen wollen oder ein ganzes Web mit Hilfe eines Assistenten – alles das geht über das Menü DATEI | NEU | SEITE ODER WEB. Abbildung 1.1: Neue Seite oder Web im zweiten Untermenü
Es öffnet sich ein Fenster, im Aussehen ganz den neuesten Windows-Versionen entsprechend. Hier finden Sie auf einen Blick unter anderem die zuletzt aufgerufenen Seiten, die Vorlagen für eine leere Seite oder ein leeres Web und die Links auf eigene und vorgegebene Seiten- und Webvorlagen.
18
Neu in FrontPage 2002 Abbildung 1.2: Das Fenster „Neue Seite oder neues Web“ – mit neuem Gesicht
Bereits das Fenster für die Seitenvorlagen beispielsweise kommt dann aber wieder im altbekannten Windows-Gewand. Man ist sich offenbar noch nicht vollständig im Klaren darüber, ob das neue Layout gut oder schlecht ist. Bei FrontPage dürfen Sie es sich aussuchen, hier gibt es beides. Abbildung 1.3: Das Fenster „Seitenvorlagen“ – Altbekanntes
19
1 Was ist FrontPage?
1.1.3
Dynamic HTML
Die direkte Unterstützung für Dynamic HTML gibt es seit FrontPage 2000. Dabei werden allerdings bei weitem nicht alle Möglichkeiten ausgereizt, die DHTML bietet. Die einstellbaren Effekte beschränken sich auf die Animation von Elementen oder der gesamten Seite. Hervorzuheben ist die Unterstützung beider Browser – die Animationen laufen auch auf Netscape Navigator (ab Version 4). Browser mit der Versionsnummer 3 oder kleiner stellen die Elemente statisch dar. Abbildung 1.4: Funktionsleiste für DHTML-Effekte
Die Effekte werden in externen JavaScript-Dateien zur Verfügung gestellt und mit <SCRIPT>-Tags eingebunden. DHTML-Profis können diese Elemente leicht editieren.
1.1.4
Script Editor
Neu ist der Microsoft Script Editor, ein komplettes Entwicklungswerkzeug für client- und serverseitige Skripte. Wenn Sie Visual InterDev 6.0 (VID) kennen, werden Sie überraschende Ähnlichkeiten feststellen – es ist praktisch ein VID-Derivat. Dies soll kein Nachteil sein, im Gegenteil, bislang galt VID als das Profiwerkzeug für Webentwickler. Sie können sich mit dem Script Editor auch völlig von FrontPage lösen und Seiten „von Hand“ entwickeln. Dies ist allerdings nur auf einem sehr hohen Niveau möglich. Abbildung 1.5: Microsoft Script Editor: Werkzeug für Profis
20
Struktur und Aufbau
Hervorzuheben ist die Syntaxanzeige, die eine farbliche Markierung für VBScript, JavaScript und HTML bietet. Es gibt einen integrierten Debugger und komfortable Dialoge für Eigenschaften von Elementen. In Kapitel 15 wird der Script Editor ausführlich besprochen. Der Einsatz lohnt, denn die Möglichkeit, nun auch mit „richtigen“ Skriptsprachen programmieren zu können, ist für den professionellen Webdesigner äußerst wertvoll. Gerade mit dem Script Editor hat FrontPage das Image des primitiven Allerweltsbaukastens gründlich abgelegt.
1.2
Struktur und Aufbau
FrontPage ist vom einfachen Werkzeug zu einem komplexen Produkt herangewachsen. Damit verbunden sind komplexe und verschachtelte Dialoge und Menüs. Nicht immer ist es einfach, auf Anhieb den richtigen Befehl zu finden. In diesem Kapitel finden Sie alle wichtigen Dialogfelder und Menüs mit Erläuterungen. Sie können so schnell beim Durchblättern eine Funktion ausfindig machen und sofort ausführen.
1.2.1
Menüsystem
Das Dateimenü enthält alle dateiorientierten Funktionen. Dabei wird zwischen lokalen Zugriffen und dem Webserver unterschieden. Lokal arbeiten Sie mit: 왘 ÖFFNEN 왘 SCHLIESSEN 왘 SPEICHERN, SPEICHERN UNTER, ALLE SPEICHERN 왘 ZULETZT GEÖFFNETE DATEIEN 왘 IMPORTIEREN
Auf dem Webserver (egal, ob lokal installiert oder nicht), arbeiten Sie mit folgenden Funktionen: 왘 WEB ÖFFNEN, WEB SCHLIEßEN 왘 WEB VERÖFFENTLICHEN 왘 EXPORTIEREN 왘 ZULETZT GEÖFFNETE WEBS
Das Menü BEARBEITEN enthält vor allem Funktionen, die beim Editieren einer HTML-Seite benötigt werden. Die Funktionen AUSCHECKEN und EINCHECKEN steuern die Bearbeitung einer Datei durch mehrere Autoren.
21
1 Was ist FrontPage?
Das Menü ANSICHT steuert die Anzeige der einzelnen Bereiche der FrontPage-Oberfläche. Die hier untergebrachten Befehle haben keinen Einfluss auf die HTML-Seiten oder Auswirkungen auf den Server. Das Menü EINFÜGEN dient der Kontrolle von Elementen auf den editierten Seiten. Sie können sowohl HTML-Tags einfügen als auch Zeichen und Daten (beispielsweise Datum und Uhrzeit). Über dieses Menü ist auch der Zugriff auf Formulare, Datenbanken und FrontPage-Funktionen möglich. Einige Elemente verlangen eine spezielle serverseitige Unterstützung. Wenn diese nicht gegeben ist, sind die Einträge deaktiviert. Das Menü FORMAT dient der Formatierung von HTML-Elemente oder dem Steuern spezieller Effekte. Sie haben auch Zugriff auf Cascading Style Sheets (CSS). Inwieweit einige Funktionen aktiv sind und auch Auswirkungen haben, hängt von den aktuell auf der Seite vorhandenen und markierten Elementen ab. Im Menü EXTRAS finden Sie Funktionen, die bei der normalen Bearbeitung von Seiten nicht unmittelbar benötigt werden. Wichtig sind einige grundlegende Einstellungen zum erstellten Web, die im nächsten Abschnitt näher erläutert werden. Das Menü TABELLE dient der Erzeugung und Bearbeitung von Tabellen. Die Optionen sollten keiner weiteren Erläuterung bedürfen – Sie finden alles, was zur Nutzung von Tabellen in HTML notwendig ist. Zwei weitere Menüs sind FRAMES und FENSTER. Sie können mit FRAMES auf Framestrukturen zugreifen, während FENSTER die in FrontPage geöffneten Teilfenster verwaltet und auf das Web selbst keinen Einfluss hat.
1.2.2
Der Editorbereich
Der Editorbereich kann in mehrere Teile gegliedert werden. Links werden eine oder zwei Leisten mit Schaltflächen eingeblendet, die den direkten Zugriff auf elementare Komponenten ermöglichen. Diese wurden bereits im letzten Abschnitt vorgestellt. Für den schnellen Zugriff auf bestimmte Funktionen können Sie die Symbolleisten einsetzen. Die Symbolleisten Abbildung 1.6: Alle Schaltflächen auf einen Blick
22
Struktur und Aufbau
Die folgenden Symbolleisten stehen zur Verfügung: 왘 STANDARD 왘 FORMAT 왘 BERICHTE 왘 DHTML-EFFEKTE 왘 GRAFIKEN 왘 NAVIGATION 왘 POSITIONIERUNG 왘 STIL 왘 TABELLEN 왘 WORDART 왘 ZEICHNEN
Sie können die Symbolleisten leicht anpassen. Standardmäßig stehen nicht alle Befehle zur Verfügung – die Symbolleisten stellen nur eine Auswahl besonders häufig genutzter Befehle bereit. Die Optionen in der Leiste ANSICHTEN haben folgende Bedeutung: 왘 SEITE. Zeigt im Editor die aktuelle Seite zur Bearbeitung an. 왘 ORDNER. Gibt eine Übersicht über die Verzeichnisstruktur des Webs. 왘 BERICHTE. Erstellt Berichte zu bestimmten Elementen des Webs. Dies
dient vor allem der Fehlerkontrolle. Folgende Berichte sind möglich: 왘 ALLE DATEIEN. Zeigt alle verwendeten Dateien an. 왘 KÜRZLICH HINZUGEFÜGTE DATEIEN. 왘 KÜRZLICH GEÄNDERTE DATEIEN. 왘 ÄLTERE DATEIEN. 왘 UNVERKNÜPFTE DATEIEN. Diese Dateien werden normalerweise nicht
왘 왘 왘 왘
왘
angezeigt. Prüfen Sie, ob sich „Dateileichen“ darunter befinden. Es ist normal, wenn Sie hier Datenbanken und teilweise auch Skriptdateien finden. LANGSAME DATEIEN. UNTERBROCHENE HYPERLINKS. Der Bericht zeigt Hyperlinks an, die ins Leere führen. KOMPONENTENFEHLER. PRÜFSTATUS, ZUGEWIESEN, KATEGORIEN. Diese drei Optionen können alternativ aktiviert werden, um den Status von Dateien anzuzeigen, an denen mehrere Autoren arbeiten. VERÖFFENTLICHEN. Dieser Bericht zeigt an, wann zuletzt veröffentlicht wurde und welche Dateien noch veröffentlicht werden müssen.
23
1 Was ist FrontPage? Abbildung 1.7: Übersichtsbericht für eine Site
왘 NAVIGATION. Wenn Sie in FrontPage Navigationselemente erstellen, kön-
nen Sie hier eine grafische Darstellung der Site einsehen. 왘 HYPERLINKS. Auch das ist eine grafische Abbildung der Site, die auf Basis
der in den Seiten enthaltenen Hyperlinks erstellt wird (Abbildung 1.8). 왘 AUFGABEN. Wenn Sie in Teams arbeiten, können Sie hier die Aufgaben-
stellungen koordinieren. Aber auch für den Einzelkämpfer kann die Nutzung bei umfangreichen Projekten hilfreich sein. Abbildung 1.8: Ansicht der Hyperlink-Struktur einer Site
24
Dialoge
1.3
Dialoge
1.3.1
Die wichtigsten Dialogfelder
FrontPage hat einige Dialogfelder, die zwar nur selten benötigt werden, aber elementare Einstellungen enthalten. Erfahrungsgemäß beginnt jedes neue Web mit einer Odyssee durch die Menüs. Sie finden deshalb nachfolgend eine Übersicht über die Dialogfelder.
1.3.2
Grundeinstellungen des Programms
Anpassen der Oberfläche FrontPage bietet eine fast unbegrenzte Anpassungsmöglichkeit für die Oberfläche. Wählen Sie im Menü EXTRAS den Befehl ANPASSEN. Drei Registerkarten stehen zur Auswahl:
Unbegrenzte Anpassungsmöglichkeiten
왘 SYMBOLLEISTEN. Hiermit kontrollieren Sie die angezeigten Symbolleisten. 왘 BEFEHLE. Ein etwas irreführender Name. Sie können hier Menübefehle
auswählen und direkt in das Menü ziehen, um ein eigenes Menüsystem zusammenzustellen. 왘 OPTIONEN. Diese Registerkarte enthält einige Einstellungen, die die An-
zeige betreffen. Abbildung 1.9: Anpassen der Oberfläche von FrontPage 2002
25
1 Was ist FrontPage?
Auch der Menüpunkt OPTIONEN im Menü EXTRAS verbirgt weitere Einstellungen zur Oberfläche. Die Aufteilung zwischen Optionen und Anpassung ist schwer nachvollziehbar. Offensichtlich bezieht sich OPTIONEN mehr auf das Verhalten von Programmelementen und ANSICHT auf die Gestaltung. Es stehen vier Registerkarten mit folgenden Optionen zur Verfügung: 왘 ALLGEMEIN. Hier stellen Sie unter anderem das Startverhalten ein. 왘 EDITOR KONFIGURIEREN. Hier werden Dateierweiterungen mit Editoren
verknüpft. 왘 BERICHTSANSICHT. Auf Berichte wurde im letzten Abschnitt bereits hin-
gewiesen. Das Verhalten einiger Berichte war nicht eindeutig, die Einstellungen, auf denen die Auswahl der Berichte basiert, wird hier vorgenommen. 왘 VERÖFFENTLICHEN. Hier können Sie allgemeine Voreinstellungen zum
Veröffentlichen Ihres Webs festlegen. Ferner finden Sie hier den Zugang zur Protokolldatei, die alle Änderungen protokolliert. Abbildung 1.10: Steuerung der Berichtsansicht
1.3.3
Seitenoptionen für ein Web
Das Dialogfeld heißt SEITENOPTIONEN – ein weiteres Beispiel offensichtlich unzutreffender Benennung. Fast alle Einstellungen unter EXTRAS | SEITENOPTIONEN gelten für das gesamte bearbeitete Web.
26
Dialoge
Kompatibilität Frühere Versionen von FrontPage boten alle Funktionen an – ohne Rücksicht auf Serverumgebungen und Browser, die nicht damit umgehen konnten. Sie mussten selbst darauf achten, nur bestimmte Befehle zu verwenden. Mit dem Dialog KOMPATIBILITÄT können Sie FrontPage 2002 veranlassen, nur bestimmte Funktionen anzubieten.
Alle Browser werden unterstützt
Der erste Teil betrifft browser- und serverseitige Optionen: 왘 BROWSER. Wählen Sie hier aus, für welche Browser Sie entwickeln. 왘 BROWSERVERSIONEN. Hier geben Sie an, ab welcher Browserversion Ihre
Seiten lesbar sein sollen. 왘 SERVER. Diese Einstellung betrifft die serverseitige Unterstützung. Wenn Sie diese Angabe nicht kennen, wählen Sie BENUTZERDEFINIERT.
Im unteren Teil werden konkretere Angaben verlangt: 왘 ACTIVEX-STEUERELEMENTE. Diese Optionen lässt ActiveX zu. Damit
schränken Sie die Verwendung der Seiten auf den Internet Explorer ein. 왘 VBSCRIPT. Dies betrifft die browserseitige Verwendung der Skriptspra-
che VBScript. Auch mit dieser Option schränken Sie die Verwendung der Seiten auf den Internet Explorer ein. 왘 JAVASCRIPT. Diese Skriptsprache sprechen alle modernen Browser.
Abbildung 1.11: Einstellung der Kompatibilität mit bestimmten Umgebungen
27
1 Was ist FrontPage? 왘 JAVA-APPLETS. Java sollten auch alle neueren Browser verarbeiten kön-
nen. 왘 DYNAMIC HTML. Dieses Feature wird nur von Browsern ab Version 4.x
unterstützt, teilweise auch da nur unvollkommen. Testen Sie Ihre Seiten auf jeden Fall auf den wichtigsten Browsern. 왘 FRAMES. Aktivieren Sie dieses Kontrollkästchen, wenn Sie mit Frames ar-
beiten möchten. 왘 CSS 1.0 UND CSS 2.0. Diese beiden Optionen ermöglichen die Verwen-
dung von Cascading Style Sheets. CSS 2.0 wird auch von den neuesten Browsern nicht perfekt umgesetzt; prüfen Sie die Seiten sorgfältig auf allen Zielsystemen. 왘 ACTIVE SERVER PAGES (ASP). Die einzige Option, die den Server betrifft.
Aktivieren Sie dieses Kontrollkästchen, wenn der Server ASP unterstützt (das ist zumindest bei allen Versionen ab 3.0 des IIS und des PWS der Fall). Sie benötigen diese Funktionalität für den Datenbankzugriff. Alle Optionen ändern nichts an bestehenden Seiten, sondern führen nur zur Deaktivierung entsprechender Menübefehle. Sie können also nicht im Nachhinein überprüfen, ob ein Web bestimmte Kompatibilitätsansprüche erfüllt. Hier hilft nur der Test auf dem Zielsystem. Editoroptionen Passen Sie den Editor an!
Die Darstellung des HTML- oder Skriptcodes erfolgt im Editor mit Hilfe von Farben. Die farbliche Darstellung erleichtert enorm die Fehlersuche. Auf der Registerkarte FARBCODIERUNG können Sie die Zuordnung der Farben zu bestimmten Befehlsgruppen ändern. Wie der HTML-Code erscheint, kann ebenfalls umfangreich eingestellt werden. Das Dialogfeld HTML-QUELLE lässt folgende Einstellungen zu: 왘 BEIM SPEICHERN BESTEHENDE HTML ERHALTEN. Der Code, den Sie von
Hand eingeben oder aus vorhandenen Dateien laden, wird nicht verändert. Sie sollten diese Option unbedingt aktiviert lassen. 왘 UNTER VERWENDUNG DER FOLGENDEN REGELN NEU FORMATIEREN. Diese
Einstellung führt zu einigen Eingriffen von FrontPage in die Seite. Bei reinem HTML mag dies funktionieren, komplexe Seiten werden aber manchmal zerstört. 왘 FORMATIERUNG. In dieser Gruppe können Sie einstellen, wie der HTML-
Code auf der Seite erscheint. Die Liste der Tags bezieht sich auf die Angaben ZEILENWECHSEL und ermöglicht die übersichtliche Anordnung auf der Seite. Der Quellcode wird dadurch lesbarer. Denken Sie daran, dass Leerzeichen und Zeilenumbrüche vom Browser zwar ignoriert werden, die Seite aber unter Umständen erheblich vergrößern.
28
Dialoge Abbildung 1.12: Farbcodierung für den Quelltexteditor
Abbildung 1.13: Optionen für die Anordnung von HTML in der Seite
Das nächste Dialogfeld, STANDARDSCHRIFTART, stellt den Basisfont der Seite ein. Dies hat wieder nichts mit der Anzeige im Editor zu tun, auch in dieser Beziehung ist die Zusammenstellung der Dialoge schon eigenartig. Für „normale“ Anwendungen ist die Einstellung US/Westeuropäisch zu verwenden.
29
1 Was ist FrontPage? Abbildung 1.14: Einstellung der Standardschriftart und -fonts
Das nächste Dialogfeld enthält die Standardvorgaben für die Miniaturansicht. Dieses Feature erzeugt eine verkleinerte Kopie eines Bildes und legt einen Hyperlink von der Kopie zum Original an. Die Vorgaben, wie der Bildeditor die Miniaturansicht erstellt, werden hier angegeben. Abbildung 1.15: Standardeinstellungen für die Miniaturansicht
30
Dialoge
Das letzte Dialogfeld mit dem vielsagenden Titel ALLGEMEIN wirkt sich wieder indirekt auf eingegebene Daten aus. Sie können hier die folgenden Optionen verwenden: 왘 ZUM POSITIONIEREN DIV UND SPAN-TAGS VERWENDEN. Diese Option ist
nur zutreffend, wenn Sie mit CSS arbeiten. Die Style-Befehle werden dann in den neutralen HTML-Tags untergebracht. 왘 FORMULARFELDER AUTOMATISCH MIT EINEM FORMULAR EINSCHLIESSEN.
Wenn Sie Formularfelder erzeugen, werden diese automatisch mit umgebenden -Tags versehen. Sie können Formularfelder nur innerhalb dieser Tags verwenden, wenn mit HTML gearbeitet wird. 왘 EINDEUTIGE BEZEICHNER FÜR TABELLEN VERWENDEN. Aktivieren Sie diese
Einstellungen und die Tabellendaten können über das Internet von anderen Tabellenkalkulationen importiert werden. 왘 RECHTSCHREIBUNG. Diese Gruppe enthält Einstellungen zur automati-
schen Rechtschreibprüfung. Die Verfügbarkeit hängt von der Office-Installation ab. Standardmäßig wird die neue Rechtschreibung verwendet. 왘 OPTIONEN BEIM AUSSCHNEIDEN UND EINFÜGEN. Beim Einfügen von Inhal-
ten kann über einen automatisch eingeblendeten Dialog zwischen verschiedenen Formatierungsoptionen gewählt werden. Abbildung 1.16: Seitenoptionen – Allgemeine Einstellungen
31
1 Was ist FrontPage?
1.3.4
Basisoptionen eines Webs
Diese Einstellungen beziehen sich auf ein ganzes Web. Die Zusammenstellung erscheint auch hier recht willkürlich. Sie finden die Dialoge unter EXTRAS | WEBEINSTELLUNGEN. Der Dialog ALLGEMEIN lässt als einzige Einstellung den Namen des Webs zu. Außerdem können Sie den Mehrautorenbetrieb (Ein- und Auschecken) hier aktivieren. Alle anderen Angaben sind lediglich informativ. Abbildung 1.17: Allgemeine Einstellungen: Name des Web und erkannte Parameter
Grundeinstellungen für das Web
Das folgende Dialogfeld mit dem Namen PARAMETER ist wieder irreführend benannt. Sie können hier Variablen eingeben, die sich später automatisch durch den WebBot Substitution ersetzen lassen. Variablen, die Sie hier definieren, werden über EINFÜGEN | WEBKOMPONENTE | EINGESCHLOSSENER INHALT | ERSETZUNG eingebaut. Das heißt, die „Variablen“ werden als „Parameter“ erstellt, um als „Ersetzung“ eingefügt zu werden – ein durchaus gelungenes Verwirrspiel. Einsetzen können Sie dies, um globale Werte, die sich selten ändern, bequem verwalten zu können. Bevor Sie neue Variablen erfinden, sollten Sie sich die bereits definierten anschauen. Die folgenden Dialogfelder ERWEITERT und SPRACHE sind praktisch selbsterklärend. Die Standardeinstellungen können Sie Abbildung 1.19 und 1.20 entnehmen.
Abbildung 1.19: Stellen Sie hier die Standardskriptsprache für den Browser ein
Abbildung 1.20: Sprache für Servermeldungen und Standardsprache für das Web
33
1 Was ist FrontPage?
FrontPage verfügt über Funktionen zur Erstellung einer eigenen Navigation. Diese Erweiterung nutzt Serverfunktionen. Falls Sie dennoch darauf zurückgreifen möchten, können Sie die Beschriftung der Elemente im Dialogfeld NAVIGATION einstellen. Abbildung 1.21: Beschriftung der Navigationsschaltflächen
Auf die Verwendung von Datenbanken wird in Kapitel 14 eingegangen. Wenn Sie von vornherein ein Projekt planen, das eine Datenbank verwendet und diese bereits vorhanden ist, können Sie den Zugriff im Dialog DATENBANK angeben. Mit Hilfe der Schaltfläche ÜBERPRÜFEN können Sie testen, ob die Verbindung auch erfolgreich ist. Links neben dem Namen erscheint dann ein grünes Häkchen. So lange die Verbindung nicht erfolgreich war, ist eine Nutzung der Datenbank nicht möglich. Abbildung 1.22: Einrichtung einer (oder mehrerer) Datenbanken
34
Dialoge
1.3.5
Seiteneigenschaften
Viele Einstellungen, die bereits beschrieben wurden, können (und sollten) erfolgen, bevor Sie mit dem ersten Web beginnen. Wenn Sie eine Seite erstellt haben, sind auch für diese Seite eine Reihe von Einstellungen möglich. Auch dieses Dialogfeld ist recht umfangreich und soll deshalb hier vorgestellt werden. Abbildung 1.23: Die Seiteneinstellungen gelten nur für die aktuell bearbeitete Seite
Die Registerkarte ALLGEMEIN enthält Angaben zur Seite, die Sie unbedingt beachten sollten. Die ADRESSE ist vorgegeben und enthält den lokalen Pfad. Wichtig ist der TITEL, der nicht nur Ihre Seite benennt, sondern auch von Suchmaschinen herangezogen wird. Die hier gemachte Angabe wird in den Tags <TITLE>Mein Seitentitel
im Kopf der HTML-Seite eingebaut. Die Angabe der BASISADRESSE ist dagegen optional. Wichtig ist, dass Sie die vollständige Adresse des Servers angeben, nicht den lokalen Pfad. Der Eintrag erzeugt ebenfalls lediglich das entsprechende HTML-Tag:
Die Option HINTERGRUNDSOUND steht nur zur Verfügung, wenn im Kompatibilitätsmodus als einziger Browser der Internet Explorer angegeben wurde. Der Netscape Navigator unterstützt auch in der neuesten Version keinen Hintergrundsound. Abgesehen davon gehört diese Funktion ohnehin zu den schlimmsten Erfindungen im Netz. Blamieren Sie sich nicht und verzichten Sie grundsätzlich auf Hintergrundsound.
35
1 Was ist FrontPage?
Die nächste Einstellung betrifft die Scripting-Plattformen. Hier können Sie die Standardskriptsprache vorgeben, die dann in den automatisch generierten <SCRIPT>-Tags eingebunden wird. Die Angaben können aber später auch überschrieben werden, hier werden nur die Standardwerte gesetzt. Abbildung 1.24: Einstellungen für den Hintergrund einer Seite
Die nächste Registerkarte (Abbildung 1.24) zeigt die Einstellungen für den Hintergrund. Die Funktion HYPERLINK-ROLLOVER baut lediglich die bekannte Styledefinition in die Seite ein: <style fprolloverstyle> A:hover {color: #FF0000; font-family: Arial; font-weight: bold} Abbildung 1.25: Seitenränder
36
Dialoge
In der Registerkarte SEITENRÄNDER legen Sie den linken und den oberen Rand jeder Seite standardmäßig fest. Es empfiehlt sich, hier die voreingestellten 0 Pixel zu übernehmen. Soll der Inhalt einer Seite nicht direkt an den Rand des Browsers stoßen, stellen Sie das besser im Layout der einzelnen Seite ein und nicht pauschal für alle Seiten. Wenn Sie die Ränder festlegen, erweitert FrontPage den -Tag so: Abbildung 1.26: Hier definieren Sie META-Tags
Abbildung 1.26 zeigt die Registerkarte BENUTZERDEFINIERT. Die Benennung ist, wieder einmal, äußerst irreführend. Sie können hier META-Tags in die Seite einbauen. Dabei werden zwei Typen unterschieden: Systemvariablen, die den Browser zu bestimmten Aktionen veranlassen, die auf dem Protokoll HTTP basieren und benutzerdefinierte Werte, die nur von externen Systemen ausgewertet werden können, beispielsweise von Suchmaschinen. META-Tags bestehen immer aus zwei Teilen, dem Namen und dem Wert. Der Aufbau für die benutzerdefinierte Variante ist immer folgender: <META name="Name" content="Wert">
Für Systemvariablen wird dagegen dieses Tag verwendet: <META http-equiv="Name" content="Wert">
für die Systemvariablen. Die nächste Registerkarte, SPRACHE, hat ebenfalls nur Auswirkungen auf META-Tags. Die Angaben werden von manchen Browsern ausgewertet, um nur Seiten bestimmter Sprachen anzuzeigen. Wenn Sie Deutsch und das westeuropäische Standardalphabet einstellen, werden folgende META-Tags erzeugt:
Kapitel 6 erläutert die wichtigsten META-Tags und deren Einsatz. Abbildung 1.27: Festlegung der Sprache einer Seite
Die letzte Registerkarte enthält Einstellungen für die Arbeitsgruppe. Sie können hier der Seite einen Bearbeiter zuweisen und zusätzlich eine Person, die die Seite prüfen muss. Wenn Sie diese Arbeitsweise nutzen, können nur geprüfte Seiten auf den Server geladen werden. Außerdem lässt sich jede Seite einer Kategorie zuordnen. Abbildung 1.28: Seitenkategorie und Einstellungen für die Arbeitsgruppe
38
Die Komponenten
1.4
Die Komponenten
1.4.1
Übersicht
FrontPage ist in erster Linie ein ausgereiftes Werkzeug zur Entwicklung von Websites. Die Nutzung der FrontPage-Erweiterungen auf einem entsprechend eingerichteten Webserver ist dabei nicht zwingend notwendig. Wenn diese Möglichkeit jedoch zur Verfügung steht, können mit wenig Aufwand interessante Effekte erzielt werden. Die Ausführung der Komponenten erfolgt jedoch nicht einheitlich als Laufzeitelement (in FrontPage WebBot genannt). Einige Komponenten sind als ActiveX-Steuerelement vorhanden. Einschränkungen sind Sie in jedem Fall unterworfen. Entweder muss der Server FrontPage-Erweiterungen haben oder als Browser kommt nur der Internet Explorer in Frage. Der folgende Überblick zeigt aber, was an Funktionen verfügbar ist – vielleicht findet sich für das eine oder andere Projekt eine schnelle Lösung. Name
Typ
Beschreibung
Office Tabelle
ActiveX
Diese drei Elemente basieren auf Excel und stellen entsprechende Funktionen zur Verfügung.
Office Pivot Table
ActiveX
Office Diagramm
ActiveX
Anzeigenwechsler
Java
Wechselt Werbebanner zeitabhängig
Zugriffszähler
WebBot
Ein Zähler
Hover-Schaltfläche
Java
Effektvolle Schaltfläche
Laufschrift
HTML
Fügt den <marquee>-Tag ein, der nur im Internet Explorer zur Verfügung steht (intern ein ActiveX-Element)
Bestätigungsfeld
WebBot
Gibt den letzten Formularinhalt als Bestätigung wieder aus
Seite einschließen
Entwurfszeit
Ein Entwurfzeitsteuerelement zum Einfügen von Seitenmodulen
Bild nach Zeitplan einschließen
WebBot
Zeitabhängige Anzeige von Bildern
Seite nach Zeitplan einschließen
WebBot
Zeitabhängige Anzeige von Seiten
Ersetzung
Entwurfszeit
Ersetzt Variablen durch Inhalte
Kategorie
Entwurfszeit
Fügt die Kategorie in die Seite ein
Suchformular
WebBot
Ein Suchformular für die Volltextrecherche im eigenen Web
Tabelle 1.1: FrontPageKomponenten
39
1 Was ist FrontPage?
Name
Typ
Beschreibung
Inhaltsverzeichnis
Entwurfszeit
Fügt ein Inhaltsverzeichnis der Seiten ein, mit Links zu jeder Seite
Weitere
WebBot
Weitere Komponenten, die als ActiveXElemente zur Verfügung stehen
Datum und Uhrzeit Entwurfszeit
Fügt Datum und Uhrzeit ein
Kommentar
Entwurfszeit
Fügt einen Kommentar ein, der nicht mit an den Browser gesendet wird
Linkleiste
Entwurfszeit
Fügt eine Leiste mit benutzerdefinierten Links ein
Zurück-WeiterLeiste
Entwurfszeit
Fügt eine Leiste mit Zurück- und Weiterlinks ein
Navigationsleiste
Entwurfszeit
Fügt eine Navigationsleiste ein
Seitenbanner
Entwurfszeit
Fügt ein Banner ein
Datenbank
ASP
Fügt Datenbankabfragen ein, enthält Entwurfzeitelemente als WebBot und ASP-Skripte
Gästebuch
WebBot
Erzeugt mit einem Assistenten ein Gästebuch oder Feedback-Formular
Diskussion
WebBot
Erzeugt ein Diskussionsforum mit Hilfe eines Assistenten
Fotoalbum
WebBot
Erzeugt ein Online-Fotoalbum mit Hilfe eines Assistenten
1.4.2
Umgang mit Komponenten
Die in Tabelle 1.1 gezeigten Komponenten sind sehr einfach in der Anwendung. Das eigentliche Problem liegt auch nicht in der Nutzung, sondern in der Einschränkung der Kompatibilität. Wenn Sie im Kompatibilitätsmodus auf alle Microsoft-spezifischen Erweiterungen verzichten, stehen fast keine Komponenten mehr zur Verfügung. In der Spalte TYP finden Sie den Hinweis darauf, wie sich eine Komponente verhält: 왘 ActiveX. Diese Komponenten werden als ActiveX-Steuerelement ausge-
führt und an den Browser gesendet. ActiveX kann derzeit nur Internet Explorer ab Version 4 verarbeiten. Es gibt für Netscape ein ActiveX-Plugin, eingefleischte Netscape-Fans weigern sich jedoch beharrlich, solche „Microsoft-Eindringlinge“ zu akzeptieren. Der Einsatz mach also nur in einem Intranet Sinn. 왘 Java. Diese Elemente funktionieren in allen Browsern, die Java-Applets
unterstützen. Der Einsatz ist gefahrlos, allerdings werden die Applets in den Browser geladen und vergrößern eine Seite möglicherweise überproportional.
40
Die Komponenten 왘 WebBot. Dieses Element ist eine typische FrontPage-Funktion. Die An-
weisungen werden als Kommentar eingefügt und serverseitig von den FrontPage-Erweiterungen ausgeführt. Wenn Sie die Seite auf einen anderen Server kopieren, der keine FrontPage-Erweiterungen hat, funktionieren die Elemente nicht mehr. 왘 HTML. Dieses Element erscheint als HTML-Code, die Erweiterung ist al-
lerdings proprietär und deshalb auf den Internet Explorer beschränkt. 왘 Entwurfszeit. Diese Elemente können Sie immer einsetzen. Es sind ledig-
lich Hilfsmittel zur einfachen Programmierung der Seiten. Zur Laufzeit wird regulärere HTML-Code eingesetzt. 왘 ASP. Diese Komponente nutzt Active Server Pages (ASP). ASP steht auf
dem IIS ab Version 4 und dem PWS zur Verfügung, muss also serverseitig installiert sein. Die Verfügbarkeit ist unabhängig von den FrontPageErweiterungen.
41
2
Server-Erweiterungen
Es gibt zwei Wege, die FrontPage-Erweiterungen verfügbar zu machen. Zum einen sind sie natürlich Bestandteil des FrontPage-Paketes. Zum anderen bietet Microsoft eine eigenständige Serverversion zum kostenlosen Download an, damit ältere Server gezielt aktualisiert werden können. Im Lieferumfang des kompletten Pakets sind außerdem die SharePoint Services, die weitere Funktionen für den Aufbau eines Intranets oder einer Community bieten. In diesem Kapitel werden zuerst die FrontPage-Erweiterungen beschrieben, ab Abschnitt 2.3 wird dann detailliert auf SharePoint eingegangen.
2.1
Vorbereiten der FrontPageErweiterung
Vor der Verwendung müssen die FrontPage-Erweiterungen installiert werden. Zur Installation müssen Sie sich als Administrator an der Konsole anmelden. Die FrontPage-Erweiterungen bestehen aus einer Reihe von Skripten und Programmen, teilweise als ausführbare Dateien vorliegend, die von FrontPage oder Visual Studio direkt angesprochen werden. Um die Erweiterungen nutzen zu können, sind zwei Schritte erforderlich: 1. Installation der FrontPage-Erweiterungen 2. Konfiguration im IIS für ein oder mehrere Webs
2.1.1
Installation der FrontPage-Erweiterungen
Die Installation ist nicht Bestandteil des IIS. Die nötigen Installationsdateien gehören nicht zum Lieferumfang von Windows 2000 Server. Sie können sich diese jedoch auf folgenden Wegen beschaffen: 1. Im Lieferumfang von FrontPage 2002, das auch Bestandteil der Professional Version von Office XP ist.
Quellen der Installationsprogramme
2. Als freier Download von der Microsoft Website. Sie finden diese Version unter der folgenden Adresse: http://office.microsoft.com/downloads/2000/winfpse.aspx
Die jeweiligen Versionen sind bezogen auf die Clients abwärtskompatibel. Wenn Sie FrontPage-Erweiterungen für FrontPage 2002 installieren, können Sie damit auch FrontPage 2000 oder FrontPage 98 bedienen. Es gibt deshalb keinen Grund, aus Rücksicht auf alte Clients, die Installation der neuen Erweiterungen hinauszuzögern.
Kompatibilität
43
2 Server-Erweiterungen FrontPage 2002 und Windows 2000
Die folgende Darstellung geht von FrontPage 2002 bei der Installation unter Windows 2000 aus. Die interne Versionsnummer ist – ebenso wie die von Windows 2000 – Version 5. Die Installation wird mit Hilfe eines Assistenten vorgenommen, der nur sehr wenige Angaben verlangt: 1. Benutzername und Organisation 2. Zustimmung zur Lizenzvereinbarung
Die Speicherorte sind festgelegt
Angaben zum Speicherort sind nicht notwendig, weil die nötigen Dateien Bestandteil von Windows werden und damit im Systemordner landen oder im Rahmen des IIS installiert werden. Andere gemeinsam nutzbare Dateien werden unter Windows immer in folgendem Pfad abgelegt: %systemdir%\Programme \Gemeinsame Dateien \Microsoft Shared \Web Server Extensions \50
Wenn Sie FrontPage 2000 noch installiert haben, lautet der Name des letzten Ordners „40“. Lassen Sie sich außerdem nicht durch die Mischung deutscher und englischer Namen irritieren. Unterhalb des Ordners mit der Versionsnummer liegen weitere Ordner, die die eigentlichen Dateien beherbergen. Die zwei folgenden enthalten die ausführbaren Dateien und DLLs: \bin \serversupp
ISAPI- und CGI-Komponenten werden in zwei weiteren Ordnern abgelegt: \isapi \_vti_bin
Wenn ein virtueller Server mit den FrontPage-Erweiterungen ausgestattet wird, werden viele Dateien aus diesen Ordnern in den entsprechenden Pfad des IIS kopiert. „Kleiner Neustart“
Nach der Installation schließen Sie die IIS-Managementkonsole und starten den Dienst WWW-PUBLISHINGDIENST neu, damit alle Änderungen wirksam werden. Windows 2000 muss nicht neu gestartet werden.
2.1.2
Upgrade und Kompatibilität FrontPage 2000 zu FrontPage 2002
Prinzipiell können FrontPage-Erweiterungen der Version 2000 und 2002 koexistieren. Sie können Webs jedoch nicht gleichzeitig für beide Versionen konfigurieren. Dagegen ist es möglich, einige Webs mit FrontPage-2000-Er-
44
Konfiguration der FrontPage-Erweiterungen
weiterungen und andere mit denen für FrontPage 2002 auszustatten. In der Praxis hat es sich aber als günstiger herausgestellt, auf die alte Version zu verzichten – bei der gleichzeitigen Nutzung der Verwaltungsprogramme gibt es gelegentlich Probleme. FrontPage 2002 verwendet dieselben Erweiterungen wie der SharePoint Portal-Server. Deshalb gibt es jetzt die so genannten SharePoint-Erweiterungen. Der SharePoint Portal-Server ist ein Werkzeug zum Aufbau von Intranets und enthält im Wesentlichen Methoden und Programme zur Zusammenarbeit mehrerer Autoren. Er ist dabei – im Gegensatz zu FrontPage – nicht auf die Veröffentlichung von Webseiten beschränkt.
Was ist neu in FrontPage 2002?
Die Verwaltungsprogramme für FrontPage – auch die aus der IIS-Managementkonsole heraus gestarteten – werden nur noch im HTML-Format angeboten. Darauf bezieht sich auch die folgende Darstellung.
Verwaltungsprogramme
2.2
Konfiguration der FrontPageErweiterungen
Nach der Installation wird die Konfiguration für eines oder alle Webs vorgenommen. Führen Sie diesen Schritt nur aus, wenn FrontPage auch tatsächlich genutzt wird. Die FrontPage-Erweiterungen bieten Ihnen sonst keine weiteren Vorteile. Die Verwaltung erfolgt über eine Erweiterung des IIS-Snap-Ins innerhalb der IIS-Managementkonsole. Es gibt jedoch Kommandozeilenwerkzeuge, mit denen auch administrative Aufgaben erledigt werden können.
2.2.1
Verwaltung
Einen virtuellen Server erweitern
Um einen virtuellen Server so zu erweitern, dass er FrontPage-Erweiterungen anbietet, müssen Sie zuerst die Erweiterungen global verfügbar machen. Sie können danach entscheiden, ob virtuelle Verzeichnisse eigene Unterwebs bekommen sollen, die FrontPage-Anwender selbst verwalten können. Um einen virtuellen Server mit den FrontPage-Erweiterungen zu konfigurieren, gehen Sie folgendermaßen vor: 1. Wählen Sie die Standardwebsite aus. 2. Im Kontextmenü erreichen Sie den Dialog EIGENSCHAFTEN DER STANDARDWEBSITE. 3. Wechseln Sie zur Registerkarte SERVERERWEITERUNGEN 2002. 4. Klicken Sie auf EINSTELLUNGEN. Es startet nun die FrontPage 2002-Verwaltung mit den Konfigurationseinstellungen. Diese Angaben sind die Basis für alle Unterwebs des virtuellen Servers, die jedoch auch anders konfiguriert werden können.
45
2 Server-Erweiterungen Abbildung 2.1: Start des Installationsprogramms
Abbildung 2.2: Konfiguration des Webs
46
Konfiguration der FrontPage-Erweiterungen
Die spezifischen Einstellungen der virtuellen Server werden im folgenden Abschnitt erläutert. Verwaltung von entfernten Systemen aus Zugang zu den Verwaltungsfunktionen von FrontPage hat nur der Administrator. Dank der Verfügbarkeit browsergestützter Verwaltungswerkzeuge können Sie auch von anderen Maschinen aus zugreifen. Die SharePoint-Verwaltungssite ist auf dem Stammserver unter der Portnummer 2352 zu erreichen. Sie sollten diesen Port ändern, weil diese Information natürlich allen Benutzern von FrontPage bekannt ist. Hier wird weiter der Standardport verwendet. Ersetzen Sie diesen gegebenenfalls durch den von Ihnen gewählten. Die Änderung des Ports erfolgt in der IIS-Managementkonsole. Starten Sie das Verwaltungsprogramm unter folgender Adresse: http://<server>:2352
Ersetzen Sie <server> durch den Namen der Maschine, auf der die FrontPage-2002-Erweiterungen installiert wurden. Abbildung 2.3: Remoter Start der FrontPageKonfiguration
Um einen bestimmten virtuellen Server zu konfigurieren, wählen Sie diesen aus der Liste unter VIRTUELLER SERVER aus. Klicken Sie dort auf den Link VERWALTUNG. Von der Verwaltungsseite aus können Sie folgende Aufgaben wahrnehmen: 1. FrontPage-2002-Erweiterung deinstallieren 2. Virtuelle Server aktualisieren 3. Konfigurationseinstellungen ändern 4. Benutzerkontobeschränkungen konfigurieren Außerdem erreichen sie hier die Websiteverwaltung, mit der konkrete Einstellungen für die Funktionen vorgenommen werden, die Clients mit dem Programm FrontPage 2002 ausführen dürfen.
47
2 Server-Erweiterungen
2.3
SharePoint Services
Im vorangegangenen Abschnitt wurde bereits eine Standardkonfiguration beschrieben. Die Microsoft-SharePoint-Konfigurationseinstellungen sind jedoch weitaus umfangreicher. Dieser Abschnitt beschreibt die verfügbaren Optionen. Damit die Optionen verfügbar sind, müssen die SharePoint Services installiert werden. Sie finden diese auf der CD im Verzeichnis INSTALL\ SHAREPT. Die Installation erfolgt mit dem Programm SETUPSE.EXE.
2.3.1
Übersicht über die Verwaltungsfunktionen
FrontPage 2002 basiert auf den neuen SharePoint Teamservices. Damit ändert sich nicht nur das Verwaltungsprogramm gegenüber FrontPage 2000, sondern die Produktstruktur insgesamt. Die folgende Grafik zeigt, wie die einzelnen Verwaltungsseiten voneinander abhängen. Sie sollten sich diese Struktur genau ansehen, da die Orientierung in den vielen Webseiten nicht einfach ist. Durch die Übertragung der gesamten Administration nach HTML ist die Bedienung nicht unbedingt einfacher geworden. Statt mehrere Registerkarten öffnen sich nun neue Browserfenster. Zudem ist die Fülle neuer Funktionen erschlagend, da die SharePoint Services weitaus mehr Möglichkeiten schon in der Standardkonfiguration bieten, als FrontPage 2000 optional zu bieten hatte. Auf der anderen Seite ist dies für die Benutzung von FrontPage 2002 als Editor und Gestaltungswerkzeug nicht von Interesse, zumal erst sehr wenige Provider SharePoint 2000 anbieten. Im Intranet ist der Einsatz eher gegeben, wo offensichtlich auch der Fokus der Serverdienste gesetzt wurde. Abbildung 2.4: Struktur der SharePoint-Verwaltung
48
SharePoint Services
2.3.2
SharePoint Konfigurationseinstellungen
Über die IIs-Managementkonsole gelangen Sie auf die SharePoint-Verwaltungsseite KONFIGURATIONSEINSTELLUNGEN ÄNDERN. Folgende Optionen stehen hier zur Verfügung, die für alle Webs und Unterwebs gelten, die FrontPage auf diesem Server erzeugt oder die in der Administration generiert werden: 왘 Dokumenterstellung 왘 E-Mail-Einstellungen 왘 Leistungsoptimierung 왘 Client-Skripts 왘 Sicherheitseinstellungen
Alle Einstellungen sind auf einer Dialogseite zu finden. Eine Beschreibung der Optionen finden Sie nachfolgend. Mit dem Absenden der Änderungen werden diese gespeichert und Sie gelangen zur allgemeinen Verwaltungsseite Ihres SharePoint-Servers. Dieses Programm wird in Abschnitt 2.3.3 SharePoint-Verwaltung virtueller Server beschrieben. Dokumenterstellung Mit Hilfe dieser Option kann die Möglichkeit der Erstellung von Dokumenten auf dem Server generell erlaubt oder verboten werden. In der Standardeinstellung ist dies erlaubt. Unabhängig von der Freigabe kann das Recht zur Erstellung jedem einzelnen Benutzer explizit entzogen oder gewährt werden. Ist die Erstellung aber verboten, kann dies auch mit speziellen Benutzerrechten nicht umgangen werden. E-Mail-Einstellungen Einige Funktionen, wie das Einladen von Benutzern oder die Diskussionslisten benötigen den SMTP-Dienst. Geben Sie in diesem Abschnitt an, welcher SMTP-Server verwendet werden soll. Wenn Sie Windows 2000 Server verwenden, ist der SMTP-Dienst standardmäßig aktiviert. Unter Windows 2000 Professional müssen Sie diesen gesondert installieren. Sie können aber auch einen anderen Server in Ihrem Unternehmen angeben, der SMTP-Dienste anbietet, auch wenn dieser nicht unter Windows läuft. Neben dem Namen oder der IP-Adresse des SMTP-Servers können Sie Adressen des Standardabsenders und für das Antwortfeld angeben. Der Begriff „Antwort-An“ steht für den E-Mail-Header „Reply-To“. Diese Adresse verwenden E-Mail-Clients standardmäßig, wenn der Benutzer auf die Schaltfläche oder Funktion „Antworten“ klickt. Im Feld NACHRICHTENVERSCHLÜSSELUNG sollten Sie die Standardeinstellung belassen. Manche E-Mail-Clients können verschiedene Kodierungen nicht erkennen. Wenn der Inhalt von Nachrichten nicht oder nicht richtig lesbar
49
2 Server-Erweiterungen
ist, versuchen Sie eine anderen Methode. Unix-Systeme arbeiten oft mit Base64-Kodierung. Das Feld ZEICHENSATZ sollte ebenso in der Standardeinstellung verbleiben. ISO-8859-1 ist der in Westeuropa übliche Zeichensatz, der die in einigen Sprachen benötigten Sonderzeichen und die Umlaute enthält. Wenn andere Sprachen verwendet werden, beispielsweise aus Osteuropa, können Sie hier die Einstellung ändern. Leistungsoptimierung In diesem Abschnitt können Sie die Leistungswerte des Servers einstellen. Wählen Sie einen der Einträge aus der Liste OPTIMIEREN FÜR, um die übrigen Felder mit Standardwerten zu füllen. Die Anzahl der Dokumente im Cache hängt allerdings neben der Anzahl der Seiten auch von der Menge der möglicherweise über Datenbank verwalteten Dokumente ab. Denken Sie auch an ausreichenden, schnellen Festplattenspeicherplatz für diesen Speicher, der auf dem SharePoint-Installationslaufwerk zur Verfügung stehen muss. Client-Skripts Wählen Sie im Abschnitt CLIENT-SKRIPTS, welche Skriptsprache der Server für clientseitige Skripte verwenden soll. Einige Funktionen bedingen eine Unterstützung für Skripting im Browser. Normalerweise sollte jeder Browser JavaScript unterstützen, wohingegen VBScript nur vom Internet Explorer verstanden wird. Sicherheitseinstellungen In diesem Abschnitt legen Sie verschiedene Sicherheitsoptionen fest. Wenn Sie mit vielen externen Autoren rechnen, deren Aktivitäten nicht im Detail kontrolliert werden können, ist eine Protokollierung der Dokumenterstellungsvorgänge sinnvoll. Falls SharePoint über das Internet verwendet wird, beispielsweise weil Autoren von zu Hause aus arbeiten, die Daten aber dennoch höheren Sicherheitsanforderungen unterliegen, sollten Sie die Option DOKUMENTERSTELLUNG UND VERWALTUNG NUR MIT SSL ZULASSEN aktivieren. Denken Sie jedoch daran, dass der IIS auch für die Verwendung von SSL konfiguriert werden muss, wozu mindestens ein entsprechendes Serverzertifikat erforderlich ist. Nähere Informationen darüber, wie Sie SSL installieren, finden Sie in dem Buch „Internet Information Server 5“, ISBN 3-44621847-5. Wenn Sie Programme zum Herunterladen anbieten, kann auch die Ablage auf dem Server eine interessante Option sein. Sie sollten dies jedoch nur dann zulassen, wenn alle Autoren ausreichend vertrauenswürdig sind. Die Ablage von Software kann rechtliche Probleme nach sich ziehen (wenn es nicht lizenzierte Software ist, Viren enthalten sind oder mit der Software gegen geltendes Recht verstoßen wird).
50
SharePoint Services
2.3.3
SharePoint-Verwaltung virtueller Server
Nach der Bestätigung der Standardkonfigurationsseite gelangen Sie zur allgemeinen Verwaltung des Standardwebs. Durch Anklicken des Links VERWALTUNG am oberen Seitenrand gelangen Sie zu einer allgemeinen Verwaltungsseite, über die alle auf dem Server konfigurierten Webs ausgewählt werden können. Verwaltung des virtuellen Servers Auf der Verwaltungsseite des virtuellen Servers – dies ist die Standardwebsite des IIS – können Sie nun allgemeine Einstellungen aller dort verwalteten Webs vornehmen, Im oberen Teil der Verwaltungsseite befinden sich zwei Hyperlinks – einer führt zur Startseite des Webs und einer zur Verwaltung der Website. Darunter sind einige allgemeine Funktionen, die den virtuellen Server betreffen. 왘 MICROSOFT SHAREPOINT DEINSTALLIEREN
Diese Option deinstalliert SharePoint wieder. 왘 VIRTUELLEN SERVER MIT MICROSOFT SHAREPOINT AKTUALISIEREN
Mit dieser Funktion wird ein bereits vorhandener virtueller Server – egal ob mit oder ohne FrontPage-Erweiterungen – auf SharePoint aktualisiert. 왘 KONFIGURATIONSEINSTELLUNGEN ÄNDERN
Hier gelangen Sie zu den allgemeinen Konfigurationseinstellungen, die beim Start der Verwaltung aufgerufen werden und bereits in Abschnitt 2.3.2 SharePoint Konfigurationseinstellungen beschrieben wurden. 왘 DATENBANKVERBINDUNG ÄNDERN
Tragen Sie in diesem Dialog die Daten für die Datenbankverbindung ein, wenn Websites Datenbankzugriffe verwenden. SharePoint benötigt eine Microsoft SQL Server-Datenbank (SQL Server 7.0 oder MSDE), um Informationen zu speichern. Jeder virtuelle Server verfügt über eine eigene Datenbank. Webs und Unterwebs auf diesem virtuellen Server verwenden die gleiche Datenbank. Informationen werden in der Datenbank jedoch in separaten Tabellen gespeichert. Als Serveradministrator legen Sie die Datenbankeinstellungen fest. MSDE gehört zum Lieferumfang von FrontPage 2002 und kann zusammen mit den SharePoint-Services installiert werden. 왘 DATENBANKSICHERUNG PLANEN
Tragen Sie hier ein, wann eine automatische Sicherung der Datenbank erfolgen soll. Im Dialog DATENBANK SICHERN UND WIEDERHERSTELLEN können Sie den Pfad zur Sicherungsdatei angeben.
51
2 Server-Erweiterungen 왘 DATENBANK SICHERN UND WIEDERHERSTELLEN
Tragen Sie hier den Pfad für die Sicherungsdatei ein. Sie können auch Daten aus einer Sicherungsdatei mit der entsprechenden Option rekonstruieren. 왘 BENUTZERKONTOBESCHRÄNKUNGEN KONFIGURIEREN
Mit dieser Option begrenzen Sie die Anzahl der Benutzerkonten, die für das betreffende Web eingerichtet werden können. Verwaltung einer Website Jeder virtuelle Server kann eine oder mehrere Websites enthalten. Die Websiteverwaltung enthält teilweise dieselben Einstellungen wie die Konfiguration des virtuellen Servers. In diesen Fällen werden die Einstellungen des virtuellen Servers als Standardwerte übernommen, sie lassen sich jedoch für die betreffende Website verändern, ohne dass dies Auswirkungen auf andere Sites desselben Servers hat. Folgende Optionen sind für die Websiteverwaltung verfügbar (Über SERVERVERWALTUNG | : 왘 Abschnitt BENUTZER UND ROLLEN
Hier können Sie Benutzer hinzufügen (Option BENUTZER VERWALTEN), Benutzern Rollen zuweisen (ROLLEN VERWALTEN) und Benutzer zu Ihrer Website einladen (Option EINLADUNG VERSENDEN). Rollen sind Sammlungen von Zugriffs- und Ausführungsrechten. Einige Standardrollen sind bereits eingerichtet. Ändern Sie hier die Einstellungen für anonymen Zugriff mit der Option EINSTELLUNGEN FÜR ANONYMEN ZUGRIFF ÄNDERN. Abbildung 2.5: Einstellungen für anonymen Zugriff
Unter VERWENDETE KONTEN können Sie Benutzerkonten einrichten, über die Benutzern der Zugriff mit erweiterten Rechten gestattet wird. Es ist jedoch besser, dazu die Option BENUTZER VERWALTEN zu verwenden, da Sie dort gleich alle Parameter einrichten können. 왘 WEBDISKUSSIONEN UND ABONNEMENTS
Hier sind zuerst Informationen über den aktuellen Status zu finden. Webdiskussionen funktionieren wie Newsserver, benötigen als Client aber nur einen Browser, kein extra Programm wie Outlook Express.
52
SharePoint Services
Klicken Sie auf WEBDISKUSSIONEINSTELLUNGEN ÄNDERN, um diesen Teil zu konfigurieren. Sie können dort: 왘 WEBDISKUSSIONEN AKTIVIEREN und DEAKTIVIEREN (Standard: Akti-
viert) 왘 Die Verknüpfung von Dokumenten auf den Server einschränken
(Standard: keine Einschränkung) 왘 Dokumente nach einer bestimmten Anzahl Tagen automatisch lö-
schen lassen (Standard: keine Löschung). Webabonnements erlauben Benutzern, automatisch per E-Mail benachrichtigt zu werden, wenn eine Antwort auf einen ihrer Diskussionsbeiträge eingegangen ist. Mit WEBABONNEMENTEINSTELLUNGEN ÄNDERN können Sie globale Konfigurationen vornehmen. Folgende Optionen sind verfügbar: 왘 WEBABONNEMENTS AKTIVIEREN und DEAKTIVIEREN (Standard: Akti-
viert) 왘 ABONNEMENTEINSCHRÄNKUNGEN. Einschränkung auf Ordner oder
Dokumente 왘 REGELMÄßIGE BENACHRICHTIGUNGEN. Mit Hilfe dieser Optionen kön-
nen Sie das Versenden der Abonnements auf die Nachtstunden oder eine andere Zeit verlegen, zu der die Maildienste weniger belastet oder billiger sind. Standardmäßig werden die E-Mails alle fünf Minuten versendet. 왘 E-MAILEINSTELLUNGEN: Hier tragen Sie die Absende- und Antwort-
adresse für die automatisch erzeugten E-Mails ein. 왘 VERWENDUNGSANALYSEEINSTELLUNGEN KONFIGURIEREN
Diese Option führt zu Einstellungen der Verwendungsanalyse. Administratoren können damit Leistungsparameter der Site überwachen und stark belastete Teile erkennen. Sie können hier: 왘 VERWENDUNGSANALYSE aktivieren und deaktivieren 왘 Die AUSFÜHRUNGSEINSTELLUNGEN geben an, wann die Analyse auf
Basis der Protokolldateien durchgeführt wird. 왘 Unter WEITERE VERWENDUNGSANALYSEEINSTELLUNGEN können Sie die
ermittelten Daten automatisch löschen lassen und eine E-MailAdresse angeben, an die Informationen über automatische Vorgänge versendet werden. 왘 SERVERÜBERPRÜFUNG
Hier können Sie Ihren Server auf Probleme überprüfen und Webs neu berechnen. 왘 SERVERÜBERPRÜFUNGSEINSTELLUNGEN ÄNDERN. Hier aktivieren und
deaktivieren Sie die Einstellungen und stellen den Überprüfungsrhythmus ein.
53
2 Server-Erweiterungen 왘 SERVER ÜBERPRÜFEN. Hier starten Sie die Überprüfung manuell. 왘 WEB NEU BERECHNEN. Bei der Berechnung eines Webs werden alle au-
tomatisch erstellten Hyperlinks der Webseiten, die von FrontPage erstellt wurden, neu berechnet. Der Vorgang kann bei komplexen Webs erhebliche Zeit in Anspruch nehmen. Das Abrufen von Webseiten von dem betreffenden Web kann in dieser Zeit gestört werden. 왘 VERSIONSKONTROLLE
Hier können Sie eine Versionskontrolle für Ihre Website aktivieren. Die Versionskontrolle ermöglicht die Koordination mehrerer Teammitglieder, die gemeinsam an einer Website arbeiten. 왘 UNTERWEBS
Unterwebs sind Webs unterhalb des Stammverzeichnisses eines Webs, die getrennte Sicherheitseinstellungen besitzen, jedoch dieselbe Domain verwenden. Sie können Unterwebs leer oder als SharePoint-Website konfigurieren. Wenn Sie ein Unterweb erstellen, wird ein neues Verzeichnis auf dem Server erstellt. Folgende Optionen stehen zur Verfügung: 왘 UNTERWEB ERSTELLEN. Sie können den Namen angeben, die Berechti-
gungen modifizieren und den Typ einstellen. Der Vorgang kann bei einer SharePoint-Site einige Minuten in Anspruch nehmen. Die folgenden beiden Optionen stehen nur zur Verfügung, wenn mindestens ein Unterweb bereits existiert. Außerdem folgt eine Liste der verfügbaren Unterwebs. 왘 UNTERWEB INTEGRIEREN. Diese Option verknüpft ein Unterweb mit
dem übergeordneten Web und löst es ohne Datenverlust auf. 왘 UNTERWEB LÖSCHEN. Diese Option löscht das Web einschließlich aller
enthaltenen Daten. Damit ist die Einrichtung eines SharePoint-Webs und seiner Unterwebs abgeschlossen.
2.3.4
SharePoint Websites und FrontPage
SharePoint-Webs lassen sich zwar in FrontPage 2002 als Web öffnen – schließlich handelt es sich nur um FrontPage-Webs-, allerdings sind kaum Elemente verfügbar, die sich direkt ändern lassen. Um nun individuell gestaltete Elemente in SharePoint einbauen zu können, verwenden Sie leere Unterwebs. Die Struktur dieser Webs entsteht in FrontPage. Die Einbindung kann beispielsweise über die Hyperlink-Funktion erfolgen. Diese Funktion und viele andere werden im nächsten Abschnitt beschrieben.
54
SharePoint-Teamfunktionen
2.4
SharePoint-Teamfunktionen
SharePoint bietet eine Fülle von Funktionen, die die Verwaltung eines Intranet erheblich erleichtern.
2.4.1
Listen
Die Listen sind Informationsspeicher, die teilweise auch auf der Startseite zur Verfügung stehen. Sie können selbst weitere Listen erstellen und integrieren. Standardmäßig sind folgende verfügbar: 왘 ANKÜNDIGUNGEN
Hier werden Aktionen angekündigt, die zu einem konkreten, späteren Zeitpunkt stattfinden, beispielsweise die Weihnachtsfeier. 왘 AUFGABEN
Speichern Sie hier globale Aufgaben und ordnen Sie diese einem Benutzer zu. Alle Benutzer können die Aufgabenliste einsehen. 왘 EREIGNISSE
Ereignisse haben im Gegensatz zu Ankündigungen sowohl ein Start- als auch ein Enddatum, letzteres allerdings optional. Außerdem kann ein Ort zugeordnet werden. Abbildung 2.6: Einrichten eines neuen Ereignisses
왘 HYPERLINKS
Hyperlinks verweisen auf andere interne oder externe Websites. hier können Sie auch sehr einfach mit FrontPage 2002 erstellte Unterwebs einbinden.
55
2 Server-Erweiterungen 왘 KONTAKTE
Die Kontaktliste ist beispielsweise für alle öffentlichen Adressen und die Mitarbeiterverwaltung interessant. Das Adressbuch ist kompatibel mit Outlook 2002, nicht jedoch mit älteren Versionen.
2.4.2
Diskussionsrunden
In Diskussionsrunden kann zu beliebig vielen Themen diskutiert werden. Als Ausgangspunkt kann auch ein Dokument dienen, über das diskutiert werden kann. In Newsforen wird eine Diskussion als „Thread“ (Gesprächsfaden) bezeichnet, diese Terminologie hat Microsoft hier nicht übernommen. Im Abschnitt Diskussionsrunden lassen sich beliebig viele Diskussionsrunden beginnen, in denen jeweils Diskussionen stattfinden. Innerhalb einer Diskussionsrunden werden neue Threads mit NEUE DISKUSSION begonnen. Jeder Teilnehmer kann auf solche Beiträge antworten oder eine neue Diskussion beginnen. Rechte zur Diskussionsteilnahme Die Teilnahme an Diskussionen kann in der Rechteverwaltung gesteuert werden. Gehen Sie dazu in die Verwaltung der Website und dann in den Abschnitt BENUTZERROLLENMITGLIEDSCHAFT BEARBEITEN. Dort können Sie den oder die Benutzer einer der fünf Standardrollen zuordnen. Bezogen auf Diskussionen sind die folgenden Rollen interessant: 왘 WEBBENUTZER
In dieser Rolle können Benutzer Diskussionen einsehen und lesen, jedoch keine Beiträge veröffentlichen und auch nicht antworten. 왘 TEILNEHMER
Diese Rolle erlaubt die aktive Teilnahme an Diskussionen. 왘 AUTOR
Diese Teilnehmer dürfen auch Dokumente bearbeiten. Unabhängig davon können natürlich auch Rollen mit einer spezielleren Vergabe spezifischer Rechte erstellt werden.
2.4.3
Dokumente
Verwalten Sie mit dieser Option Dokumente, die im Web verteilt und anderen Benutzern zur Verfügung gestellt werden können.
56
3
Das Internet und seine Dienste
3.1
Einführung und Grundbegriffe
Am Anfang bestand das World Wide Web (WWW), auch aufgrund seiner ursprünglichen Definition, aus statischen, miteinander verlinkten Seiten. Auch heute noch sind die allermeisten Präsenzen so aufgebaut. Als Protokoll zwischen Webserver und Browser dient das Hypertext Transfer Protocol (HTTP). Über dieses Protokoll fordert der Browser eine bestimmte Seite an, und der Server reagiert darauf mit der Übertragung der entsprechenden Seite oder einem Fehler, wenn die Seite nicht gefunden wurde. Hyperlinks sind Verweise in statischen Webseiten, die auf andere Dateien im Web zeigen und solche Übertragungsprozeduren auslösen. Mit der Hypertexttechnik kann man durchaus anspruchsvolle Webseiten erstellen. Der Schwerpunkt der Entwicklung lag jedoch auf der puren Informationsvermittlung. Hyperlinks erlauben es Dokumenten, den Leser in gewisser Weise zu führen. Der Zugriff auf verwandte Informationen erleichtert die Verarbeitung von Inhalten. Hypertextsysteme sind für das Lesen von Texten am Bildschirm gedacht und strukturieren Dokumente anders als Bücher. Von der grundsätzlichen Idee her ist damit aber die Zielrichtung vorgegeben: Informationsvermittlung. Ein bekanntes Hypertextsystem ist beispielsweise auch die Windows-Hilfe. Mit der Entwicklung des Webs zu einem Medium der Werbung und Präsentation auf der einen Seite, zu einer direkten interaktiven Einbeziehung des potenziellen Kunden auf der anderen Seite war jedoch der klassische Hypertext, geschrieben in der Hypertext Markup Language (HTML), den Anforderungen nicht mehr gewachsen. Aufgrund der Historie sind nie ernsthafte Versuche unternommen worden, neben HTML einen neuen Standard für Webseiten zu kreieren, der die Hypertextstruktur um echte Interaktion ergänzt. So sind im Laufe der letzten Jahre die verschiedensten Systeme entstanden, die außerhalb HTML arbeiten und den Webservern die so dringend benötigte Interaktivität verleihen. Die bekanntesten Beispiele sind CGI-Programme und webserverspezifische Applikationen, die spezielle Schnittstellen benutzen. Das Common Gateway Interface (CGI) stellt eine genormte Schnittstelle zwischen den CGI-Programmen und dem Webserver dar. Häufig wird dazu die Skriptsprache Perl eingesetzt. Perl ist als Interpreter konzipiert (wie alle Skriptsprachen) und die Skripte laufen als eigenständige Programme ab, gestartet durch eine Anforderung des Browsers. Das Ergebnis können Zugriffe auf interne Funktionen des Servers oder Ausgaben in HTML sein. Die Programmierung ist verhältnismäßig komplex und die Erzeugung grafisch ansprechend gestalteter HTML-Seiten extrem aufwändig, denn jeder einzelne HTML-Befehl wird einzeln erzeugt und dann zum Webserver gesendet. Auch die Erzeugung von speziellen, nativen Programmen,
Auch WindowsHilfe ist Hypertext
57
3 Das Internet und seine Dienste
die auf die Interfaces der Webserver direkt zugreifen, ist kompliziert und der professionellen Programmierung vorbehalten. So stellt Microsoft mit dem Internet Information Server das Information Server Application Programming Interface (ISAPI) zur Verfügung, Netscape mit seinen Webservern das Gegenstück Netscape Server Application Programming Interface (NSAPI). Praktisch sind APIs Sammlungen von Bibliotheksfunktionen (Dynamic Link Libraries, DLL), auf die Programmierer zurückgreifen können, die Anwendungen in richtigen Programmiersprachen schreiben, beispielsweise C++. Auch diese Programme erzeugen HTML aber nur seriell über eine bestimmte Ausgabeprozedur, wenngleich sich damit natürlich schnelle und komplexe Anwendungen entwickeln lassen.
3.1.1
Grundlagen und FrontPage
Für den Praktiker, der als Webdesigner oder Webprogrammierer schnell umfangreiche Anwendungen für das Internet produzieren muss, sind CGI-Applikationen oft zu aufwändig. Auch sind bei dem heute stark präsentationsgeprägten Web eher gute Multimediadesigner gefragt als der klassische Programmierertyp. Trotzdem sollen die Webseiten interaktiv sein, auf Aktionen des Nutzers also reagieren können, es sollen Zugriffe auf Datenbanken möglich sein, und die Eingaben der Nutzer sollten ebenso in Datenbanken gespeichert werden können. Eine solche einfache, aber zugleich leistungsfähige Schnittstelle stellen die Skriptsprachen dar, die direkt in die HTML-Seiten eingebunden werden. Unter Windows ist ASP – Active Server Pages – weit verbreitet. Viele Funktionen in FrontPage 2002 basieren auf ASP und für professionelle Lösungen ist es unerlässlich, programmieren zu können. Um mit ASP arbeiten zu können, sind im Vorfeld also nur HTML-Kenntnisse nötig, und das auch nur in dem Umfang, wie es die gewünschten Webseiten erfordern. Wer anspruchsvolle Seiten mit Cascading Style Sheets, Dynamic-HTML und JavaScript erstellen will, sollte diese Elemente beherrschen, auch wenn FrontPage den Einstieg in die Materie erleichtert. Mit der Kombination aus FrontPage 2002 und ASP haben Sie die Technologie, um datenbankgestützte Websites zu erstellen.
3.1.2
Grundbegriffe
Lernen Sie die Grundbegriffe kennen, die im Zusammenhang mit dem Internet immer wieder genannt werden. Das Verständnis der Technik hilft, Probleme bei der Programmierung zu erkennen und die Reaktionen der Server zu verstehen. Vorgestellt werden auch die wichtigsten Protokolle auf einfachem Niveau. Bei der Erläuterung der darauf direkt Bezug nehmenden Funktionen werden diese Grundlagen weiter vertieft, insofern ist ein wenig Redundanz beabsichtigt.
58
Einführung und Grundbegriffe
Aufbau des Internet Das Internet als Begriff ist keine fassbare Einheit, die in einem Stück zu beschreiben wäre. Ich will an dieser Stelle eine kurze Erklärung versuchen, die das Internet und seine grundsätzliche Funktionalität verständlich machen. Das Internet gehört niemandem und wird von niemandem kontrolliert. Als Internet wird die Einheit aller Personen, Firmen, Organisationen verstanden, die sich unter Einhaltung bestimmter Standards und Normen zusammenschließen. Das können auf der einen Seite Informationsanbieter (die Server) sein, auf der anderen Seite gehören auch alle Informationsnutzer (die Surfer) dazu. Alle sind durch Datenleitungen miteinander verbunden. Für den privaten und kleineren gewerblichen Teilnehmer bestehen diese Datenleitungen aus normalen Telefonleitungen, die von Telekommunikationsfirmen gemietet werden. Die Struktur des Internets bilden so genannte Provider (Verteiler), die Knoten bereitstellen, an denen die Datenströme gesammelt und neu verteilt werden. Physisch sind diese Knoten die Punkte, an denen sich die Nutzer mit Modem oder ISDN-Karte einwählen und dann von den Computern (Gateways, Router) des Providers mit den anderen Leitungen des Internets verbunden werden. Provider, die solche Einwählpunkte betreiben, werden auch PoPs1 genannt. Manche Provider haben viele selbstständige PoPs, betreiben selbst aber nur die Hauptleitungen (Teile des Backbone). Man unterscheidet echte Serviceprovider, die solche Leitungen nur mieten und darauf ausschließlich Datendienste betreiben, und so genannte Carrier, die selbst Überlandleitungen verlegen und für alle Dienste – Sprache und Daten – vermieten. Zwischen allen Städten der Welt existieren Dutzende von privaten oder staatlich kontrollierten Leitungen. Damit können die Daten auch auf verschiedenen Wegen durch die Welt gelangen. Das Internet ist deshalb nicht unbedingt schnell, aber außerordentlich sicher. Auch ein totaler Schnitt durch alle Leitungen einer Zone würde den Informationsfluss nicht zum Stillstand bringen; die Daten gehen dann eben längere Wege, aber sie erreichen sicher ihr Ziel.
Das Internet
Jeder einzelne Computernutzer kann Bestandteil des Internets werden, indem er einen Server betreibt, den alle anderen Teilnehmer sehen können. Die einzige gemeinsame Basis ist die Verwendung bestimmter Standards. Für das Netzwerk ist dies TCP/IP als Protokoll und für die Informationsinhalte sind es HTTP (WorldWideWeb), FTP (Dateitransfer), NNTP (News) und SMTP (E-Mail). Jeder kann also behaupten: „Ich bin das Internet“ (oder wenigstens ein kleiner Teil davon). Wenn Sie zurzeit einen Server installieren, sind Sie ungefähr ein 30-millionstel des Internets, denn so viele Server gibt es mittlerweile. Die Statistik-Site Netcraft (http://www.netcraft.co.uk/survey) berichtete im August 2001 von 30.775.624 Sites, wobei viele davon sicher nur virtuelle Server (beispielsweise im Webspace eines Providers) sind.
1. Vom englischen Point of Presence; etwa: Punkt, an dem das Internet präsent ist.
59
3 Das Internet und seine Dienste
Sie müssen nicht einmal einen eigenen Server betreiben, denn Sie können auch Speicherplatz bei einem anderen Server für Ihre Seiten mieten. Das nennt man dann Webspace. Diese Lösung ist zwar nicht sonderlich flexibel, aber recht billig. World Wide Web
Das WWW ist der Multimedia-Dienst des Internets. Im WWW werden HTML-Dokumente platziert, die aus Text, Bildern, Animationen, Video- und Soundsequenzen etc. bestehen können. Ein großer Vorteil des WWW besteht darin, dass auf andere, weiterführende Dokumente über so genannte Hyperlinks (Verweise) bequem zugegriffen werden kann. Das WWW ist der Dienst des Internets, der eigentlich gemeint ist, wenn Sie in den Medien auf den Begriff Internet stoßen. Das WWW ist zwar nur ein Teilbereich des Internets, jedoch wohl derjenige mit der höchsten Expansionsrate.
HTML
HTML ist die Beschreibungssprache, mit der die Dokumente codiert werden. Der Name Hypertext Markup Language deutet auf den ursprünglichen Zweck hin: die Einbettung von Verknüpfungen zu weiterführenden Informationen. So ist das WWW weltweit in vielfältiger Weise miteinander verknüpft und verflochten.
HTTP
HTTP – Hypertext Transfer Protocol – ist das Standardübertragungsprotokoll für HTML-Seiten im Internet. Auf HTTP setzen andere Mechanismen auf, beispielsweise SOAP (Simple Object Access Protocol) für XML (eXtensible Markup Language) oder das auch von FrontPage verwendete WebDAV.
TELNET
Telnet (oder auch Virtual Terminal Protocol, VTP) ist der Dinosaurier des Internets. Mit Telnet können Sie von Ihrem Computer über das Internet auf einen anderen Computer zugreifen. Sie können – wenn Sie über die entsprechenden Rechte verfügen – mittels Internet auf einem entfernten Rechner arbeiten und die entsprechenden Ressourcen (zum Beispiel Drucker) nutzen, als würden Sie direkt an jenem Rechner sitzen. Für den Einsatz im Windows 2000 Server wird TELNET normalerweise nicht benötigt.
FTP
Das File Transfer Protocol (FTP) ermöglicht Ihnen den Zugriff auf bestimmte Dateien innerhalb des Internets. Sie können mit dem FTP einerseits Daten von einem entfernten auf Ihren Computer herunterladen, andererseits von Ihrem Computer Daten auf einen anderen Computer übertragen. Das FTP ist eine Art Datei-Kopiermöglichkeit. FTP-Serveradressen beginnen mit „ftp:“. Wenn auf einem Server keine FrontPage-Erweiterungen installiert sind, kann zum Hochladen in der Regel nur FTP verwendet werden.
E-Mail
Electronic-Mail (auch E-Mail2) ist die elektronische Post, die von einem Computer zu einem anderen, von einem Nutzer zu einem anderen verschickt wird. Wenn Sie einen Internetzugang besitzen, haben Sie in der Regel auch eine oder mehrere E-Mail-Adressen. E-Mail bietet im Gegensatz zur 2. Laut Duden ist die Schreibweise „E-Mail“ die einzige zulässige Variante. Alle anderen Schreibweisen, wie eMail oder auch Email sind unrichtig (Der Duden, Bd. 1, 21. Auflage 1996; Dudenverlag).
60
Einführung und Grundbegriffe
„klassischen Post“ gleich mehrere Vorteile: E-Mail ist wesentlich schneller. In der Regel erhalten Sie eine E-Mail bereits wenige Augenblicke nachdem sie abgeschickt wurde (vorausgesetzt Sie schauen auch in Ihr „Postfach“), und zwar egal, von wo aus sie abgeschickt wurde (ob aus New York, Tokio, Berlin oder Buxtehude). E-Mail ist geographisch unabhängig. Nehmen wir an, Sie befinden sich auf Geschäftsreise. Ihre Sekretärin hat wichtige Post für Sie. Normalerweise würde Ihre Mitarbeiterin versuchen, die Telefaxnummer Ihres Hotels herauszubekommen und Ihnen die Post per Fax zukommen lassen oder Sie telefonisch informieren. Bei E-Mail ist es anders. Sie müssen einfach nur in Ihr „Postfach“ schauen, ob eine neue Nachricht vorliegt. E-Mail ist der bedeutendste Dienst im Internet. So wurden 1998 nach Schätzungen 3,4 Billionen E-Mails versendet. Das Internet Relay Chat (IRC) ist wie E-Mail ein Online-Dienst. Im Gegensatz zur E-Mail, bei der Sie von einem Nutzer Post bekommen und ihm dann im Gegenzug eventuell Post zurücksenden, können Sie beim IRC „live“ mit anderen Internetteilnehmern konferieren. Dabei ist es unerheblich, wo sich die Teilnehmer gerade aufhalten, ob sie sich im Nachbarzimmer oder aber tausende Kilometer weit entfernt befinden. Jede Eingabe Ihrer Tastatur wird sofort an Ihren Gesprächspartner übertragen und umgekehrt. So können Sie sich sofort und unmittelbar mit anderen Teilnehmern zu bestimmten Themen austauschen. Für IRC werden spezielle Programme auf dem Computer benötigt, die es im Internet kostenlos gibt.
Internet Relay Chat (IRC)
Die Newsgroups sind eine Mischung zwischen E-Mail und IRC. Hier wird öffentlich, das heißt, mit mehreren Teilnehmern weltweit diskutiert. Die Newsgroups sind mit einem Schwarzen Brett vergleichbar. Jemand trägt zu einem bestimmten Thema eine „Wortspende“ bei, die in der entsprechenden Newsgroup veröffentlicht wird. Alle anderen Teilnehmer können dann auf den entsprechenden Beitrag antworten bzw. eigene Beiträge leisten. Newsgroups gibt es zu den verschiedensten Themenbereichen. Vermutlich existieren weltweit einige hunderttausend Newsgroups. Große Newsserver liefern 30.000 bis 50.000.
Newsgroups
Intranet und Extranet Das große Schlagwort in der letzten Zeit ist das Intranet. Datenbanken bieten eine gute Möglichkeit, ein Intranet kräftig „aufzupeppen“ oder überhaupt erst sinnvolle Funktionen einzubauen. Das Intranet ist ein firmeninternes Netzwerk, das Standards (Protokolle, Normen), Techniken (Gateways, Router), Infrastrukturen (Leitungen, Provider) und Angebote (fremde Server) des Internets nutzt, um firmeninterne Informationen zu verteilen. Der große Vorteil ist die Nutzung einer weltweiten, preiswerten und allgegenwärtigen Infrastruktur. Durch die Nutzung der Standards stehen mehr Fachleute und preiswertere Softwarelösungen zur Verfügung. Die Inhalte eines Intranets sind im Internet normalerweise
Intranet
61
3 Das Internet und seine Dienste
nicht direkt sichtbar. Wenn Sie versuchen, einen Intranetserver einer Firma anzusprechen, dann werden Sie abgewiesen. Der Computer, der für die Abweisung zuständig ist, wird Firewall genannt. Extranet
Ein Extranet ist ein geschlossenes Netz zwischen verschiedenen Firmen unter Nutzung des Internets. So könnten ein Hersteller und seine Vertragshändler in einem Extranet miteinander verbunden sein. Alle Teilnehmer an einem Extranet nutzen lokale Internetprovider für die nötigen Dienste. Intranet und Extranet sind logische Einheiten und Komponenten, die das Internet nutzen. Das Netzwerkprotokoll TCP/IP besitzt heute als das Standardprotokoll des Internet eine fundamentale Bedeutung. In diesem Kapitel sollen die Grundlagen besprochen werden, um einen Ausblick auf den für die professionelle Programmierung notwendigen Wissensstand zu geben.
3.2
Die Internet-Protokolle und ihr Ursprung
Internet Protocol Suite (IPS)
Im Zusammenhang mit TCP/IP werden Sie häufig auf die Begriffe Internet Protocol Suite (IPS), Internet-Protokollfamilie oder einfach Internet-Protokolle stoßen. Dies sind eigentlich die heute üblichen Bezeichnungen. Im folgenden Text werden wir vor allem die deutschen Begriffe einsetzen.
DoD / ARPANET
Daneben werden die Internet-Protokolle auch als Department of Defense (DoD)- oder ARPANET-Protokolle bezeichnet. Dies ist in der Entstehungsgeschichte des Internet begründet, dessen Entwicklung Ende der sechziger Jahre durch das amerikanische Verteidigungsministerium initiiert wurde und im Aufbau des ARPANET (Advanced Research Project Agency) gipfelte. Das ARPANET stellt damit die erste Implementierung des Internet mit seinen wesentlichen Protokollbestandteilen dar. Noch heute ist es, natürlich in weiterentwickelter Form, eines der größten zusammenhängenden IP-Netzwerke. Der Beginn der Entwicklung plattformübergreifender Kommunikationsmöglichkeiten zwischen Computersystemen liegt in einer Zeit, als an allgemein gültige Standards in diesem Bereich noch nicht zu denken war. Mangels Alternativen entschlossen sich aber nach öffentlicher Verfügbarkeit der Internet-Protokollfamilie immer mehr Hersteller, diesen Quasi-Standard zu unterstützen und kompatible Netzwerklösungen zu entwickeln.
3.2.1
Die Organisationen ICANN und IANA
Für die Festlegung und Sicherung eines für das Internet allgemein gültigen Domain-Standards zeichnen vor allem zwei Institutionen verantwortlich:
62
Die Internet-Protokolle und ihr Ursprung 왘 ICANN (Internet Corporation for Assigned Names and Numbers)
ICANN
Diese Organisation wurde erst im Oktober 1998 gegründet und dient der Sicherstellung der technischen Rahmenbedingungen für das Internet. Sie zeichnet für die grundlegenden Kommunikationsstandards verantwortlich, welche vormals allein durch die US-Regierung beziehungsweise durch von ihr beautragte Organisationen wahrgenommen wurden. So obliegt ihr die Koordination des gesamten Internet-Rootserversystem. Darüber hinaus werden innerhalb dieses Gremiums Vorschläge der Internet-Community aufgegriffen und diskutiert. Die Verwaltung der generischen TLDs (gTLDs wie COM, NET etc.) liegt ebenfalls in der Verantwortung der ICANN. So werden hier die Unternehmen registriert und zugelassen, die für die Vergabe von SLDs direkt unterhalb der TLDs weltweit verantwortlich sind. Weitergehende Informationen finden Sie auch auf der ICANN-Website: www.icann.org 왘 IANA (Internet Assigned Number Authority)
IANA
Die IANA ist wie die ICANN eine Non-Profit-Organisation und dient der Sicherstellung der korrekten Vergabe der IP-Nummern und der zentralen Verwaltung der Country Code Top-Level Domains (ccTLDs wie US, DE). Weitere Informationen finden Sie auch auf der Website der IANA: www.iana.org
3.2.2
Das ISO/OSI-Modell und die Internet-Protokolle
1977 begann die ISO (International Organization for Standardization) mit den Arbeiten an einem allgemein gültigen Standard für die Kommunikation mit (und zwischen) Computersystemen. Im Ergebnis dieser Bemühungen entstand das heute bekannte und für die Beschreibung technischer Kommunikationsprozesse oft herangezogene ISO/OSI-Referenzmodell (Reference Model for Open Systems Interconnection of the International Organization for Standardization).
International Organization for Standardization
Das ISO/OSI-Referenzmodell Dieses Modell teilt Netzwerkverbindungen in sieben logische Schichten ein, die jeweils eigene Aufgaben übernehmen. Eine höhere Schicht baut dabei immer auf den Funktionen der tiefer liegenden auf. Die folgenden sieben Schichten werden dabei unterschieden:
63
3 Das Internet und seine Dienste Tabelle 3.1: Die sieben Schichten des ISO/OSIReferenzmodells
Nr.
Schicht
Funktionen
7
Anwendung
Nutzerschnittstelle, Kommando-Auswahl
6
Darstellung
Kodierung, Dekodierung, Kompression
5
Sitzung
Steuerung der Kommunikation
4
Transport
Verbindungsaufbau, Datentransport
3
Vermittlung
Adressierung, Routing
2
Sicherung
Fragmentierung, Kontrolle, Prüfung
1
Bitübertragung
Physischer Datentransport
Nachfolgend finden Sie, beginnend bei der untersten Schicht, die einzelnen Funktionen etwas genauer: Bitübertragung
왘 Schicht 1: Bitübertragungsschicht (physical layer). Hier wird die physikali-
sche Übertragung (elektrisch sowie mechanisch) definiert: das Medium (Kabel, Funk, Infrarot), die gesendeten Signale usw. Sicherung
왘 Schicht 2: Sicherungsschicht (data link layer, auch Verbindungsschicht
oder MAC-Layer genannt). Hier werden die Daten in einzelne Rahmen aufgeteilt und gesichert übertragen. Vermittlung
왘 Schicht 3: Netzwerkschicht (network layer, auch Vermittlungsschicht).
Zentrale Aufgabe ist die Bestimmung eines optimalen Weges durch ein Netzwerk. Transport
왘 Schicht 4: Transportschicht (transport layer). Diese Schicht stellt einen ge-
sicherten Kanal zwischen zwei Stationen her, sodass die Daten einfach seriell geschrieben bzw. gelesen werden können. Sitzung
왘 Schicht 5: Sitzungsschicht (session layer, auch Kommunikationssteue-
rungsschicht). Diese Schicht synchronisiert das Zusammenspiel mehrerer Stationen. Es wird beispielsweise festgelegt, wie eine Sitzung zeitlich abzulaufen hat (Aufforderung zum Senden eines Kennwortes, Senden des Kennwortes selbst, Bestätigung des empfangenen Kennwortes usw.). Darstellung
왘 Schicht 6: Darstellungsschicht (presentation layer). Hier werden die Daten
in ein einheitliches Format transformiert, zum Beispiel durch Alphabetumwandlungen oder Datenkompression. An dieser Stelle gehen oft die Umlaute verloren, wenn die Übertragung mit 7 Bit statt 8 Bit erfolgt. Anwendung
Kommunikationsprozesse
64
왘 Schicht 7: Anwendungsschicht
(application layer). Diese Schicht beschreibt die Schnittstelle, über die Anwendungen auf Dienste eines anderen Systems zugreifen können.
Jede Schicht kommuniziert mit der entsprechenden Schicht auf dem anderen System (logischer Datenfluss), indem sie Daten entweder an die darüber oder darunter liegende Schicht weiterleitet (physikalischer Datenfluss). Dabei verfügt jede Schicht über Schnittstellen, die folgende Abläufe ausführen können:
Die Internet-Protokolle und ihr Ursprung 왘 Austausch von Daten mit der darüber liegenden Schicht 왘 Austausch von Daten mit der darunter liegenden Schicht 왘 Entscheidung darüber, welche Daten an dieselbe Schicht im anderen Sys-
tem übermittelt werden Wenn die Sitzung auf Schicht Fünf ihre Daten an die Schicht Vier übergeben hat, wartet sie, bis die Antwort von Schicht Fünf des anderen Systems zurückkommt. Wie diese Nachricht auf das andere System gelangt, ist Aufgabe von Schicht Vier, die sich wiederum nur mit Schicht Drei in Verbindung setzt usw. Der wirkliche Datenaustausch findet nur auf Schicht Eins statt. Durch dieses Verfahren sind höhere Schichten völlig unabhängig von den physikalischen Gegebenheiten (Funknetz, ISDN, Glasfaser usw.). Andererseits können über eine funktionierende physikalische Verbindung (Schicht Eins) alle Arten von Daten und Protokollen (höhere Schichten) benutzt werden. Abbildung der Internet-Protokolle im ISO/OSI-Referenzmodell Der theoretische Ansatz des Referenzmodells geht davon aus, dass auf jeder Ebene ein Protokoll arbeitet. Allerdings trifft das gerade auf die Internetprotokolle nicht zu. Deren Entwicklung beginnt bereits, bevor die ISO am Referenzmodell arbeitet und verläuft praktisch parallel zu diesem. Die Internet-Protokollfamilie kann aber durchaus mit dem ISO/OSI-Referenzmodell verglichen werden. Die Daten durchlaufen beim Transport über ein Übertragungsmedium, wie beispielsweise ein Kupferkabel, üblicherweise alle Schichten von der Anwendung des Senders bis hin zum Empfänger.
4-Schichtenmodell der Internet-Protokollfamilie
So übergibt eine Anwendung wie beispielsweise ein FTP-Client oder ein Terminalprogramm für Telnet seine Datenpakete an die Transportschicht. Hier bekommt das Paket einen Header, in dem weitere Informationen zu dessen Aufbau hinterlegt werden. Wird das Protokoll TCP verwendet, befinden sich im so genannten TCP-Header Angaben zum Quell- und Zielport sowie die TCP-Flags. Bei der Übergabe an die nächste Schicht (Netzwerk) wird das Paket um einen weiteren Header, beispielsweise den IP-Header, erweitert. In diesem werden unter anderem die IP-Quell- und Zieladresse hinterlegt, um den richtigen Weg im Netzwerk, auch über IP-Router, finden zu können. Schließlich erfolgt eine letzte Erweiterung des Pakets in der Verbindungsschicht. Der neue Header enthält dann unter anderem Informationen zum verwendeten Übertragungsverfahren wie Ethernet oder Token Ring. Beim Weg zum Empfänger werden dann alle Schichten rückwärts wieder durchlaufen und die jeweiligen Header-Informationen entfernt. Dieser ganze Vorgang wird auch als Daten-Kapselung bezeichnet.
Kapselung der Daten
Mit Hilfe dieser Datenkapselung können Kommunikationslösungen geschaffen werden, welche unabhängig vom verwendeten technischen Verfahren funktionieren. So ist beispielsweise die Verwendung der IP-Protokollfamilie nicht an ein bestimmtes Übertragungsverfahren gebunden, sondern ist auch über Ethernet, Token Ring, ATM, PPP für die Datenfernübertragung oder andere, vielleicht erst in Zukunft verfügbare Medien möglich.
65
3 Das Internet und seine Dienste
Die wichtigsten Protokollbestandteile der Internet-Protokollfamilie werden eingehender in folgenden Abschnitt beschrieben. Diese Protokolle können auch bei der Programmierung von Active Server Pages von Bedeutung sein, die in FrontPage-Webs eingesetzte serverseitige Script-Umgebung.
3.2.3
Request For Comments (RFC)
RFC
Als wichtiges Standardisierungsinstrument in der Protokollwelt sind seit mehr als 30 Jahren die so genannten RFCs in Gebrauch. RFCs (Request For Comments) sind öffentlich zugängliche Dokumente, die einem einheitlichen Schema und einer fortlaufenden Nummerierung folgen. In diesen können sich entsprechend qualifizierte Personen oder Hersteller äußern.
Fortlaufende Nummerierung
RFCs tragen generell eine fortlaufende Nummer. RFC 0001 wurde am 7. April 1969 veröffentlicht. Ändert sich ein RFC, wird eine neue Nummer vergeben und das alte Dokument als obsolet gekennzeichnet. Im vorliegenden Buch wird an einigen Stellen auf RFCs verwiesen. Damit können Sie, wenn Sie weitergehende Informationen benötigen, schnell die entsprechenden Quellen des betreffenden Standards oder der Technologie finden. Stufen eines RFC Ein RFC kann mehrere Stufen durchlaufen, bis es vielleicht einmal den „offiziellen“ Status in Form eines anerkannten Standards erlangt. Eine der bekanntesten Standardisierungsgremien ist die IETF (Internet Engineering Task Force). Mögliche Stufen eines RFC sind:
Experimental
왘 Experimental (Experimentell)
Das hier spezifizierte Protokoll oder Verfahren sollte nur zu experimentellen Zwecken oder zur Evaluierung eingesetzt werden. Es sind noch grundlegende Änderungen möglich, ebenso wie das völlige Verwerfen der Entwicklung durch den Hersteller. Proposed Standard
Draft
왘 Proposed Standard (Vorgeschlagener Standard)
Als Vorschlag werden RFCs gekennzeichnet, wenn die Standardisierung gezielt angestrebt wird. Dennoch befindet sich das Protokoll noch in der Entwicklung und wird voraussichtlich noch Änderungen unterworfen sein. Oft sind solche Änderungen auch Kompromisse, die notwendig sind, um die Anerkennung als Standard zu erlangen. 왘 Draft (Entwurf)
In diesem Stadium, das Sie häufiger beobachten können, befinden sich Dokumente, die als Standard ernsthaft in Betracht gezogen werden. Praktisch ist die Entwicklung abgeschlossen. Durch die Veröffentlichung gelangen die Methoden zum praktischen Einsatz. Im Feldtest können sich Probleme herausstellen, die noch zu Änderungen am endgültigen Standard führen.
66
Die Internet-Protokolle und ihr Ursprung 왘 Standard
Standard
In dieser Phase ist das RFC verabschiedet und endgültig. Wenn sich Änderungen oder Weiterentwicklungen ergeben, wird eine neue Nummer vergeben und das alte RFC wird obsolet. Als Verabschiedungsgremium agiert das IAB (Internet Architecture Board). Neben diesen grundlegenden Eigenschaften können ergänzende Hinweise anfallen, die sich teilweise auch auf Systeme beziehen: 왘 Recommended (empfohlen)
Recommended
Das Protokoll wird zum Einsatz empfohlen. 왘 Not recommended (nicht empfohlen)
Es ist nicht empfehlenswert, dieses Protokoll einzusetzen, weil es inzwischen oft ein neueres gibt. 왘 Limited use (begrenzter Einsatz)
Not recommended
Limited use
Dieses Protokoll wird nur für sehr eng gesteckte Spezialfälle zur Anwendung kommen. 왘 Required (erforderlich)
Required
Die Anwendung ist im Zusammenhang mit anderen Protokollen zwingend. 왘 Elective (wahlweise)
Elective
Für den vorgesehenen Zweck stehen mehrere Protokolle gleichwertig zur Auswahl. Aus den gültigen, verabschiedeten RFCs werden Standards, indem eine Standardnummer STD zugewiesen wird. Manchmal umfasst ein solcher Standard mehrere RFCs. STD-Nummern sind endgültig, werden also nicht geändert, wenn sich die zugrunde liegenden RFCs verändern. Die Zusammenfassung der STDs und RFCs wird in der RFC 2500 spezifiziert.
STD-Nummern
Mehr Information und vor allem alle RFCs und STDs finden Sie im Internet unter den folgenden Adressen: www.faqs.org www.rfc-editor.org
RFCs im Internet
Im Buch wird an vielen Stellen auf die zum Thema passende RFC hingewiesen.
3.2.4
Internetprotokolle im Detail
In diesem Abschnitt werden die Protokolle der Internet-Protokollfamilie näher betrachtet. Dabei stehen vor allem die Protokolle im Mittelpunkt, die aus Sicht der Webserververwaltung wichtig sind.
67
3 Das Internet und seine Dienste Tabelle 3.2: Übersicht über die behandelten Internet-Protokolle
Protokoll
Funktion
Seite
IP
Adressierung und Transport der Datenpakete (keine Fehlerkorrektur)
68
TCP
Gesicherter Transport der Daten mit Fehlerkorrektur
72
Andere wichtige Protokolle der Schicht Vier (Anwendung) der Internet-Protokollfamilie wie SMTP oder HTTP werden eingehend in Abschnitt Höhere Netzwerkprotokolle Höhere Netzwerkprotokolle ab Seite Höhere Netzwerkprotokolle behandelt. Internet Protocol (IP) Das meistverwendete Protokoll auf der Schicht Zwei (Netzwerk) der Internet-Protokollfamilie ist IP. Das wesentliche Merkmal dieses Protokolls besteht darin, dass jeder Netzwerkknoten (jedes Endgerät im Netzwerk) direkt angesprochen werden kann. Zu diesem Zweck verfügt jeder Knoten über eine IP-Adresse. Zustellung ohne Fehlerkorrektur
IP ist für die Zustellung der Datenpakete verantwortlich, hat jedoch keine Mechanismen zur Fehlerkorrektur. Werden TCP-Datagramme transportiert, stellt TCP sicher, dass auch alle Daten garantiert fehlerfrei übertragen werden. Bei UDP-Datagrammen hingegen steht die fehlerfreie Übertragung zugunsten einer maximalen Performance nicht im Vordergrund.
IP-Fragmentierung
IP zerlegt die Datenpakete der darüber liegenden Schicht in IP-Pakete, welche ihrerseits aus dem IP-Header und dem Datenteil bestehen.
MTU-Parameter
Für den Datentransport im Netzwerk besitzt IP die Fähigkeit, die Pakete in kleinere Einheiten aufzuteilen (fragmentieren). Das kann notwendig sein, wenn das zu übertragene Paket die maximale IP-Paketgrößenbeschränkung eines Netzwerkgerätes (beispielsweise eines IP-Routers) überschreitet. Dieser Parameter wird auch mit MTU (Maximum Transmission Unit) bezeichnet.
Sicherheitsrisiko IP-Fragmente
Fragmentierte IP-Datenpakete können ein nicht unerhebliches Sicherheitsrisiko darstellen. Die einzelnen Fragmente können manipuliert den Zielhost erreichen. Geschickte Hacker sind in der Lage die Fragmente so zu bilden, dass diese nicht direkt aneinander passen, sondern gemeinsam überlappende Bereiche enthalten. Beim Zusammensetzen im Zielsystem kann es dann durchaus dazu kommen, dass sich das Betriebssystem ins Nirwana verabschiedet. Heute gängige Firewall-Systeme weisen IP-Fragmente in der Regel ab.
Path MTU Discovery
Durch den Einsatz der „Path MTU Discovery“-Technologie in Netzwerksystemen wie Routern wird die IP-Fragmentierung überflüssig. Dabei handeln die beteiligten Systeme untereinander aus, wie groß die maximale Paketgröße (MTU) sein darf. Der eine Host startet dann Übertragungsversuche mit steigenden IP-Paketgrößen (Fragmentierungsflag: „Nicht fragmentieren“). Dies geschieht solange, bis er eine ICMP-Fehlermeldung „Paket zu groß“ zurückerhält.
68
Die Internet-Protokolle und ihr Ursprung
Die meisten IP-Pakete im Netzwerk werden an einen bestimmten Zielknoten geschickt. Dies wird auch mit Unicast bezeichnet. Gehen IP-Pakete an alle erreichbaren Knoten, spricht man von Broadcast. Mit der BroadcastAdresse 192.168.100.255 erreichen Sie alle Hosts im angenommenen Netzwerk 192.168.100 (Netzmaske 255.255.255.0). Soll eine Nachricht an die über Router verbundenen Netzwerke 192.168.100, 192.168.101 und 192.168.102 gehen, ist die Broadcast-Adresse 192.168.255.255.
IP-Broadcast
Über IP-Multicast lassen sich bestimmte Hosts adressieren. Dazu werden Adressen aus dem IP-Bereich 224.0.0.0 bis 239.255.255.255 gewählt und zur Bildung von so genannten Multicast-Gruppen benutzt. Eine einzelne IPAdresse aus diesem Bereich steht dann für eine Multicast-Gruppe (beispielsweise 224.1.1.22). Über IP-Multicast-Pakete werden nur IP-Protokolle übertragen, die nicht sitzungsorientiert (wie etwa TCP; siehe nächster Abschnitt) arbeiten. Das sind beispielsweise UDP oder Routingprotokolle wie IGMP und OSPF.
IP-Multicast
Über UDP lassen sich Datenströme übertragen, bei denen es auf einen absolut fehlerfreien Transport nicht ankommt. Bei der Verwendung von IP-Multicast anstelle von Unicast lässt sich die verfügbare Bandbreite für eine höhere Anzahl von Nutzern wesentlich effektiver nutzen. Statt Einzelverbindungen mit dem entsprechenden Overhead aufzusetzen, können die den entsprechenden Multicast-Gruppen zugewiesenen Hosts den Datenstrom direkt empfangen. Dabei ist die Vorgehensweise mit dem des Abonnierens eines bestimmten Fernsehkabelkanals vergleichbar. Eine Kabelgesellschaft speist eine Reihe von Kanälen in das Kabel ein, die jeweils nur von verschiedenen Gruppen von Kunden empfangen werden können. Damit eignet sich IP-Multicast insbesondere für die Implementierung von Audio- und Video-Streaming (beispielsweise für Konferenzsysteme). Das ist momentan auch die häufigste Anwendung im Internet. Die heute gebräuchliche und jedem bekannte Form einer IP-Adresse besteht aus vier dezimalen Zahlen, die jeweils durch einen Punkt voneinander getrennt sind. Hier kann sich in Zukunft einiges ändern, sodass sich eine nähere Betrachtung der IP-Adressversionen lohnt.
IP-Adressversionen
왘 Internet Protocol Version 4
Im derzeitigen Standard IPv4 (Internet Protocol Version 4) besteht die IPAdresse aus vier Oktetts. Jedes Oktett entspricht einem Byte (0–255). Zur besseren Lesbarkeit werden sie dezimal ausgeschrieben und durch Punkte getrennt (beispielsweise 195.145.212.138). Theoretisch lassen sich damit 256" = 2! = 4.294.967.296 verschiedene Adressen darstellen. In der Realität verbleiben aber weniger direkt im Internet nutzbare Adressen übrig, da ein Teil davon für die nichtöffentliche Verwendung reserviert ist (siehe auch Abschnitt Spezielle IP-Adressen ab Seite 71). Letztlich bleibt festzustellen, dass der einmal mit IPv4 definierte Adressraum langsam knapp wird und auf absehbare Zeit nicht mehr ausreicht.
Heutiger Standard
69
3 Das Internet und seine Dienste 왘 Internet Protocol Version 6 Zukunft
Mit IPv6 wird die Größe einer IP-Adresse von 4 auf 16 Oktetts erweitert. Der derzeitigen Adressenverknappung mit IPv4 kann damit massiv entgegengetreten werden. Es können jetzt 2128 statt 232 Adressen gebildet werden. Dies entspricht einer Menge von etwa 3,4 x 1038 Computern oder anderen Systemen, die mit einer eindeutigen IP-Adresse versorgt werden könnten, was auch für die weitere Zukunft ausreichend dimensioniert ist.
Erweiterte Möglichkeiten
Neben einer grundsätzlich höheren Anzahl an verfügbaren Adressen bringt IPv6 auch weitere Möglichkeiten mit. So lassen sich beispielsweise unterschiedliche Datentypen spezifizieren (wie etwa Video- oder TonÜbertragungen), die gegenüber weniger zeitkritischen Datentypen (zum Beispiel E-Mails) bevorzugt bearbeitet werden. Damit können Echtzeitanwendungen besser mit der nötigen Bandbreite ausgeführt werden. Diese neue IP-Version steht kurz vor der Praxiseinführung. Erste Geräte unterstützen es bereits, der Großteil des Internets läuft aber noch unter der alten Version 4. Alle folgenden Ausführungen im vorliegenden Buch sind der derzeitigen Praxis angepasst und beschränken sich auf die aktuelle IP-Version 4.
Subnetze und Netzwerkklassen
Tabelle 3.3: Netzwerk- und Hostadresse in dezimaler und binärer Form
Jede IP-Adresse wird in einen Netzwerk- und einen Hostbereich aufgeteilt. Dafür wird eine so genannte Subnetzmaske eingerichtet, die angibt, wie viele Bits einer Adresse zum Netz und wie viele zum Rechner gehören. Hier ein Beispiel in dezimaler und binärer Notation für die IP-Adresse 192.168.100.38 mit der Subnetzmaske 255.255.255.0. Netzwerkbereich
Hostbereich
Dezimal
Binär
Dez Binär
Subnetz- 255.255.255 maske
11111111.11111111.11111111
0
00000000
IPAdresse
11000000.10101000.01100100
38
00100110
192.168.100
Mit der Subnetzmaske 255.255.255.0 können in einem Netzwerk bis zu 254 Rechnern adressiert werden. Das ist für kleinere Netzumgebungen ausreichend. Die Null ist als reguläre Host-Adresse nicht zulässig (kennzeichnet das Netzwerk), ebenso die 255. Die 255 wird als Broadcast-Adresse benutzt, wenn alle Hosts angesprochen werden sollen (siehe auch Seite IP-Broadcast). Subnetzmaske
70
Die Subnetzmaske besteht generell aus einem durchgängigen Bereich von binären Einsen. Es hat sich eingebürgert, die Einsen zu zählen und in der Kurzform /n hinter der Netzwerkadresse aufzuschreiben. Eine Angabe von 192.168.100.0/24 bedeutet also Netzadressen im Bereich von 192.168.100.x mit einer Subnetzmaske von 255.255.255.0 (24 Einsen).
Die Internet-Protokolle und ihr Ursprung
Über die Aufsplittung der IP-Adresse in den Netzwerk- und den Hostbereich kann der Host einfach feststellen, ob diese im eigenen (Sub)-Netz oder in einem anderen liegt. In unserem Beispiel würde dann die Adresse 192.168.101.56 einen Host im (anderen) Subnetz 192.168.101 adressieren, während 192.168.100.78 im gleichen Netz zu finden ist. Eine IP-Adresse enthält im Netzwerkbereich eine Netzwerkkennung, die die verwendete Netzwerkklasse angibt. Es werden fünf verschiedene Netzwerkklassen (A bis E) unterschieden, wobei jeder Klasse eine bestimmte Standard-Subnetzmaske zugeordnet ist.
Die Netzwerkklassen
Ein Klasse-A-Netz hat standardmäßig die Subnetzmaske 255.0.0.0. Das erste Bit der Adresse ist auf 0 gesetzt.
Klasse A
Ein Klasse-B-Netz hat die Subnetzmaske 255.255.0.0. Die ersten beiden Bits der Adresse sind auf 10 gesetzt.
Klasse B
Ein Klasse-C-Netz hat die Subnetzmaske 255.255.255.0. Die ersten drei Bits der Adresse sind hier auf 110 gesetzt.
Klasse C
Daneben gibt es noch Klasse-D- (beginnt mit 1110) und Klasse-E-Netze (beginnend mit 1111). Klasse-D-Adressen dienen zur Bildung von MulticastGruppen (siehe Seite IP-Broadcast), Klasse-E-Netze sind für Spezialfälle reserviert.
Klasse D und E
Spezielle IP-Adressen Es gibt eine Reihe von IP-Adressen, die nicht im öffentlichen Internet oder generell nicht im Netzwerk selbst zum Einsatz kommen und für spezielle Einsatzzwecke reserviert sind. Eine Broadcast-Adresse teilt dem Rechner mit, wie er alle Rechner in seinem Netz auf einmal erreichen kann (so genanntes Broadcast). Dabei werden einfach alle Bits im Rechnerbereich der Adresse auf Eins gesetzt (allgemeingültige Definition für ALL-ONE-Broadcasts). Die Standard-Broadcast-Adresse für einen Rechner aus dem Netz 192.168.100.0/24 wäre demnach 192.168.100.255. Sie können deshalb Adressen, die auf 255 enden, nicht als reguläre Netzwerkadresse angeben.
BroadcastAdressen
Mit einer Adresse, die im ersten Oktett eine 127 enthält, adressiert sich jeder Rechner selbst (Loopback), was zu Tests der Netzwerksoftware benutzt werden kann. Eine solche Adresse ist daher niemals auf dem Kabel zu sehen.
Loopback
Adressen aus den Klasse-D- und -E-Netzen sind für bestimmte Zwecke reserviert. Die Adressen 224.x.x.x bis 255.x.x.x dürfen deshalb nicht für die normale Adressierung von Hosts benutzt werden. Genauere Informationen dazu stehen im RFC 2236.
Reservierte Adressen
Private Netzwerkadressen In jeder IP-Netzklasse (siehe vorhergehender Abschnitt) gibt es Adressbereiche, die nicht im Internet selbst zulässig sind und somit für die Implementierung lokaler Netzwerke genutzt werden können.
71
3 Das Internet und seine Dienste Tabelle 3.4: Private Netzwerkadressen je Netzklasse
NAT
Klasse
Anz. Subnetze
Nutzbare Adressbereiche
A
1
10.0.0.0 bis 10.0.0.255
B
16
172.16.0.0 bis 172.31.255.255
C
256
192.168.0.0 bis 192.168.255.255
Für die Anbindung lokaler Netzwerke an das Internet, in denen diese privaten IP-Adressen verwendet werden, kommt NAT (Network Adress Translation) zum Einsatz. Dabei werden die Anfragen der Clients, die über eine private IP verfügen, in die jeweilige öffentliche IP-Adresse des Internet-Routers übersetzt. Dieses Verfahren wird auch Masquerading genannt. NAT kommt beispielsweise in Internet-Routern zum Einsatz, die lokale Netzwerke mit dem Internet verbinden. IP-Adressvergabe im Internet Jede öffentliche IP-Adresse ist weltweit eindeutig und wird von der IANA an die drei Organisationen APNIC, ARIN und RIPE vergeben, die diese dann wiederum an Endkunden (Firmen oder Internetprovider) verteilen. Weitere Informationen gibt es bei den entsprechenden Organisationen unter folgenden Adressen: 왘 IANA (Internet Assigned Numbers Authority):
www.iana.net 왘 APNIC (Asia-Pacific Network Information Center):
www.apnic.net 왘 ARIN (American Registry for Internet Numbers):
www.arin.net 왘 RIPE NCC (Réseaux IP Europeens):
www.ripe.net
Generell bleibt festzuhalten, dass jegliche Verwendung von IP-Adressen bei direkt am Internet angeschlossenen Computern oder anderen Netzwerkgeräten sich nach diesen Bestimmungen zu richten hat. Für den Aufbau lokaler Netzwerke empfiehlt sich im Regelfall die Einrichtung von IP-Adressen aus dem nichtöffentlichen (privaten) Adressbereich (siehe vorhergehender Abschnitt). Transmission Control Protocol (TCP) Verbindungsorientiert mit Fehlerkorrektur
72
Dieses Protokoll ist das meistbenutzte der Schicht Drei (Transport) der Internet-Protokollfamilie. Es arbeitet verbindungsorientiert und ist in der Lage, eine Fehlerkorrektur durchzuführen. Eine Verbindung wird dabei über Ports zwischen Sender und Empfänger hergestellt (siehe auch Abschnitt Port- und Protokollnummern auf Seite 75). Damit ist auch ein gleichzeitiges Senden und Empfangen, eine so genannte vollduplexe Verbindung, möglich.
Die Internet-Protokolle und ihr Ursprung
Für den Aufbau einer TCP-Verbindung spielen das ACK- und das SYN-Flag eine entscheidende Rolle. So ist beim ersten TCP-Paket das ACK-Flag stets auf 0 gesetzt. Mit einem Handshake über drei Datenpakete wird die Verbindung aufgebaut.
Aufbau einer TCPVerbindung
Zum Beenden der Verbindung werden das RST- oder das FIN-Flag benutzt. Ein gesetztes RST zeigt einen Verbindungsfehler an, während über FIN (wird sowohl von Empfänger als auch vom Sender im jeweils letzten Paket gesetzt) ein normaler Verbindungsabbau durchgeführt wird.
Beenden der TCPVerbindung
Über die Sequenz- und Bestätigungsnummern wird dafür gesorgt, dass alle Datenpakete in der richtigen Reihenfolge beim Empfänger zusammengesetzt und doppelt versandte Pakete ignoriert werden können. Beide Hosts generieren unabhängig voneinander eine eigenständige Sequenznummer, die sie sich beim Aufbau der Verbindung übermitteln (wenn SYN gesetzt ist). Danach werden die Sequenznummern jeweils erhöht (um die Anzahl der Datenbytes im Paket). So wird sichergestellt, dass die Pakete beim Empfänger in der richtigen Reihenfolge wieder zusammengesetzt werden können.
Kontrolle der Paketreihenfolge
Für die Sicherstellung eines ordnungsgemäßen Datentransfers ist allein die Kontrolle der richtigen Reihenfolge der Pakete nicht ausreichend. Über die Prüfsumme kann daher ermittelt werden, ob das Datenpaket selbst korrekt übertragen worden ist. Die Prüfsumme wird aus der Summe der 16-BitWörter des TCP-Pakets berechnet, wobei bestimmte IP-Headerinformationen mit einbezogen werden.
Prüfsumme
Port- und Protokollnummern Für die eindeutige Identifizierung der Protokolle und Ports bei der Netzwerkkommunikation über IP, TCP und UDP gibt es die so genannten Portund Protokollnummern. Vor der Explosion der Protokolle (es gibt inzwischen Hunderte solcher Kombinationen aus Protokollen und Ports), wurden diese in der RFC 1700 geführt. Da RFCs keine Versionsnummer besitzen und bei jeder Änderung durch eine neue ersetzt werden, würde dies zu einer Inflation von RFCs führen. Die für die Nummernvergabe zuständige Organisation IANA verwaltet deshalb die Nummern heute direkt auf ihrer Website: http://www.iana.org
Ports Damit ein Rechner gleichzeitig mehrere Verbindungen (Multiplexing) bearbeiten kann, müssen diese unterschieden werden. Dazu bedient sich das TCP der Ports. Jeder Anwendung, die das TCP benutzen will, wird ein Port zugeordnet. Es gibt 65.535 verschiedene Ports, fortlaufend nummeriert. Dabei gelten folgende Grundsätze:
Multiplexing
왘 Ein Paar aus IP-Adresse und Port wird Socket genannt. 왘 Eine Verbindung zwischen zwei Rechnern ist wiederum eindeutig durch
zwei Sockets definiert.
73
3 Das Internet und seine Dienste 왘 Ein Rechner kann mehrere TCP-Verbindungen gleichzeitig bearbeiten.
Dafür werden verschiedene Ports definiert. Dieser Vorgang wird als „Multiplexing“ bezeichnet. Eine Portbezeichnung wird normalerweise hinter einem Doppelpunkt an die IP-Adresse oder den DNS-Namen gehängt, beispielsweise wie folgt: 192.168.0.101:80. Ports
Das Port-Konzept lässt sich in etwa mit einer Telefonnummer vergleichen: Der Netzwerkteil einer Internet-Adresse entspricht der Vorwahl, der HostTeil der eigentlichen Telefonnummer und der Port schließlich einer Nebenstellennummer. Dabei wird eine TCP-Verbindung generell eindeutig durch die beteiligten Sockets definiert (Sender und Empfänger). Es kann keine zwei identischen Socket-Paare zur gleichen Zeit geben. Der Sender bestimmt eine Portnummer per Zufallsgenerator. Damit ist es beispielsweise möglich, dass von einem Rechner zwei Telnet-Verbindungen zu dem gleichen Zielrechner existieren. In einem solchen Fall unterscheiden sich dann jedoch die einzelnen Portnummern des Client-Rechners. Beim Verbindungsaufbau leitet die Anwendungsschicht das Datenpaket mit der Internet-Adresse des Servers und dem Port 21 an die Transportschicht weiter. Da TCP stromorientiert sendet, verläuft die Übertragung der Bytes in der gleichen Reihenfolge vom Client zum Server und vermittelt der Anwendungsschicht das Bild eines kontinuierlichen Datenstroms. Auf den meisten Systemen sind die Ports über 1.024 für jede Anwendung offen, während die Ports 1 – 1.024 nur Systemprozessen (oder Anwendungen, die über entsprechende Privilegien verfügen) zur Verfügung stehen. Die folgende Tabelle zeigt die wichtigsten Ports.
Tabelle 3.5: Einige wichtige Portnummern
Dienst
Port
Erklärung
ftp-data
20
File Transfer [Default Data]
ftp
21
File Transfer [Control]
telnet
23
Telnet
Smtp
25
Simple Mail Transfer
domain
53
Domain Name Server
finger
79
Finger
www-http
80
World Wide Web HTTP
110
Post Office Protocol – Version 3
pop3
74
uucp-path
117
UUCP Path Service
nntp
119
Network News Transfer Protocol
Ntp
123
Network Time Protocol
netbios-ns
137
NETBIOS Name Service
netbios-dgm
138
NETBIOS Datagram Service
Die Internet-Protokolle und ihr Ursprung
Dienst
Port
Erklärung
netbios-ssn
139
NETBIOS Session Service
imap2
143
Interim Mail Access Protocol v2
Irc
194
Internet Relay Chat Protocol
Ipx
213
IPX
imap3
220
Interactive Mail Access Protocol v3
Uucp
540
uucpd
Socket ist ein im Zusammenhang mit TCP/IP häufig verwendeter Begriff, der die Kombination aus Internet-Adresse und Portnummer bezeichnet. Innerhalb der Transportschicht werden bestimme Ports zur Adressierung verwendet. Sowohl UDP als auch TCP verwenden Port-Adressen, um Daten an das betreffende Programm (Protokoll) der Anwendungsschicht zu senden, wobei beide teilweise unterschiedliche Dienste für die gleiche Portnummer vermitteln.
Socket
Protokollnummern Im Feld HEADER des IP-Datenpakets finden Sie die Nummer des nächst höheren Protokolls, an das die Daten weitergeleitet werden sollen. Diese Nummern sind für alle Protokolle der Internet-Protokollfamilie definiert. Die folgende Abbildung zeigt als Beispiel eine Datei PROTOCOL eines Windows 2000 Systems. # [Alias...] [#] ip 0 IP # Internet Protocol icmp 1 ICMP # Internet Control Message Protocol ggp 3 GGP # Gateway-Gateway Protocol tcp 6 TCP # Transmission Control Protocol egp 8 EGP # Exterior Gateway Protocol pup 12 PUP # PARC Universal Packet Protocol udp 17 UDP # User Datagram Protocol hmp 20 HMP # Host Monitoring Protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "Reliable Datagram" Protocol rvd 66 RVD # MIT Remote Virtual Disk Listing 3.1: Inhalt der Datei Protocol
Diese Datei ist eine normale ASCII-Textdatei und kann mit dem Editor geöffnet werden.
75
3 Das Internet und seine Dienste
3.3
Höhere Netzwerkprotokolle
Die in den folgenden Abschnitten behandelten Protokolle arbeiten auf Ebene der Anwendungsschicht (Schicht Vier der Internet-Protokollfamilie). Dabei werden hier die Protokolle näher behandelt, die im Zusammenhang mit dem Einsatz von Webdiensten eine besondere Rolle spielen. Tabelle 3.6: Übersicht über die behandelten höheren Protokolle
Protokoll
Bezeichnung
Seite
HTTP
Hypertext Transfer Protocol
76
FTP
File Transfer Protocol
81
SMTP
Simple Mail Transfer Protocol
92
NNTP
Network News Transfer Protocol
96
Weitere Hinweise zum Schichtenmodell der Internet-Protokollfamilie finden Sie auch im Abschnitt Das ISO/OSI-Modell und die Internet-Protokolle Das ISO/OSI-Modell und die Internet-Protokolle ab Seite Das ISO/OSI-Modell und die Internet-Protokolle. Die hier vorgestellten Protokolle der höheren Schichten arbeiten zeilenorientiert. Das Ende eines Kommandos wird also spätestens durch das Senden eines Zeilenvorschubs angezeigt. Der normale Ablauf geht davon aus, dass der Server an dem entsprechenden Port auf Kommandos hört (er lauscht). Trifft ein Kommando ein, interpretiert er es und sendet seinerseits eine entsprechende Reaktion. Manche Protokolle, wie beispielsweise FTP, interpretieren schon den erfolgreichen Verbindungsaufbau als Kommando – der Server reagiert dann sofort mit einer Begrüßung.
3.3.1
Hypertext Transfer Protocol (HTTP)
HTTP (Hypertext Transfer Protocol) dient der Kommunikation mit Webservern. Es gibt derzeit zwei Versionen, 1.0 und 1.1. Das modernere 1.1 steht allerdings nicht allen Servern zur Verfügung. Auf Seiten der Browser dominiert inzwischen HTTP 1.1, denn alle Browser ab Version 4 beherrschen dieses Protokoll. Der Internet Information Server 5 (IIS 5) beherrscht die Version 1.1 vollständig. Der IIS 5 ist die Basis für den Einsatz der FrontPage 2002-Erweiterungen unter Windows 2000. RFC 1945
HTTP 1.0 wurde im Mai 1996 in der RFC 1945 veröffentlicht, schon im August desselben Jahres folgte HTTP 1.1. Für das neuere Protokoll stand auch in 1999 noch kein eigenes RFC zur Verfügung, nur ein Draft. Trotz der langen Zeit (für Internet-Verhältnisse) und den enormen Vorteilen von HTTP 1.x sind immer noch Server mit der Entwicklungsversion 0.9 im Einsatz.
Verbindungsloses Protokoll
Bei HTTP handelt es sich, wie bei Finger, Telnet und Echo auch, um ein verbindungs- oder statusloses Protokoll. Server und Client nehmen also nie einen besonderen Zustand ein, sondern beenden nach jedem Kommando den
76
Höhere Netzwerkprotokolle
Prozess komplett, entweder mit Erfolg oder mit einer Fehlermeldung. Es obliegt dem Kommunikationspartner, darauf in angemessener Weise zu reagieren. Protokollaufbau HTTP-Kommandos können aus mehreren Zeilen bestehen. Die erste Zeile ist immer die Kommandozeile. Daran angehängt kann ein Message-Header folgen. Der Header enthält weitere Parameter, die das Kommando spezifizieren. So kann ein Content-Length-Feld enthalten sein. Steht dort ein Wert größer als 0, folgen dem Header Daten. Die Daten werden also gleich zusammen mit dem Kommando gesendet, man spricht dann vom Body der Nachricht. HTTP versteht im Gegensatz zu SMTP den Umgang mit 8-Bit-Werten. Binärdaten, wie Bilder oder Sounds, müssen nicht konvertiert werden.
Header Body
Folgen dem HTTP-Kommando und den Header-Zeilen zwei Leerzeilen (Zeilenwechsel „\n“), so gilt das Kommando als beendet. Kommandos mit Body haben kein spezielles Ende-Zeichen, das Content-Length-Feld bestimmt, wie viele Bytes als Inhalt der Nachricht eingelesen werden. Ein HTTP-Kommando hat immer folgenden Aufbau: METHODE ID VERSION
Aufbau eines HTTP-Kommandos
Mit METHODE wird das Kommando selbst bezeichnet. Die folgende Tabelle zeigt die HTTP-Kommandos auf einen Blick. Name
Beschreibung
DELETE
Ressource löschen
GET
Ressource anfordern
HEAD
Header der Ressource anfordern
LINK
Verknüpfung zweier Ressourcen beantragen
OPTIONS
Optionen des Webservers erfragen
POST
Daten an einen Serverprozess senden
PUT
Ressource auf dem Webserver ablegen
TRACE
Kommando zurückschicken lassen
UNLINK
Verknüpfung zwischen Ressourcen löschen
Tabelle 3.7: Die HTTPKommandos
Beachten Sie, dass die Kommandos unbedingt in Großbuchstaben geschrieben werden müssen, exakt wie in Tabelle 3.7: Die HTTP-Kommandos gezeigt. Die ID einer Ressource kann beispielsweise eine Adresse oder ein Dateiname sein: GET index.htm HTTP/1.0
Dieses Kommando fordert die Datei INDEX.HTM an.
77
3 Das Internet und seine Dienste
Statuscodes Die Antwort auf ein Kommando besteht im Senden eines Statuscodes. Dem Statuscode folgen optionale Felder und, bei der Übertragung von Ressourcen, die Daten. Die Statuszeile hat folgenden Aufbau: VERSION STATUSCODE STATUSTEXT
Der Statuscode ist eine dreistellige Ziffer, von denen die erste (Hunderter) die Zuordnung zu einer bestimmten Gruppe zeigt. In der Referenz finden Sie eine ausführliche Beschreibung aller Statusmeldungen; Tabelle 3.8 zeigt eine Übersicht der wichtigsten. Tabelle 3.8: Statuscodes einer HTTP-Antwort
Statuscode
Beschreibung
200
Kommando erfolgreich
201
Ressource wurde erstellt
202
Authentifizierung akzeptiert
204
Kein Inhalt oder nicht angefordert
301
Ressource am anderen Ort
302
Ressource nicht verfügbar (temporär Zustand)
304
Ressource wurde nicht verändert (steuert Proxy)
400
Syntaxfehler
401
Keine Autorisierung
403
Nicht öffentlicher Bereich
404
Nicht gefunden (der berüchtigste HTTP-Fehler!)
500
Serverfehler, Fehlfunktion
501
Kommando nicht implementiert
502
Feldwert oder URL ungültig (nur Proxy)
503
Dienst nicht verfügbar
Die Einteilung in Gruppen genügt oft für die Programmierung: 왘 2xx. Kommando erfolgreich 왘 3xx. Weitere Reaktion erforderlich 왘 4xx. Fehler, Wiederholung mit anderen Daten sinnvoll 왘 5xx. Serverfehler, Wiederholung zwecklos
Der HTTP-Message-Header MIME-Standard
78
An ein Kommando oder an die Statuszeile können weitere Felder angehängt werden. Der Aufbau lehnt an den MIME-Standard an. Die Header-Felder können in drei Hauptgruppen aufgeteilt werden:
Höhere Netzwerkprotokolle 왘 F. Frage-Felder (Request-Header-Fields) sind nur in Kommandos erlaubt. 왘 A. Antwort-Felder (Response-Header-Fields) kommen nur in der Antwort
(Statusnachricht) vor. 왘 I. Informationsfelder (General-Header-Fields) übertragen alle anderen
Nachrichten, wie Größen und Parameter. Nicht alle Server stellen alle Felder zur Verfügung, teilweise ergeben sich durch die Weiterleitung der Nachrichten an den Nutzer – immerhin empfängt die Daten der Browser – eine erhebliche Sicherheitslücke. Wenn ein Feld mehrfach übertragen werden muss, kann die Angabe der Werte als kommaseparierte Liste oder durch Wiederholung der Feldnamen erfolgen: Header-Field Wert, Wert, Wert ..
oder Header-Field Wert Header-Field Wert Header-Field Wert
Einige Header können untergeordnete (optionale) Informationen enthalten. So kann dem Content-Type der Name der Datei übergeben werden. Diese Elemente werden durch ein Semikolon getrennt: Content-Type: application/pdf; name=orderform.pdf
In der folgenden Tabelle finden Sie alle Header-Felder und die zugehörigen Gruppen („Grp“ in der folgenden Tabelle). Grp
Feldname
Beschreibung
F
Accept
MIME-Typen, die der Client verarbeiten kann
F
Accept-Charset
Bevorzugter Zeichensatz
F
Accept-Encoding
Codierung des Clients
F
Accept-Language
Sprache des Clients
I
Allow
Liste aller erlaubten Kommandos
F
Authorization
Authentifizierung des Clients
I
Content-Disposition
Inhaltsbeschreibung einer MIME-Quelle
I
Content-Encoding
Codierung der Ressource
I
Content-Language
Sprache der Ressource
I
Content-Length
Größe der Ressource (in Byte)
I
Content-Type
MIME-Typ der Ressource
I
Date
Absende- oder Erstellungsdatum
I
Expires
Verfallsdatum der Ressource
F
From
E-Mail-Adresse des Nutzers
Tabelle 3.9: Header-Felder und Feldgruppen
79
3 Das Internet und seine Dienste
Grp
Feldname
Beschreibung
F
Host
Domainname des Webservers
F
If-Modified-Since
Nur dann GET, wenn neueren Datums
I
Last-Modified
Aktualisierungsdatum der Ressource
I
Link
Verknüpfung
A
Location
URL der Ressource (verwendet Redirect)
I
MIME-Version
MIME-Version des Headers
I
Pragma
Allgemeiner Schalter „Name=Wert“
F
Referer
URL der Herkunfts-Ressource
A
Retry-After
Datum der nächsten Verfügbarkeit
A
Server
Name und Version des Webservers
I
Title
Titel der Ressource
U
URI
URI der Ressource
F
User-Agent
Name und Versionsnummer des Browsers
A
WWW-Authenticate
Authentifizierungs-Schema
Im Gegensatz zu anderen Protokollen ist die Länge eines Datenblocks mit Content-Length festgelegt, irgendwelche Begrenzungszeichen gibt es nicht. Beachtenswert ist auch, dass der Server nach dem Verbindungsaufbau keine Antwort sendet. Das erste eintreffende Kommando löst eine Reaktion aus. Darin ist die Ursache zu sehen, wenn die Browser nach der Anforderung eines unerreichbaren Server lange Zeit nicht reagieren. Als „Totsignal“ wird einfach eine vorgegebene Zeit abgewartet, in welcher der Server auf das erste Kommando reagieren sollte. Eine einfache HTTP-Verbindung könnte also folgendermaßen aussehen: Client: (Verbindungsaufbau des Browsers) Server: (keine Antwort) Client: GET /index.htm HTTP/1.0 If-Modified-Since: Wed, 30 Jul 1997 00:00:00 Server: HTTP/1.0 200 Document follows Date: Mon, 18 Aug 1997 23:45:21 GMT+200 Server: IIS 5.0, Microsoft Corporation Content-Type: text/html Last-Modified: Mon, 11 Aug 1997 14:43:13 Content-Length: 7856 JDGGF/(&§=$(?ED`D`?I`... Daten ohne Endekennung
80
Höhere Netzwerkprotokolle
Wenn Header selbst ausgewertet werden, muss das Datumsformat beachtet werden: www, dd MMM YYYY HH:mm:ss GMT+xxx
3.3.2
File Transfer Protocol (FTP)
Nach HTTP ist FTP eines der wichtigsten Internet-Protokolle. Mit FTP haben Sie Zugriff auf Teile des Dateisystems eines Servers. FTP wurde in der RFC 959 definiert und stammt von den Vorläufern TFTP (Trivial File Transfer Protocol, RFC 1350) und SFTP (Simple File Transfer Protocol, RFC 913) ab. TFTP ist kaum noch gebräuchlich, da es sich auf UDP stützt und nicht sicher ist. In der Praxis kommen sie noch bei bestimmten Bootstrap-Protokollen zum Einsatz, die zum Laden von Betriebssystemen über das Netzwerk (so genanntes Remote Boot) verwendet werden.
RFC 959 RFC 1350 RFC 913
FTP kennt eine Vielzahl von Kommandos. Einige grafische FTP-Clients zeigen diese an, wenn die Kommunikation abläuft. Es ist auch durchaus gebräuchlich, FTP-Kommandos direkt an der Konsole einzugeben. Auch FTP ist verbindungslos und jedes Kommando umfasst nur eine Zeile. Tabelle 3.10 zeigt einen Überblick über alle einsetzbaren Kommandos.
Kommando
Parameter (-- = Keine)
Beschreibung
ABOR
--
Transfer abbrechen
ACCT
Kennung
Zugangskennung
ALLO
Dateigröße
Platz auf dem Server beantragen
APPE
Dateiname
Datei an vorhandene anhängen
CDUP
--
Eine Verzeichnisebene höher
CWD
Verzeichnis
Verzeichnis wechseln
DELE
Dateiname
Datei löschen
HELP
Kommando
Hilfe anfordern
LIST
[Verzeichnis]
Liste im Verzeichnis anzeigen
MKD
Verzeichnis
Verzeichnis erstellen
MODE
Modus
Datentransfer-Modus festlegen
NLST
[Verzeichnis]
Einfache Dateiliste
NOOP
--
Verbindung prüfen
PASS
Kennwort
Kennwort des Nutzers
PASV
--
Passiver Datentransfer-Modus
PORT
Port
Adresse und Port festlegen
PWD
--
aktuelles Verzeichnis abfragen
QUIT
--
Verbindung beenden
Tabelle 3.10: FTP-Kommandos
81
3 Das Internet und seine Dienste
Kommando
Parameter (-- = Keine)
Beschreibung
REIN
--
Verbindung neu initialisieren
REST
Kennung
Abgebrochenen Transfer neu starten
RETR
Dateiname
Datei von FTP-Server holen
RMD
Verzeichnis
Verzeichnis löschen
RNFR
Dateiname
Datei umbenennen (siehe RNTO)
RNTO
Dateiname
Neuer Name der Datei
STAT
[Dateiname]
Verbindungsstatus abfragen
STOR
Dateiname
Datei ablegen
STOU
--
Datei mit eindeutigem Namen ablegen
STRU
Struktur
Dateistruktur festlegen (Datei, Datensatz oder Seite)
SYST
--
Betriebssystem des FTP-Servers
TYPE
Typ
Transfer-Typ (ACSII, EBCDIC,...)
USER
Name
Nutzername zur Authentifizierung
Authentifizierung mit FTP Die Authentifizierung ist auf mehreren Wegen möglich. Sicher kennen Sie selbst FTP-Server, die Name und Kennwort verlangen, während andere den anonymen Zugriff erlauben. Für die Anmeldung an einem geschützten Server sind die Kommandos USER, PASS und optional ACCT zuständig. Die Übertragung der Kennwörter erfolgt generell unverschlüsselt. Die unverschlüsselte Übertragung von Kennwörtern bei FTP stellt ein erhebliches Sicherheitsrisiko dar. FTP-Server sollten deshalb nur für nicht besonders schützenswerte Informationen, beispielsweise öffentlich zugängliche Datenbestände, eingesetzt werden. Anonymous-FTP
Für öffentlich zugängliche Daten wird meist ein anonymer FTP-Zugang eingerichtet, der ohne weitere Authentifizierung genutzt werden kann. Dabei ist nur eine bestimmte Konvention für Name und Kennwort einzuhalten, die heute auf fast allen FTP-Serversystemen auf die gleiche Art und Weise implementiert ist. Mit dem folgenden Befehl wird der Wunsch nach einer anonymen Verbindung mitgeteilt: USER anonymous
Das Wort „anonymous“ muss exakt in dieser Schreibweise, mit Kleinbuchstaben, geschrieben werden. Beachten Sie auch, dass alle Kommandos mit Großbuchstaben geschrieben werden müssen. Viele FTP-Clients setzen dies allerdings intern um, sodass der Eindruck entsteht, man könne auch mit
82
Höhere Netzwerkprotokolle
Kleinbuchstaben arbeiten. Wenn Sie selbst mit einen FTP-Client entwerfen, beispielsweise mit ASP, müssen Sie diese Regeln aber kennen. Auch die anonyme Anmeldung verlangt ein Kennwort. Mit folgendem Befehl senden Sie als Kennwort die eigene E-Mail-Adresse: PASS [email protected]
Ob die Adresse korrekt ist oder nicht spielt keine Rolle, es ergeben sich keine Konsequenzen daraus. Der Server schaltet nun die für anonyme Besucher zulässigen Ressourcen frei. Normalerweise werden nur bestimmte Verzeichnisse zum Download freigegeben und grundsätzlich keine Schreibrechte erteilt. Hasardeure mögen dies anders handhaben. Datenverbindung Vielleicht haben Sie schon in Listen mit Portnummern neben FTP auch die Zahl 23 bemerkt. FTP benutzt einen Kanal für die Authentifizierung und Steuerung. Dieser Kanal arbeitet normalerweise auf Port 21. Die Übertragung der Daten findet dann auf einem Datenkanal statt, dem Port 23. Der Sinn ist in der Verbindung zweier FTP-Server zu suchen. Wenn Sie einen Datenabgleich zwischen zwei Servern herstellen, muss ein Server den anderen anrufen. Lauschen aber beide auf Port 21, können entweder nur Daten oder nur Kommandos ausgetauscht werden. Durch den zweiten Port bleibt auch während einer langen Datenübertragung der Austausch von Kommandos möglich. Ein wichtiger Parameter ist die Übertragung des Transfer-Typs. Damit wird das Datenformat festgelegt, in dem die Übertragung der Daten erfolgt. Tabelle 3.11 zeigt die Typen im Detail.
Kürzel
Option (-- = keine)
Beschreibung
A
N|T|I
ASCII, Non-Print, TelNet, Carriage Control
E
N|T|I
EBCDIC, Non-Print, TelNet, Carriage Control
I
--
binär, 8-Bit
L
n
binär, n Bit
Transfer-Typen
Tabelle 3.11: DatentransferTypen für FTP
Zwischen dem Transfer-Typ und der Option muss ein Leerzeichen stehen. Für den normalen Einsatz genügt das Umschalten zwischen A und I. Wenn Sie alle Dateien mit I übertragen, gibt es am wenigsten Probleme. Die Option A überträgt bei den meisten Servern nur 7-Bit-ASCII, sodass Binärdateien völlig verstümmelt werden. Dazu gehören aber auch Textdateien aus einer Textverarbeitung wie Word, die für ihre Steuerzeichen den gesamten Zeichensatz verwenden. Standardmäßig steht der Transfer-Typ bei vielen FTP-Servern nach der Etablierung einer neuen Verbindung aber auf A.
83
3 Das Internet und seine Dienste
Datenstruktur Die Datenstruktur ist ein weiteres Merkmal, das vor einer Übertragung eingestellt werden muss. Die Optionen sind: 왘 F. Datei (File) 왘 R. Datensatz (Record) 왘 P. Seite (Page)
R und P sind nur selten implementiert, beispielsweise bei FTP-fähigen Datenbanken. Die Einstellung erfolgt mit STRU F Transfer-Modus
Weiter verbreitet ist dagegen die Angabe des Transfer-Modus mit dem Kommando MODE. Auch hier sind drei Optionen möglich: 왘 S. Stream-Mode für kontinuierliche Übertragung. 왘 B. Block-Mode für die Zerlegung in Blöcke mit eigenen Headern. 왘 C. Compress-Mode für die Komprimierung von Daten (RLE).
Die Standardeinstellung lautet: MODE S Passiver Modus
Normalerweise liegt die Kontrolle des Verbindungsaufbaus beim Server. Wenn ein FTP-Client eine Verbindung aufbaut, werden nur die IP-Adresse und Port-Nummer übertragen. Der FTP-Server speichert diese Werte, beendet die anfordernde Verbindung und baut dann seinerseits eine neue auf. Das funktioniert, solange der Weg zwischen Server und Client in beiden Richtungen frei ist. Oft sitzen die Clients jedoch hinter einem Gateway oder einer Firewall. Dann erreicht der Server den Client mit der übergebenen Adresse nicht mehr. Um dieses Problem zu umgehen, gibt es den passiven Modus. Mit dem Kommando PASV teilt der Client mit, dass der Server passiv kommunizieren soll. Der Server sendet nun seinerseits IP-Adresse und Portnummer für die Kommunikation und der Client baut die Verbindung in der gewünschten Form auf. FTP-Statuscodes Auch FTP verwendet einen Statuscode zur Beantwortung von Anfragen. Wie bei HTTP und SMTP genügt es oft, nur die erste Ziffer auszuwerten, um Fehlerzustände oder normal verlaufende Operationen zu erkennen: 왘 1. Neutrale Antwort, unaufgeforderte Meldung. 왘 2. Positive Antwort, Kommando erfolgreich verarbeitet. 왘 3. Positive Antwort mit der Bitte um weitere Informationen. 왘 4. Fehler, das Kommando kann zeitweilig nicht beantwortet werden,
Wiederholung möglich.
84
Höhere Netzwerkprotokolle 왘 5. Fehler, Wiederholung zwecklos, Kommando falsch oder Server nicht
verfügbar. Die mit 1xx beginnenden Statuscodes gibt es nur bei FTP. Sie sind besonders schwierig zu verarbeiten, denn die Absendung durch den Server kann zu jeder Zeit erfolgen, also auch während der Datenübertragung oder zwischen anderen Kommandos und Meldungen. Sie ersetzen jedoch nicht die normalen Antworten. Jedes Kommando wird garantiert mit mindestens einem 2xx – 5xx-Kommando beantwortet. Folgende Kommandos können von 1xx-Statuscodes begleitet werden: APPE, LIST, NLST, REIN, RETR, STOR, STOU
Der folgende Abschnitt zeigt den Ablauf einer typischen Kommunikation zwischen Client und Server mit dem Protokoll FTP: Client: Server: Server: Server: Client: Server: Client: Server: Client: Server: Client: Server: Client: Server: Client: Server: Client: Server: Server: Server: Client: Server:
Ablauf der Kommunikation
(Verbindungsaufbau mit FTP-Client) 220-Service ready (optional Informationen zur Authentifizierung) 220-Service ready USER anonymous 331 guest loggin ok, send e-mail as password PASS [email protected] 250 guest login ok, access restrictions apply CWD ftp/download/ 250 CWD command succesfull PWD 257 "ftp/download/" is current directory TYPE I 200 TYPE set to I PASV 227 Entering Passive Mode (62,208,3,4,4,23) RETR servicepack5.exe 150 Opening Data Connection (sendet Daten) 226 Transfer complete QUIT 221 Goodbye
Listing 3.2: Typischer Ablauf einer FTP-Verbindung
Das Beispiel zeigt eine Authentifizierung als anonymer Nutzer, einen Verzeichniswechsel und einen Download einer Datei. Zur Übertragung (im Binärformat) wird außerdem der passive Modus verwendet. Das PORT-Kommando und die Antwort auf PASV enthalten die zu verwendende IP-Adresse und den Datenport. Wie in Listing 3.2 zu sehen war, erfolgt die Angabe als kommaseparierte Liste. Das Format der Liste hat folgenden Aufbau:
IP-Adresse erkennen
IP1, IP2, IP3, IP4, PORT1, PORT2
85
3 Das Internet und seine Dienste
Sie kennen den Aufbau einer IP-Adresse nach folgendem Schema: IP1.IP2.IP3.IP4:PORT1,PORT2
Jede Zahl umfasst ein Byte. Da Portnummern 16-Bit breit sind, müssen für die Angabe zwei Byte angegeben werden. Die Adresse 1024 würde also als 4,0 geschrieben werden. Zur Umrechnung multiplizieren Sie einfach das höherwertige Byte mit 256. Umgang mit IPv6Adressen
RFC 1639 Wiederaufnahme der Übertragung
Block-Verfahren
Im Internet herrscht ein zunehmender Mangel an IP-Adressen (siehe auch Abschnitt IP-Adressversionen ab Seite IP-Adressversionen). Deshalb wurde bereits vor einigen Jahren ein neues Adresssystem entworfen. Offensichtlich ist aber ein Teil des Mangels politisch bedingt und so konnte sich IPv6 nicht so schnell wie erhofft durchsetzen. Dennoch sind die Protokolle auf die Umstellung vorbereitet. Da FTP unmittelbar mit IP-Adressen umgeht, ist eine Erweiterung erforderlich. Neu sind die Kommandos LPTR (Long Port) und LPSV (Long Passive). In der RFC 1639 ist die Syntax beschrieben. FTP wird häufig eingesetzt, um große Datenmengen zu übertragen. Dabei kann es leicht zu Leitungsstörungen kommen. Bei direkten Verbindungen zwischen FTP-Servern oder beim Einsatz von ISDN ist die Störanfälligkeit verhältnismäßig gering. Häufiger werden jedoch Nutzer per Modem auf Server zugreifen. Wenn eine Ein MByte große Datei nach 980.000 Byte abreißt, ist dies ausgesprochen ärgerlich. Das Standardverfahren der Datenübertragung, Stream, ist also nur bedingt geeignet. Es ist allerdings auch die schnellste Form der Übertragung. Damit stellen Sie das Block-Verfahren ein: MODE B
Dabei zerlegt der Server die Datei in Blöcke, versieht jeden Block mit einem eigenen Header und sendet sie einzeln an den Client. Reißt die Verbindung ab, kann der Client die schon empfangenen Blöcke speichern und die nach der erneuten Verbindungsaufnahme eintreffenden Blöcke richtig zuordnen. Allerdings unterstützen nicht alle FTP-Server die erweiterten Transfermodi B (Block) und C (Compressed). Die Anforderung der übrigen Blöcke erfolgt mit dem Kommando REST. Probleme mit FTP Unklar: Angabe der Dateigrö ß e bei der Übertragung
86
FTP ist ein sehr altes Protokoll. Die Ausgaben der Kommandos LIST und NLST sind nicht ausreichend standardisiert. Eine Angabe zur Übertragung der Dateilänge gibt es nicht. Intelligente Clients speichern die Angaben des LISTKommandos und geben den Wert dann bei einem nachfolgenden GET an. Ob die Datei tatsächlich im Augenblick der Übertragung diese Größe hat, wissen sie nicht. Dateien und Verzeichnisse können kaum unterschieden werden. Praktisch bleibt der Versuch, sichere Angaben über die Größe der nächsten zu ladenden Datei zu machen, ein Wagnis.
Höhere Netzwerkprotokolle
Alternativen zu FTP gibt es derzeit nicht. Die Nachteile werden zwar von anderen Entwicklungen vermieden, ausreichende Verbreitung fand indes keines der möglicherweise zu diesem Zweck einsetzbaren Protokolle wie LDAP, NDS oder WebNFS.
3.3.3
Protokolle für E-Mail-Verkehr
Das Versenden von E-Mails mit einem SMTP-Server ist auf allen Betriebssystemen Standard. Aus diesem Grund lohnt es sich, einen Blick auf das dabei hauptsächlich genutzte höhere Protokoll zu werfen: das Simple Mail Transfer Protocol. Dieses dient dem Austausch von Mailnachrichten zwischen Clients, die SMTP verwenden, und einem Server, der SMTP zum Empfang und zur Weiterleitung einsetzt. Des Weiteren gibt es noch wichtige Protokolle, die vor allem clientseitig die Art und Weise des Mailempfangs steuern: POP3 und IMAP4. SMTP Der SMTP-Dienst basiert auf RFC 821 und unterstützt darüber hinaus bestimmte Erweiterungen, die unter dem Begriff Extended SMTP (ESMTP) bekannt sind. Heute aktuell ist RFC 2821 (April 2001).
RFC 821 und 2821
ESMTP umfasst eine einheitliche Beschreibung für Erweiterungen von Mailservern. Dabei kann jeder Hersteller eigene Erweiterungen in seine SMTPServerimplementierung einbringen. Ein ESMTP-Server und ein ESMTP-Client können einander erkennen und sich über die verfügbaren erweiterten Funktionen austauschen. Beide, Server wie auch Client, müssen allerdings Abwärtskompatibilität sicherstellen und die grundlegenden SMTP-Befehle (gemäß RFC 821 bzw. neuerdings 2821) beherrschen.
Abwärtskompatibilität sichergestellt
Bei der Beschreibung der SMTP-Funktionen werden im weiteren Text die Begriffe Client und Server benutzt. Genau genommen handelt es sich eigentlich um SMTP-Sender und SMTP-Empfänger, da ein SMTP-Server Mails an einen anderen SMTP-Server senden (weiterleiten) kann. Damit ist dieser dann wiederum der „Client“ bzw. Sender und der andere Server der „Server“ bzw. Empfänger.
SMTP-Client und -Server
Der Benutzer bzw. die Mailanwendung kommuniziert direkt nur mit dem User Agent (UA) genannten Teil des SMTP-Dienstes. Dieser sorgt für die Übernahme der Maildaten und die Weitergabe an den eigentlichen Sendeprozess. Die SMTP-Sender- und Empfängerprozesse werden auch als Message Transfer Agents (MTA) bezeichnet.
UA und MTA
In der folgenden Tabelle finden Sie den minimalen SMTP-Befehlssatz, der durch jeden SMTP-Client und -Server unterstützt wird.
Die SMTPKommandos
87
3 Das Internet und seine Dienste Tabelle 3.12: Minimaler SMTPBefehlssatz
Befehl
Beschreibung
HELO <sender>
Eröffnet die Verbindung von einem SMTP-Client (dem Sender) zum SMTP-Server.
EHLO <sender>
Eröffnet wie HELO die Verbindung von einem ESMTP-Client (dem Sender) zum ESMTP-Server. Dieses Kommando ist deshalb mit in dieser Tabelle aufgenommen worden, da es heute die Standard-Eröffnungsprozedur zwischen Client und Server darstellt.
MAIL FROM: <maddr>
Beginn einer Mail. Geben Sie hier die AbsenderE-Mail-Adresse an.
RCPT TO: <maddr>
Empfänger der Mail. Sie können auch mehrere Empfänger festlegen, indem Sie den Befehl wiederholen.
DATA
Initiiert die Eingabe des Nachrichtentextes; Alles, was Sie jetzt zeilenweise eingeben, wird als Mailtext aufgenommen. Schließen Sie die Eingabe mit einem Punkt „.“ ab, der allein am Beginn einer Zeile ste-
hen muss (genau genommen zwischen zwei CTRLF).
SMTPRückmeldungen
Tabelle 3.13: SMTP-ServerAntwortcodes: Erste Ziffer
QUIT
Beendet die Verbindung zum SMTP-Server.
RSET
Reset. Beendet die Verbindung und die laufende Mailtransaktion.
Der SMTP-Server meldet den Erfolg oder Fehlschlag von Operationen mit dreistelligen Codes. Dabei hat jede Stelle eine bestimmte Bedeutung. Die Bedeutung der ersten Ziffer finden Sie in der folgenden Tabelle: Code
Beschreibung
1xx
Positive vorbereitende Antwort. Diese Codes können nur durch ESMTP-Server zurückgegeben werden und zeigen an, dass das zuvor gesendete Kommando zwar akzeptiert wurde, allerdings weitere Anweisungen benötigt werden, um die Aktion abzuschließen.
2xx
Positive komplette Antwort. Die geforderte Aktion konnte erfolgreich abgeschlossen werden und es kann ein neues Kommando durch den Client ausgelöst werden.
3xx
Positive Zwischenantwort. Das Kommando wurde akzeptiert. Der Server wartet auf weitere Daten, wie beispielsweise beim DATA-Befehl. Hier werden so
lange Eingabedaten (Textzeilen) angenommen, bis sie durch das Zeichen „.“ abgeschlossen werden.
88
Höhere Netzwerkprotokolle
Code
Beschreibung
4xx
Vorläufig negative Antwort. Das Kommando wurde nicht akzeptiert und damit die angeforderte Aktion nicht durchgeführt. Der Fehlerstatus ist allerdings nur temporär. Dies bedeutet, dass zwar die Aktion zunächst fehlgeschlagen ist, aber eine Wiederholung des Kommandos durchaus noch zum Erfolg führen kann.
5xx
Permanente negative Antwort. Das Kommando wurde auch hier nicht akzeptiert, allerdings ist der Fehlerstatus permanent. Eine Wiederholung des Kommandos mit den gleichen Einstellungen führt garantiert wieder zu diesem Fehlercode.
Die folgende Tabelle enthält die Bedeutung der zweiten Ziffer des dreistelligen SMTP-Codes: Code
Beschreibung
x 0x
Syntaxfehler Kennzeichnet Fehlermeldungen, die aufgrund von Syntaxfehlern (falsches oder nicht unterstütztes Kommando etc.) verursacht wurde.
x 1x
Informationen Kennzeichnet Antworten, die Informationen zurückgeben (beispielsweise Statusmeldungen).
x 2x
Verbindung Kennzeichnet Meldungen, die im Zusammenhang mit dem Verbindungs- bzw. Übertragungsstatus stehen.
x 5x
Mailsystem Codes in Bezug zu Meldungen des Mailsystems.
Tabelle 3.14: SMTP-ServerAntwortcodes: Zweite Ziffer
Die dritte Ziffer ermöglicht eine etwas feinere Abstimmung für Meldungen, die durch die zweite Ziffer bestimmt werden. Darauf wird hier nicht näher eingegangen. Abschließend zu diesem Thema finden Sie in der folgenden Tabelle typische SMTP-Codes mit ihren Bedeutungen. Code
Beschreibung
211
Systemstatus oder System-Hilfemeldungen
214
Hilfemeldungen Damit werden Meldungen gekennzeichnet, die direkte Hilfestellung zum System bzw. zu einzelnen, nicht standardisierten Befehlen geben. Diese Meldungen sind gedacht für den Administrator, der damit gezielte Abfragen generieren oder die Anpassung eines SMTP-Clients vornehmen kann.
Tabelle 3.15: SMTP-Codes mit ihren Bedeutungen
89
3 Das Internet und seine Dienste
Code
Beschreibung
220
<domainname> Service bereit
221
<domainname> Service schließt den Verbindungskanal
<domainname> Service nicht verfügbar; Verbindungskanal wird geschlossen
450
Angeforderte Mailaktion nicht durchgeführt, da Mailbox nicht verfügbar (beispielsweise im Falle einer Überlastung)
451
Angeforderte Aktion abgebrochen, da ein lokaler Fehler in der Abarbeitung aufgetreten ist
452
Angeforderte Aktion nicht durchgeführt, zu knapper Systemspeicher
500
Syntaxfehler bzw. Kommando nicht erkannt (kann auch eine zu lange Kommandozeile auslösen)
501
Syntaxfehler in übergebenen Parametern/Optionen
502
Kommando nicht implementiert
503
Falsche Reihenfolge von Kommandos
504
Kommando-Parameter nicht implementiert
550
Angeforderte Mailaktion nicht durchgeführt, da Mailbox nicht verfügbar (beispielsweise Mailbox nicht existent oder Sicherheitsrichtlinien lassen keinen Zugriff zu)
552
Angeforderte Aktion nicht durchgeführt, da kein Systemspeicher mehr verfügbar ist
553
Angeforderte Aktion nicht durchgeführt, da der Name der Mailbox ungültig ist (beispielsweise Syntaxfehler im Name)
554
Übertragung fehlgeschlagen
POP3 POP3 RFC 1939 RFC 1957
POP3 dient zum Abholen von E-Mails von einem Mail-Server. Ein POP3Server empfängt E-Mails und speichert sie so lange, bis der Nutzer sie abholt. RFC 1939 definiert POP3. In der RFC 1957 finden Sie einen Bericht zur aktuellen Lage der Nutzung von POP3-Servern im Internet. POP3 als Protokoll wird vom mailfrom-Dienst genutzt, der standardmäßig auf Port 110 auf Kommandos lauscht. Tabelle 3.16 zeigt die wichtigsten Kommandos, die für eine reibungslose Kommunikation benötigt werden.
90
Höhere Netzwerkprotokolle
Kommando
Parameter (-- = keine)
Beschreibung
Standardkommandos DELE
Nachrichtennr.
Markiert die angegebene Mail zum Löschen nach Ausführung von QUIT.
LIST
[Nachrichtennr.]
Listet alle Mails mit Nummer und Größe auf. Wird die Nummer angegeben, wird die Größe der betreffenden Mail gezeigt.
NOOP
--
Verbindungsüberprüfung
QUIT
--
Verbindung beenden
RETR
Nachrichtennr.
E-Mail anfordern
RSET
--
Löschmarkieren aufheben
STAT
--
Anzahl und Größe aller Mails abfragen
USER
Nutzername
Nutzer anmelden
PASS
Kennwort
Nutzer anmelden (nach USER)
Tabelle 3.16: POP3-Kommandos und erweiterte Kommandos (Auszug)
Erweiterte Kommandos APOP
Name Kennwort
Anmeldung, Kennwort wird verschlüsselt
TOP
Nachrichtennr. Anzahl
Holt eine Anzahl Zeichen aus der Mail Nachrichtennr.
UIDL
[Nachrichtennr.]
ID einer oder aller E-Mails
Der POP3-Server vergibt für jede im Postfach liegende Nachricht eine fortlaufende Nummer. Nachdem das Postfach geleert wurde, beginnt die Nummerierung wieder mit Eins. Der Aufbau einer Verbindung wird sofort mit der Statusmeldung des Servers beantwortet, ein eigenes Startkommando ist nicht notwendig. Sind am POP3-Server Name und Kennwort erforderlich, folgen nun die Kommandos USER und PASS. Beachten Sie, dass der normale POP3-Server ohne erweiterte Kommandos auch das Kennwort unverschlüsselt überträgt. Antwortzeilen enthalten einen einfachen Statuscode:
Statuscodes
왘 +OK Meldungstext
Das Kommando wurde verstanden und konnte ausgeführt werden. Der Meldungstext enthält die erwarteten Daten. 왘 -ERR Fehlertext
Das Kommando wurde nicht erkannt oder konnte nicht ausgeführt werden. Der Fehlertext erklärt, welches Problem vorlag. Die im Gegensatz zu SMTP fehlenden Statuscodes machen die Weiterverarbeitung von Fehlermeldung nicht besonders einfach. Auch moderne Mailclients wie Outlook geben deshalb die Fehlermeldung unverändert an den
91
3 Das Internet und seine Dienste
Nutzer weiter. Sie können natürlich auf den Fehler schließen, indem Sie das zuvor gesendete Kommando betrachten. Ein POP3-Server gibt immer eine Zeile zurück. Einige Kommandos geben mehrere Zeilen (beispielsweise die E-Mail-Daten) zurück. Dann endet das Kommando mit der Folge „Leere-Zeile Punkt Leere-Zeile“.
3.3.4 MIME
Codierungsstandard für E-Mail: MIME
MIME steht für Multipurpose Internet Mail Extensions. Dieses Format wurde nicht für Mail-Anhänge entwickelt, sondern für die Übertragung strukturierter (mehrteiliger) Nachrichten. Eine Nachricht im MIME-Format muss nicht notwendigerweise Anhänge enthalten. Jedes Element, das ein Webserver per HTTP versendet, ist mit einem MIME-Header versehen – dieser Header heißt Content-type. Wenn Sie Dateien zum Download anbieten, müssen Sie den MIME-Typ oft selbst bestimmen und programmtechnisch erzeugen (mit dem ASP-Objekt Response). MIME im Überblick
RFC 2045
Typischer Header
Die offizielle Beschreibung des MIME-Standards finden Sie in der RFC 2045. Dies ist vor allem im Hinblick auf die Erweiterung der RFC 822 zu sehen, die den Mailstandard an sich beschreibt, jedoch grundsätzlich nur Textnachrichten vorsieht. Die Erweiterung war notwendig, weil MIME entgegen dem Namen nicht nur in Mailsystemen Verwendung findet. Ein typischer Header sieht so aus: MIME-Version: 1.0 Content-Description: "Base64 encode of a.gif by Codec" Content-Type: image/gif; name="a.gif" Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename="a.gif"
Entscheidend ist die in der Zeile Content-Type angegebene Information zur Art des Inhalts. Zulässige Content-Typen sind in der RFC 2046 beschrieben. Diese werden auch im Zusammenhang mit der Webserver-Programmierung auftreten. Allerdings folgen den MIME-Headern im Browser keine codierten Daten, da der Browser direkt mit Binärdateien umgehen kann. Das im Beispiel angehängte Bild „a.gif“ würde ohne Umwege zum Browser gelangen. Die eigentliche Kodierung mit Base64 oder Quoted Printable wird nachfolgend beschrieben. MIME-Typen RFC 2046
92
Beim Umgang mit MIME sollten Sie die Haupt- und Subtypen kennen, die MIME definiert. Eine vollständige Liste ist in RFC 2046 zu finden. Tabelle 3.17 zeigt die gängigsten Typen.
Höhere Netzwerkprotokolle
Haupttyp
Subtyp
Beschreibung
application
octet-stream
Binäre Daten ohne Verwendungsangabe
application
postscript
Postscript-Datei
application
pdf
PDF-Datei (Adobe)
application
word
Microsoft Word-Datei
audio
basic
Audiodaten
image
jpeg
JPG-Bild
message
rfc822
E-Mail nach RFC 822 mit Header
model
vrml
VRML-3D-Objekt
multipart
mixed
Mehrteilige Nachricht
text
plain
ASCII-Text
text
html
HTML-Seite
video
mpeg
MPEG-Video
Tabelle 3.17: MIME-MediaTypen (Auswahl)
Die Media-Typen sollen dafür sorgen, dass der Empfänger der Nachricht die passende Applikation zur Anzeige oder Ausführung der Dateien bereitstellt. Entsprechend umfangreich ist die Zahl der verfügbaren Subtypen. Auf die tatsächliche Ausführung kann man sich übrigens nicht verlassen. Vor allem neuere Erweiterungen aus der PC-Welt, wie word oder rtf, finden auf Unix-Systemen keine Entsprechung. Der häufigste Grundtyp ist text. Normalerweise folgt als Subtyp /plain:
text/*
Content-type: text/plain; charset=us-ascii
Alternativ werden auch HTML-Dateien mit dem Text-Typ verschickt: Content-type: text/html
Der Zeichensatz kann optional mit angegeben werden, dazu wird die Zeile um den Parameter charset erweitert. Alles, was nicht Text ist und nicht sonstigen Typen zugeordnet werden kann, wird als application gekennzeichnet. Dahinter sollte sich ein Programm verbergen, das die übertragene Datei anzeigt oder auf andere geeignete Weise verarbeitet. Auch Verschlüsselungsprogramme werden über diesen Typ angesprochen. Ohne weitere Angabe wird der Subtyp octet-stream verwendet. Das Clientprogramm wird dann die Datei zum Speichern anbieten und keiner Applikation direkt zuordnen. In der Windows-Welt sind die Subtypen rtf und word verbreitet, in der Unix-Welt eher postscript.
application/*
Benutzerdefinierte Subtypen sind möglich, diese sollten mit dem Präfix „x-“ gekennzeichnet werden. So wird eine Excel-Datei mit Content-type: application/x-excel; name=charts.xls
93
3 Das Internet und seine Dienste
übertragen. Ob der Empfänger damit etwas anfangen kann oder will, spielt für die Angabe keine Rolle. image/*
Bilder, die direkt in der Nachricht eingebettet sind, werden mit dem Haupttyp image gekennzeichnet. Dabei wird davon ausgegangen, dass das Clientprogramm in der Lage ist, Bilddaten zu erkennen und darzustellen. Als Subtypen kommen jpeg, gif und png in Frage. Seltener trifft man auch auf g3fax (Gruppe 3-Faxe).
message/*
Neben dem Standardsubtyp rfc822 können auch partial und external-body angegeben werden. Die Übertragung der Nachricht muss in diesen Formaten uncodiert erfolgen. Nachrichten nach rfc822 bestehen aus einem RFC 822konformen Header und Body und eignen sich zum Weiterleiten von Nachrichten. Die Hauptanwendung sind Standard-E-Mails. Mit partial kann eine Nachricht in mehrere Teile zerlegt werden. Aufteilen und Zusammensetzen ist Sache der Clientapplikationen. Regeln zum Aufteilen sind in RFC 2046 definiert. Beschreibende Informationen werden mit external-body definiert. Mit den zusätzlichen Attributen name, site und access-type werden Informationen über die zu nutzende Ressource angegeben.
model/* RFC 2077
multipart/*
Außerhalb des MIME-Standards wurde in der RFC 2077 der Haupttyp model definiert. Hintergrund war die Mitte der 90-er Jahre aufkommende 3D-Welle im Internet. So werden als Subtyp vrml, iges und mesh definiert. Einzig VRML (Virtual Reality Model Language) konnte sich etwas verbreiten. Inzwischen gibt es kaum noch ernsthafte Anwendungen, VRML kann problemlos durch Java ersetzt werden. Zum Aufteilen einer Nachricht kann prinzipiell message/partial genutzt werden. Allerdings sind dann alle Subtypen identisch. Soll eine Nachricht dagegen aus mehreren Subtypen bestehen, bietet sich der Haupttyp multipart an. Zulässige Subtypen sind mixed (verschiedene Teile), parallel, digest und alternativ. Multipart-Nachrichten sind besonders häufig anzutreffen und sollten bei eigenen Projekten unbedingt beachtet werden. Der Aufbau wird durch den Content-Type gesteuert. Der Empfänger weiß nun, dass der nächste Abschnitt Teil einer Nachricht ist und dass am Ende ein Trennungszeichen folgt. Die Nachricht beginnt nach zwei aufeinander folgenden Zeilenwechseln. Das Ende besteht aus einem Zeilenwechsel, zwei Minus-Zeichen und der angegebenen Trennungszeichenfolge. Der komplette Aufbau besteht aus: 1. Transport-Header 2. Zwei Zeilenwechsel 3. Vorspann 4. Trenner 5. Nachricht
94
Höhere Netzwerkprotokolle
6. Trennung 7. Header der zweiten Nachricht 8. weiter bei Punkt 2 Die folgende Musternachricht zeigt die Anwendung, die Symbole kennzeichnen Zeilenwechsel, die unbedingt an diesen Stellen stehen müssen. From: [email protected] To: [email protected] ... Subject: Buch ist fast fertig! MIME-Version: 1.0 Content-type: multipart/mixed; boundary="trenner" Im Vorspann steht der Klartext fuer Nutzer, deren Client MIME/Multipart nicht versteht. --trenner Hier folgt der erste Teil der Nachricht, dieser Teil hat im Beispiel keinen eigenen Header --trenner Content-type: text/html; charset=iso8859-1 Content-transfer-encoding: Quoted-Printable Hier folgt ein Teil mit Header; es handelt sich um eine HTML-Datei --trenner Was hier steht, wird ignoriert Listing 3.3: Aufbau einer einfachen Multipart-Nachricht
Beachten Sie, dass die Zeichenkette für die Trennung nicht mehr als 70 Zeichen lang sein darf. Es hat sich eingebürgert, Folgen von Minus- oder Gleichheitszeichen zu nutzen. Neben Buchstaben und Zahlen sind die folgenden Zeichen zulässig: ' ( ) + _ - . / : = ?
Die Applikation, mit der die Nachricht erstellt wird, muss dafür sorgen, dass die Trennungszeichenkette eindeutig ist und nicht als Teil der Nachricht auftritt. Dies ist sehr einfach sicherzustellen. Der Body der Nachricht kann normalerweise nur nach Quoted Printable oder Base64 kodiert werden. Darin kann die Zeichenfolge =_ nicht vorkommen. Ein Trennzeichen der Art =__Multipart Separator__=
genügt also völlig diesem Anspruch und ist überdies für Clients gut lesbar, die nicht selbst die Trennung der Teile besorgen können.
95
3 Das Internet und seine Dienste Geschachtelte Nachrichten
Multipart-Nachrichten definieren den Content-type der folgenden Nachricht immer wieder neu. Es spricht also nichts dagegen, auch hier wieder eine Multipart-Nachricht anzuschließen. Tatsächlich sind solche rekursiven Nachrichtenkonstrukte erlaubt. Um die Nachricht aus dem Chaos wieder korrekt zusammensetzen zu können, werden die folgenden Subtypen verwendet: 왘 alternativ
Die Teilnachrichten enthalten die gleiche Information in verschiedenen Formaten. Dies wird häufig eingesetzt, um eine E-Mail als Plain-Text und zugleich als HTML-Datei zu versenden. Der Client kann dann entscheiden, welche Form er zur Anzeige bringt. 왘 digest
Jeder Teil ist nach RFC 822 (als message/rfc822) formatiert. Wird oft in Mailinglisten eingesetzt, wo viele E-Mails zu einer Nachricht (dem Digest) zusammengesetzt werden. Nur wenige Clients können allerdings diese Konstruktion wieder in einzelne E-Mails zerlegen. 왘 mixed
Inhalt ist nicht näher spezifiziert. 왘 parallel
Der Teil enthält Daten, die Bestandteil einer anderen Nachricht sind. Der Client sollte aus allen Teilen die Gesamtnachricht zusammensetzen. Verschachtelte Nachrichten sollten auch bei der Angabe der Trennungszeichenkette so gestaltet werden, dass Clients, die Multipart nicht verarbeiten können, lesbare Texte ausgeben. Üblich sind verkürzte Zeichenketten: =__MPM__=
3.3.5 RFC 977 RFC 2980
Network News Transfer Protocol (NNTP)
NNTP ist ein sehr altes Protokoll – Nachrichtengruppen gab es lange vor der Eroberung des Internets durch das WWW. Es wurde in RFC 977 vom Februar 1986 definiert. Seit August 1996 gibt es einen Draft mit einer Reihe von Erweiterungen, die zwischenzeitlich ohne Standard eingeführt wurden. Dieser Draft mündete im Dezember 2000 in die RFC 2980, die die Erweiterungen von NNTP unter expliziter Bezugnahme auf RFC 977 beschreibt. Arbeitsweise Das Protokoll wird durch den Austausch von Texten zwischen Server und Client bestimmt. Die rein ASCII-basierte Übermittlung erspart die typischen Netzprobleme mit Binärdaten. Der Server arbeitet nicht statuslos, sondern führt einen so genannten Message-Pointer. Aus diesem Grunde ist eine Anmeldung erforderlich und es sollte auch eine Abmeldung erfolgen.
96
Höhere Netzwerkprotokolle
Der Client muss die Kommunikation aufnehmen und sollte in der Lage sein, alle denkbaren Antworten des Servers zumindest so weit zu bearbeiten, dass im Protokoll keine Blockierung entsteht. Serverantworten Auf jede Anfrage wird der Server zunächst mit einem dreistelligen Zahlencode reagieren. Die folgende Tabelle zeigt die möglichen Antwortklassen: Code
Beschreibung
1xx
Informationen
2xx
Kommando korrekt
3xx
Kommando soweit korrekt, erwarte Daten
4xx
Kommando war korrekt, konnte aber nicht ausgeführt werden
5xx
Kommando unbekannt oder Fehler
Tabelle 3.18: Antwortklassen in NNTP
Die nächste Stelle sagt etwas über die Kategorie: Code
Beschreibung
x 0x
Verbindung, Setup und sonstige Nachrichten
x 1x
Newsgroupauswahl
x 2x
Artikelauswahl
x 3x
Distributionsfunktionen
x 4x
Senden von Artikeln
x 8x
Erweiterungen, die nicht standardisiert sind
x 9x
Debug-Ausgaben
Tabelle 3.19: Kategorie innerhalb des Antwortcodes
Beispielsitzung Der Client fragt nach den Gruppen auf dem Server: LIST
Der Server antwortet zunächst mit dem Code 215, dass die Liste mit den Gruppen folgt und sendet dann Zeile für Zeile diese Gruppen: groupname last first p
Dabei ist groupname der Gruppenname, beispielsweise microsoft.iis.de ist die letzte, also neueste Nachricht in der Gruppe, analog ist first die erste verfügbare Nachrichtennummer. p kann „y“ oder „n“ sein und gibt an, ob Benutzer in der Gruppe Nachrichten absetzen dürfen oder nicht. Die Sendung wird durch das Senden einer Zeile, die nur einen Punkt enthält, beendet.
97
3 Das Internet und seine Dienste
Der Client wechselt in eine der Gruppen durch Senden des GROUP-Kommandos. Als Parameter gibt er den Namen der Gruppe an. Der Server bestätigt mit folgender Zeile: 211 article_count first last groupname
Mit dem folgenden Befehl wird die Nummer der Nachricht aufgerufen: STAT MsgNr
Mit dem Kommando HEAD wird der Kopf der Nachricht und mit BODY der Inhalt der Nachricht bezeichnet. Durch das Kommando NEXT kann die nächste Nachricht gelesen werden. Das Senden von Artikeln Nach dem Senden von POST wird der Server zunächst mitteilen, ob er Senden akzeptieren kann. Der Antwort-Code kann einer der folgenden sein: Tabelle 3.20: Mögliche Antwortcodes nach POST
Code
Beschreibung
240
Artikel wurde bereits gesendet.
340
Aufforderung zum Senden. Der Artikel soll mit .
beendet werden.
RFC 850 RFC 1036
440
Posten von Artikeln ist nicht erlaubt.
441
Das Posten ist misslungen.
RFC 850 gilt für das Format einer Nachricht. Speziell für die Usenet News Artikel gilt die RFC 1036. Beenden der Verbindung Auf das Kommando QUIT sendet der Server die Antwort 205. Der Vorgang ist damit abgeschlossen und bei späteren Zugriffen ist eine erneute Anmeldung notwendig. Threadverfolgung Threads sind Diskussionsbäume, die durch Erwiderung auf Artikel entstehen. Im Artikel wird durch Belegen des Feldes References: die Message-ID abgelegt, auf die der Artikel sich bezieht. Es gibt also Rückwärts- aber keine Vorwärtsbezüge.
98
4
Basiswissen Online-Marketing
4.1
Die Gestaltung von Webseiten
FrontPage 2002 bietet eine hervorragende Möglichkeit, interaktive Webseiten zu entwickeln. Oft werden die Seiten aber völlig überfrachtet oder ignorieren jegliches Design, gerade weil der Einbau vieler Spielereien so einfach ist. Die folgenden Hinweise helfen, elementare Fehler zu vermeiden.
4.1.1
Zehn Regeln für gutes Design
Die folgenden zehn elementaren Designregeln wirken „innen“, im Quelltext der Seiten. 1. Regel: Seitentitel verwenden
Entwickeln Sie gute Websites, indem Sie elementare Designregeln beachten!
Denken Sie darüber nach, wie Sie jede Seite benennen. Nutzen Sie unbedingt den HTML-Tag <TITLE>. Versuchen Sie, Schlüsselwörter im Titel zu nennen. Nennen Sie einen Autozubehör-Shop nie „Mannes Superseite“, sondern „Alles für das Auto“. Wenn Sie unbedingt die erste Seite zur Framesteuerung verwenden müssen, dann achten Sie unbedingt auf den Titel, auch wenn diese Seite selbst nie erscheint. 2. Regel: Nutzen Sie META-Tags
META-Tags sind zusätzliche universelle HTML-Befehle, die im Kopf der Seite stehen. Diese Tags nutzen die Suchmaschinen zur besseren Einordnung in die Indizes. Es gibt keinen Zwang, sie zu nutzen, aber es ist sehr sinnvoll. Suchmaschinen bringen Hits. META-Tags bringen bessere Suchergebnisse. Die Suchmaschine Alta Vista benutzt beispielsweise <META name="keywords" content="Hier, stehen, die Schlüsselwörter, mit, Komma, getrennt">. Lesen Sie die Anleitung zu den Suchmaschinen, um die Seiten dafür zu optimieren („Mit Komma oder ohne Komma, das ist hier die Frage“). 3. Regel: Schlüsselwörter nutzen
META-Tags und Titel reichen nicht aus. Die wichtigsten Schlüsselwörter, die das Produkt gut beschreiben, müssen auf der ersten Seite im Fließtext stehen. 4. Regel: Produkte auf der Indexseite nennen
Denken Sie daran, dass Suchmaschinen Robots benutzen und diese keine Produktseiten abrufen können, die Sie allein mit den Datenbankfunktionen in FrontPage gestaltet haben. Produkte, nach denen direkt gesucht werden
99
4 Basiswissen Online-Marketing
soll, müssen deshalb für die Robots lesbar sein. Schreiben Sie die wichtigsten Produkte auf die erste Seite. Stört das im Layout, färben Sie die Schrift mit der Hintergrundfarbe – Weiß auf Weiß zum Beispiel. Aber Achtung! Mancher Robot erkennt auch dies. 5. Regel: Keine Frames auf der ersten Seite verwenden
Die erste Seite mit den Informationen aus Regel 1 bis 4 sollte keine Frameseite sein, denn Robots mögen Frames nicht! 6. Regel: Wenig Grafiken
Suchmaschinen mögen auch keine Grafiken. Dauert der Seitenaufbau zu lange, bricht der Robot einfach ab. Sparen Sie an Grafik vor allem auf den ersten Seiten. 7. Regel: Stehlen Sie nicht beim Wettbewerber – Teil I
Es ist falsch, META-Tags und Suchwörter einfach aus der Seite des erfolgreichen Wettbewerbers zu entnehmen. Das ist falsch, denn oft werden die Seiten ausgetauscht, nachdem der Robot der Suchmaschine die Seiten erfasst hat, vor allem, um die Größe zu verringern oder eben, um solche Ideendiebe zu verwirren. 8. Regel: Stehlen Sie nicht beim Wettbewerber – Teil II
Selbst wenn die originalen Tags übernommen werden konnten, geht der Schuss nach hinten los. Ihr Wettbewerber war nun mal schneller und steht deshalb im Index weiter vorn. Sie fördern somit seine Seite, wenn Sie mit denselben Begriffen arbeiten. 9. Regel: Jede Seite ist eine Eintrittsseite
Robots sind zwar schnell, aber ziemlich dumm. Meist durchkämmen sie die ersten Seiten und legen jede Seite mit sinnvollen Begriffen im Index ab. Gerade bei Alta Vista und Google ist die Gefahr, mitten in Ihr Angebot zu springen, sehr groß. Der Nutzer sollte eine echte Chance haben, mit einem Mausklick zur Homepage zu gelangen. 10. Regel: Bieten Sie einen „Befreiungslink“
Es ist schön, wenn andere für Sie werben. Oft werden solche Links jedoch in eigenen Frames angeboten, sie sind quasi im fremden Frame „gefangen“. Leider wird Ihre URL im Browser nicht sichtbar, der Kunde kann kein Bookmark setzen und findet Ihre Seite nicht wieder. Und der umgebende Frame verringert die Bildschirmgröße und zerstört womöglich das Layout.
100
Online-Marketing
Der folgende Befehl erzeugt einen Link, mit dem der Nutzer den fremden Frame verlassen kann:
Danach steht „www.MeineSeiten.de“ auch in der Adresszeile des Browsers.
4.2
Online-Marketing
Warum erhält Online-Marketing in diesem Buch ein eigenes Kapitel? Sie werden mit FrontPage 2000 in die Lage versetzt, attraktive Webseiten zu entwickeln und können damit Kunden und Geschäftspartner beeindrucken. Aber was, wenn niemand die Seite findet? Die folgenden Tipps zeigen, wie Sie ein Webangebot erfolgreich fördern.
4.2.1
Definition
Was ist Online-Marketing? Online-Marketing ist eine Form der interaktiven, kommerziellen Kommunikation. Online-Marketing benutzt überwiegend das World Wide Web, den multimedialen Dienst des Internets. Die besonderen Merkmale gegenüber dem herkömmlichen Marketing sind: 왘 Verbreitung von Werbebotschaften mittels vernetzter Systeme
Kein Angebot kann sich ohne Werbung durchsetzen. Zu einem Projekt gehört deshalb auch Online-Marketing.
왘 Globale Verbreitung der Botschaften 왘 Selektives Abrufen der Botschaften durch die Beworbenen (Konsumen-
ten) 왘 Ständige Verfügbarkeit der Werbeinformationen 왘 Möglichkeit der Übertragung komplexer Inhalte 왘 Möglichkeit der Nutzung multimedialer Elemente (Sound, Video, Grafik
usw.) 왘 Geringere Streuung und gezielte Vermittlung.
In der einfachsten Form findet Online-Marketing durch den Aufbau einer Homepage statt. Eine Homepage ist die Eintrittsseite in ein Angebot im Web – die Startseite. Es ist die kleinste Einheit einer Unternehmenspräsentation. Vorteile und Nachteile Online-Marketing bietet durch seine spezifischen Eigenschaften damit eine Reihe von Vorteilen gegenüber dem herkömmlichen Marketing. Die Kenntnis und richtige Anwendung dieser Vorteile verschafft einen Wettbewerbsvorsprung.
101
4 Basiswissen Online-Marketing
Die Vorteile sind: 왘 Informationsvorsprung durch sofortige Präsentation von Neuheiten 왘 Transparenz des Angebots 왘 Kostenminimierung durch exaktere Zielgruppenauswahl 왘 Direkte und gezielte Kommunikation mit Konsumenten 왘 Höhere Flexibilität 왘 Niedrige Produktionskosten der Werbung 왘 Umfangreicherer After-Sales-Service mit geringem Aufwand 왘 Weltweites Marketing mit vergleichsweise wenig Aufwand 왘 Gesteigerte Attraktivität durch technologische Demonstration.
Die Vorteile beziehen sich also vor allem auf die geringeren Kosten einer globalen Präsenz. Daneben gibt es auch einige Nachteile, die immer dann zum Problem werden, wenn der Online-Verkauf der alleinige Vertriebsweg wird. So ist die Etablierung von Marken nicht möglich, bestimmte Zielgruppen (Senioren, Kleinkinder) sind derzeit überhaupt nicht online erreichbar, und nicht alle Produkte eignen sich für den elektronischen Handelskanal. Ein Ausweg bietet sich durch den so genannten Marketing-Mix an. Dabei werden die Vorteile des Online-Marketings mit denen des konventionellen Marketings verbunden. Das Online-Marketing befindet sich derzeit noch in der Entwicklung, aufmerksame Beobachtung der Wettbewerber und eine fortschrittliche, strategische Orientierung sind deshalb besonders wichtig. Was erwartet der Kunde? Den Kunden verstehen: Interaktivität, Cyberkultur und Bequemlichkeit.
Um den Kunden zu erreichen, muss man ihn verstehen. Dazu gehört auch die sorgfältige Analyse des Online-Auftritts. So unterscheiden sich Shops im Internet von denen im realen Leben gewaltig. Trotzdem sind es dieselben Personen, die einmal im Geschäft erscheinen und anderntags vor dem PC sitzen und surfen. Den Shop im Internet zu eröffnen ist so, als ob Sie in einem fremden Land ein Geschäft eröffnen. Kultur („Cyberkultur“) und Sprache („Chatslang“) sind anders als im realen Leben. Die Instrumente zum Anlocken des Kunden sind ebenfalls völlig anders. Die meisten Läden im Internet sind einfach furchtbar. Viele bieten nackte Produktlisten und warten auf Kunden. Genauso gut könnten sie die Kisten der Lieferanten auf den Hof kippen und auf Kunden warten, statt die Ware ordentlich im Regal zu platzieren. Kunden erwarten Informationen, Infobereiche, Nachrichten- und Tickerecken. Empfehlungen und Beratungen gehören auch online dazu. Das erwartete Markenimage muss erkennbar auf den Online-Shop übertragen werden.
102
Online-Marketing
Viele Anbieter schließen aus, dass es im Netz zu Emotionskäufen kommen kann. Zumindest lässt die nüchterne Gestaltung der Seiten darauf schließen. Geschickter Verkauf anhand von passenden Arrangements ist der Schlüssel. Ein wichtiges Mittel sind Auktionen, Spiele und Wettbewerbe. Statt Regale und Verpackung gibt es im Netz Interaktivität – wie viel reizvoller als herum gewickeltes Papier kann die sein?
4.2.2
Zehn Grundregeln für erfolgreiches Marketing
Die folgenden zehn Grundregeln sind eine Anleitung zum organisierten Angriff auf den elektronischen Markt. 50 Millionen Kunden müssen auch im Internet erst einmal erobert werden. Was in den Erfolgsgeschichten noch verhältnismäßig einfach klingt, kann in der Praxis schon anspruchsvoller sein. Verglichen werden kann die Internetpräsenz inzwischen fast mit dem Telefon. Eine Firma ohne Telefon zu führen ist fast unmöglich, eine Erfolgsgarantie ist die Existenz eines Telefons noch lange nicht.
Professionelles Projektmanagement endet nicht mit der Programmierung. Regeln helfen, Fehler zu vermeiden.
1. Regel: Planung Internetpräsenz und elektronischer Handel sind Chefsache. Strategische Planung und umfassende Unterstützung aller an Marketing, PR und Kundendienst beteiligten Führungskräfte ist unerlässlich. Definieren Sie kurz-, mittel- und langfristige Ziele. Beteiligen Sie Mitarbeiter, die eine gewisse Affinität zu Computern haben. Auch wenn Inhalte oft weniger computertechnisch sind, ist doch viel technisches Verständnis notwendig. 2. Regel: Promotion Promoten Sie den neuen Shop, wo immer Sie können. Jeder Fernsehspot, jede Anzeige, jede Werbeaktion muss die URL zeigen. Machen Sie deutlich, dass Sie hinter dem Webangebot stehen und nicht nur nach dem berüchtigten „Me too“-Prinzip verfahren. Nutzen Sie Suchmaschinen, Indizes, Bannerwerbung usw. 3. Regel: Fachleute engagieren
Die Internetpräsenz ist keine rein technische Aufgabe. Trotzdem kommt der professionellen Realisierung des Shops und der Präsenz große Bedeutung zu. Das Internet ist technisch gesehen nicht trivial! Versorgen Sie sich deshalb mit den nötigen Fachleuten für Online-Marketing und Internettechnologie. 4. Regel: Durch den Wettbewerb lernen Irgendeiner ist immer weiter. Analysieren Sie, was andere machen, und denken Sie daran, dass nicht alles andere gut sein muss. Wenn Sie nichts Vergleichbares finden, haben Sie einen Volltreffer: Sie sind der Erste. Dann sollten Sie unbedingt benachbarte Branchen konsultieren. Lernen Sie durch die Fehler anderer und versuchen Sie nicht, jede Erfahrung selbst zu machen.
103
4 Basiswissen Online-Marketing
5. Regel: Zielgruppen erkennen Sicher kennen Sie Ihre Zielgruppe aus der herkömmlichen Werbung genau. Sehen Sie sich aber die vorhandenen Prospekte und Broschüren noch einmal unter dem Gesichtspunkt Zielgruppe an. Im Internet können Streuverluste minimiert werden. Vielleicht war die bestehende Zielgruppendefinition zu global. Setzen Sie sich mit der „Wunschzielgruppe“ auseinander. 6. Regel: Sparsames Layout Überfrachtete Seiten und knallige Bilder sind im Internet nicht so beliebt. Java-Applets, Real-Video oder Shockwave bringen vergleichsweise wenig, wenn man bedenkt, dass die große Masse der Kunden mit 28,8 Kbit-Modems an das Netz geht und auf eine solche Datei 30 Sekunden warten muss. 7. Regel: Lassen Sie kommunizieren Sogar die eigene E-Mail-Adresse ist manchmal schwer zu finden. Dabei gibt es so viele Möglichkeiten, einfache Formulare zu gestalten und so die Kontaktaufnahme zu erleichtern. Nutzen Sie Gästebücher, Listen, Foren. Erzwingen Sie nicht zu viele Angaben. Seien Sie froh über jeden Kontakt, auch wenn es nur die E-Mail-Adresse ist und nicht die Hausanschrift. 8. Regel: Überarbeiten Sie die Seiten regelmä ß ig Das neueste Datum deutet auf straffe Pflege hin. Zeigen Sie, dass die Seite ernst genommen wird und das Angebot genauso gepflegt wird wie alle anderen Publikationen. Planen Sie regelmäßige „Re-Launches“, vollständige Überarbeitungen der Webseite. Bedenken Sie, dass die Zeit im Netz schneller voranschreitet. Ein Jahr im Internet entspricht schon mehr als drei Jahren in der realen Welt (die bekannte 1:3-Formel!). 9. Regel: Nutzen Sie eigene Namen Die eigene Domain ist heute keine große Investition mehr. Auch wenn es für die Suchmaschine keine Rolle spielt, denken Sie daran, die Adresse (URL) auf jeder Visitenkarte, jedem Briefpapier erscheinen zu lassen. Das geht am einfachsten und erleichtert Ihrem Grafiker die Arbeit erheblich, wenn der Name kurz und prägnant ist. Vermeiden Sie die Platzierung unterhalb einer Provider-Domain, auch wenn das Angebot im Internet dann billiger wird. Stellt Ihr Provider die Tätigkeit ein, ist das normalerweise kein großes Problem, denn Server lassen sich leicht umsetzen. Geht aber eine Domain verloren, an die Sie gebunden sind, kann Ihr Angebot für lange Zeit im Datenloch verschwinden. 10. Regel: Zeigen Sie Weitblick Das Internet ändert sich ständig und mit hoher Geschwindigkeit. Es ist international und multikulturell. Berücksichtigen Sie die Globalisierung auch dann, wenn Sie vorerst nur deutschsprachige Kunden avisieren. Denken Sie
104
Online-Marketing
andererseits auch an lokale Angebote, um die Kopplung mit dem Stammgeschäft nicht zu verlieren. Erobern Sie Märkte aktiv, und bauen Sie das Internet-Geschäft strategisch aus. Es ist definitiv der Markt der Zukunft.
4.2.3
Werbung für Online-Angebote
Suchmaschinen Die wichtigste Art der Werbung ist der Eintrag in Suchmaschinen. Ein paar Regeln beim Layout der Seite wurden bereits im letzten Kapitel besprochen. Die spezielle Arbeitsweise der Suchmaschinen verlangt aber ein tieferes Verständnis. Die wichtigsten Suchmaschinen finden Sie im Anhang. Umfassende Informationen enthält das Buch „Electronic Commerce und OnlineMarketing“, ISBN 3-446-21098-9, unter anderem einen detaillierten InsiderReport über die Arbeitsweise der Suchmaschinen. Da die Eintragung in Suchmaschinen eng mit dem Angebotsinhalt zusammenhängt, ist es sinnvoll, selbst Hand anzulegen. Nicht jeder Provider wird in der Lage sein, diese Daten korrekt zu erfassen. Außerdem kostet die Eintragung Zeit, auch wenn die Erfassung selbst kostenlos ist.
Kein Angebot ohne Werbung. Bringen Sie Ihr Projekt mit professioneller Anmeldung bei Suchmaschinen in Schwung!
Arten von Suchmaschinen Es gibt drei Arten von Suchmaschinen: 왘 Echte Suchmaschinen 왘 Verzeichnisse 왘 Hybride Suchmaschinen
Die echten Suchmaschinen werden Crawler oder Spider genannt. Sie scannen die Seiten mittels automatischer Programme, so genannte Robots. Durch die Arbeitsweise erfassen sie mehr als alle anderen Maschinen, allerdings auch viel Ungewolltes und zum Teil Überflüssiges. Verzeichnisse werden von Menschen bedient. Die Seite muss in eine Hierarchie eingesetzt werden und erscheint dort ohne Rücksicht auf den Inhalt (einfaches Verzeichnis) bzw. nach einer Beurteilung durch Mitarbeiter der Suchmaschine (Ranking). Hybride Suchmaschinen scannen die Seiten wie Crawler, bieten aber einer Auswahl von Seiten die Chance, nach einer manuellen Beurteilung noch zusätzlich in ein Verzeichnis eingetragen zu werden.
4.2.4
Optimal anmelden
Optimieren Sie die Seiten für die großen Suchmaschinen! So bringen Sie das Angebot an die ersten Stellen im Web. Alle Suchmaschinen, die hier beschrieben werden, haben deutschsprachige Ableger. Die Informationen gelten für beide Formen, denn meist gibt es nur einen Index (Ausnahme: Der deutsche Ableger von Yahoo ist eigenständig).
Die optimale Anmeldung bei Suchmaschinen ist der erste Schritt zum Erfolg!
105
4 Basiswissen Online-Marketing Alta Vista
Alta Vista beurteilt Seiten bei der Suche höher, wenn mehrere Suchwörter eingegeben und auch gefunden wurden. Suchwörter, die in den ersten vier Zeilen, in META-Tags und im Titel stehen, werden bevorzugt. Die häufige Wiederholung des Suchwortes auf der Webseite „Produkt, Produkt, Produkt, Produkt“ hat nur einen sehr geringen Effekt. Trotzdem wird sich in vielen Seiten daran versucht. Die Reihenfolge spielt überhaupt keine Rolle, „Bill Clinton“ ist genauso findbar wie „Clinton Bill“, wenn als Suchwort „Bill Clinton“ geschrieben wird. Alta Vista scheint außerdem bei gleichwertiger Beurteilung der Suchergebnisse ältere Seiten weiter oben zu bringen. So kann es sein, dass Ihre Seite im Laufe der Zeit immer besser erscheint.
www.altavista.com www.altavista.de
Alta Vista ist eine echte Volltextsuchmaschine. Indiziert werden Wortmuster. „Webmaster’s Design“ wird als „webmaster s design“ indiziert, indem das einzelne „s“ eliminiert wird, werden die Begriffe „webmaster“ und „design“ indiziert. Satzzeichen, Betonungszeichen, Sonderzeichen usw. werden völlig ignoriert. Der deutsche Ableger von Alta Vista kann aber Umlaute verarbeiten. Allerdings gibt es nur einen Index, eine Anmeldung in Europa dauert nur länger (einige Tage), bringt aber sonst kaum Vorteile. Es ist hilfreich, mehrere Seiten des Angebots aufnehmen zu lassen. Da Alta Vista ein bis zwei Tage braucht, um die Seiten zu durchsuchen und gleichzeitig die Zahl der angemeldeten URLs begrenzt, kann das schon einige Zeit dauern. Sie müssen jeweils warten, bis der Zähler für Ihre Seite wieder zurückgesetzt wird. Alta Vista scannt die Seiten alle ein bis drei Monate erneut, um Änderungen festzustellen. Dabei werden auch neue Seiten erkannt. Je mehr Leute die Seite in Alta Vista gesucht und angeklickt haben, umso schneller kommt der Robot wieder. Um Missbrauch zu verhindern, werden sehr häufig angemeldete Seiten gelöscht. Extrem häufige Suchwörter wie „web“ oder „internet“ werden nicht beachtet. Seiten, die kurz nacheinander mit verschiedenen Schlüsselwörtern angemeldet werden, sind ebenso von der Löschung aus dem Index bedroht.
Excite www.excite.com www.excite.de
Excite bevorzugt Wörter im Titel und in ganzen Sätzen. Je häufiger ein Wort auf einer Seite erscheint, umso besser wird es registriert. Excite ist wie Alta Vista eine Volltextsuchmaschine. Als einzige Suchmaschine kann Excite Synonyme verarbeiten. Damit werden häufig ähnliche Wörter gefunden. Unsichtbarer oder auskommentierter Text wird nicht erfasst. Tausend Wiederholungen des Suchwortes in einem Kommentar bringen hier gar nichts. Um Missbrauch vorzubeugen, werden zu hartnäckige Wiederholungen erkannt, die Seite wird ausgesperrt. Webseiten scannt Excite etwa alle vier Wochen erneut. Links werden verfolgt, wenn sie aus reinem HTML bestehen. Image Maps (anklickbare Grafiken) werden ignoriert. Die Suchmaschine erwartet, dass die Webseite innerhalb von 30 Sekunden geladen wird. Braucht die Seite länger, um vollständig geladen zu werden, bricht Excite ab und versucht es später noch einmal. Dauert es immer länger, wird die Seite nie indiziert. Excite indiziert keine Pronomen, Artikel und Adjektive.
Google www.google.com
Google ist einer der Shooting-Stars unter den Suchmaschinen, vor allem wegen des spartanischen Designs, das kurze Ladezeiten verspricht und der mit Abstand besten Suchqualität. Über den Algorithmus ist nicht viel bekannt –
106
Online-Marketing
nach eigener Darstellung beurteilt Google Seite besser, wenn viele Links von anderen Seiten darauf verweisen. Dies scheint der tatsächlichen Nutzung im Internet zu entsprechen – die ersten Ergebnisse der Liste sind oft die besten. Durch dieses Verfahren sind die üblichen Spamming-Methoden auch weitestgehend wirkungslos. Ansonsten indiziert Google den gesamten Seiteninhalt, einschließlich PDF-Dateien und – Mitte 2001 noch als Beta-Version – Bilder. Ergänzt wird Google durch ein Webverzeichnis und einen Übersetzungsservice – letzterer leidet aber unter der Unzulänglichkeit aller maschinellen Übersetzungsdienste, die Ergebnisse sind also nur in den seltensten Fällen zu verwenden. Yahoo ist ein Verzeichnis und scannt Seiten nicht automatisch. Die Eintragung erfolgt allerdings automatisch, Sie müssen sich die Kategorie selbst aussuchen. Das Personal bei Yahoo prüft die Eintragung, setzt Seiten gegebenenfalls um, wenn der Verdacht besteht, dass sie falsch platziert wurden. Beim Suchen erfasst Yahoo Titel und die Beschreibung, die beim Anmelden eingegeben wurde. Yahoo bevorzugt Seiten mit zwei, drei oder vier treffenden Schlüsselwörter. Wenige, sehr sorgfältig ausgesuchte Wörter bringen mehr. Es ist sehr sinnvoll, wenn der Name der Kategorie bereits das gewünschte Suchwort enthält. Ein Blumenversender sollte eine Kategorie suchen, die das Wort „blumen“ beinhaltet und nicht die Kategorie „firmen|versender|muenchen“ wählen.
Yahoo www.yahoo.com www.yahoo.de
Yahoo prüft jede Seite. Versuchen Sie nie, mit Titeln wie „AAASexSeite“ einen Vorteil zu erzielen, wenn Sie eigentlich Autoreifen verkaufen. Das Personal wird Ihre Seite völlig ans Ende verschieben oder ganz streichen. Machen Sie sich keine Feinde bei Yahoo – Yahoo ist im Netz extrem beliebt und sehr, sehr stark. Schlechte Promotion durch unelegante Anmeldung kann viel verderben. Lycos ist ebenfalls eine Volltextsuchmaschine. Sie zeigt nur den Titel im Index an und bevorzugt Schlüsselwörter, die auch im Titel stehen. Ansonsten wird auch der gesamte Text durchsucht. Wird nach mehreren Wörtern gesucht und werden nur einige Suchwörter gefunden, werden mehr Treffer weiter oben in der Liste erscheinen. Sorgfältige Schlüsselwortauswahl ist wichtig. Zahlwörter wie „seven“ werden ignoriert.
4.2.5
Lycos www.lycos.com www.lycos.de
Bannertauschprogramme
Sind Zielgruppe und Interesse klar definiert, muss auf das eigene Angebot aufmerksam gemacht werden. Neben der konventionellen Werbung bietet das Internet selbst vielfältige Werbeplätze an. Einige sind kostenlos und beruhen auf Gegenseitigkeit. Bei diesen so genannten Bannertauschprogrammen werden die Werbeeinblendungen ausgetauscht. Zeigt man auf seiner Seite ein fremdes Banner und besucht auch jemand die Seite, wird das eigene Banner an einer anderen Stelle eingeblendet. Zwischen der Anzahl der Einblendungen eigener und fremder Banner gibt es eine Differenz, die zwischen 20 % und 50 % der gesamten Bannereinblendungen liegt. Diese Anzahl wird gegen gutes Geld an zahlende Kunden verkauft. Bannertausch-
So machen Sie mit Werbebannern auf Ihr Angebot aufmerksam!
107
4 Basiswissen Online-Marketing
programme sind besonders bei privaten Homepages beliebt, die auch von privaten Interessenten besucht werden. Bannertauschprogramme sind für Shops, die an Endkunden verkaufen, durchaus zu empfehlen. Die wichtigsten deutschen Anbieter sind im Anhang aufgeführt.
4.2.6 Wie Sie ein Werbebudget richtig unterbringen!
Werbenetzwerke
Professionelle Werbefirmen bieten gezielt Bannerplätze im Internet an. Im Gegensatz zu den Tauschprogrammen ist der Erfolg nicht von der Güte der eigenen Seite und den zufälligen Treffern aus Suchmaschinen abhängig, denn Einblendungen werden gekauft. Die Buchungspreise liegen zwischen € 5 und € 40 pro tausend Einblendungen. Bestimmte Kundengruppen können gezielt gebucht werden. Das Verhältnis von der Einblendung einer Werbung zum Anklicken der Werbung – der Schritt vom Schaufensterbummel bis zum Betreten des Ladens – liegt bei privaten Homepages bei unter 1 %, kommerzielle Seiten erreichen inzwischen selten mehr als 0,5 %. Dieses Verhältnis wird auch AdClick-Rate genannt. Seriöse Anbieter können diese Werte benennen. Bannernetzwerke sind raffinierte Werbemaschinen, welche die konventionelle Werbung in Bezug auf die Effizienz weit hinter sich lassen. Jede Lieferung eines Inhaltes an einen Browser kann registriert werden. Wenn der Banner beim Nutzer eingeblendet wird, befindet sich die Anzeige schon in der Datenbank. Uhrzeit, Ursprung der Anfrage (URL des Knotens, an dem der Nutzer sich eingewählt hat), das verwendete Betriebssystem und der Typ des Browsers werden übertragen. Zum Serviceangebot einiger Anbieter zählen auch rotierende Banner. Ignoriert ein Besucher die Bannerwerbung oder hat er das Banner schon mehr als dreimal gesehen, wird automatisch ein neues Motiv eingeblendet. Bis zu zehn Bannerdesigns kann der Werbende für diesen Zweck an das Werbenetzwerk geben. Dieses Verfahren wird „Anti-Banner-Burn-out-System“ genannt.
4.2.7 Wo finden Sie attraktive Werbeflächen im Internet für Ihr Angebot?
Attraktive Werbeplätze
Neben den Agenturen gibt es eine Vielzahl von sehr interessanten Webseiten, deren Betreiber gern eine Werbefläche anbieten. Marktführer sind die Suchmaschinen, die mit Millionen Treffern pro Tag viele Werbeblöcke zur Verfügung stellen können. Die Preise liegen etwas höher als bei den herkömmlichen Werbenetzwerken. Zielgruppenwahl und höchste Aufmerksamkeit sind selbstverständlich. Vor allem in der ersten Zeit eines neuen Shops bietet sich diese Werbeform an. Sind erst einmal viele Stammkunden gefunden, werden sich auch die Bannertauschprogramme bewähren. Werbung auf privaten Homepages ist bedeutend billiger. Private Betreiber haben oft große Mühe und viel Sorgfalt in die Entwicklung ihrer Angebote gesteckt. Ab 1.000 PageViews im Monat kann sich Werbung lohnen, € 10 bis € 30 für einen Platz auf der ersten Seite pro Monat sind üblich. Mit den hoch-
108
Online-Marketing
spezialisierten Seiten lassen sich Kunden äußerst gezielt ansprechen, die AdClick-Raten liegen bei bis zu 5 %. Allerdings können die wenigsten Homepage-Betreiber diese Werte nachweisen, da ihnen die nötige Technik fehlt. Befindet sich auf der Seite aber ein unabhängiger Zähler (Webcounter), so führt dieser eine Statistik über die Besucher der Seite. Fordern Sie diese Statistik als Nachweis an. Gute Counterprogramme berücksichtigen beispielsweise, dass jeder Besucher anhand seiner IP-Nummer nur einmal am Tag gezählt wird. Damit sind die nachgewiesenen Treffer tatsächlich immer wieder neue potenzielle Kunden. Wenn Sie auf der Suche nach privaten Homepages sind, helfen die Statistiken der Counteranbieter. Dort findet man häufig besuchte Seiten gut sortiert.
4.2.8
Kundenbindung
Nachricht per E-Mail Kunden binden und informieren ist gerade für Shopbetreiber wichtig. Newsmailer sind Verzeichnisse, in die sich Kunden eintragen können. Der Betreiber sendet dann regelmäßig per E-Mail Informationen zu. Der häufigste Anwendungsfall sind Anzeigen über Neuigkeiten auf der Webseite. Möglich wäre auch eine Art Hauspostille, die Ankündigung neuer Produkte und die Einladung zu Gewinnspielen oder Aktionswochen. Persönliche Anrede und kompakte Darstellung gehören zum guten Ton. Der Kunde muss die Möglichkeit haben, die Mailings jederzeit wieder abbestellen zu können.
Newsmailer
Außer den einmaligen Aufwendungen für die Einrichtung sind elektronische Mailings fast kostenlos zu betreiben; einzig die Inhalte müssen redaktionell bearbeitet werden. Für kleinere Shops gibt es auch Anbieter, die nur Newsmailer betreiben. Die Finanzierung der oft kostenlosen Angebote erfolgt durch zusätzlich an Ihr Angebot angehängte Werbebotschaften, die an den Empfänger gerichtet sind. Mailinglisten E-Mail-Mailinglisten sind, anders als die News, Selbstläufer. Jedes Mitglied einer solchen Liste kann mit bestimmten Kommandos die Liste steuern. Dazu gehört das Bestellen, Abbestellen oder das Auswählen von bestimmten Listen. Das Prinzip ist recht einfach. Jeder kann eine E-Mail an den (elektronischen) Listmanager senden, der diese Nachricht wiederum an alle anderen Mitglieder der Liste verteilt. So entsteht eine Online-Diskussion, deren Frequenz von der Postabfrage der Teilnehmer abhängt. Da heute bereits oft mehrfach täglich Post abgeholt wird, kann sich eine solche Liste schnell dynamisch entwickeln. Wird es zu viel (mehr als drei bis fünf Beiträge pro Tag ist den meisten Teilnehmern genug), können Sie die Listen in speziellere Themen teilen. Listen sind etwas aktiver als Gästebücher, dafür auch ein wenig aufdringlicher.
Mailinglisten
109
4 Basiswissen Online-Marketing
Gästebücher Gästebücher
Der „Ich-war-hier“-Effekt kann ausgenutzt werden, indem man ein Gästebuch installiert. Jeder Kunde kann wie an einem schwarzen Brett Kritik und Lob äußern, sich selbst verewigen und mit anderen Teilnehmern über den Shop schreiben. Gästebücher sind recht beliebt und werden von FrontPage 2002 durch einen speziellen Assistenten erstellt. Diskussionsforen (News)
Foren und Newsgroups
Die Newsgroups des Usenets sind für Shops wenig geeignet. Neben dieser Spielwiese für Freaks gibt es aber auch weborientierte Diskussionsforen. Hier können Nachrichten flexibler einander zugeordnet werden, als es dies Gästebücher ermöglichen. Kunden könnten in solch einem Forum über Produkte oder eigene Erfahrungen diskutieren. Die Newsforen haben noch nicht die Verbreitung wie die Gästebücher; sie sind deshalb für ein neues Angebot reizvoll. Auch hier haben Sie alle Chancen, mit FrontPage schnell eine attraktive Lösung zu schaffen, ein Forum wird einfach mit Hilfe eines Assistenten erstellt. Chat
Chat
Den direkten Kontakt zueinander erhalten Kunden in einem Online-Chat. Nachteilig ist, dass Chat nur funktioniert, wenn mindestens zwei Kunden gleichzeitig im System sind. Die meisten neuen Shops erreichen diese Quote nicht. Kommerzielle Chatsysteme sind dagegen weit verbreitet und funktionieren oft ununterbrochen. HTML-basierte Chatsysteme sind auch mit FrontPage einfach zu entwickeln und bieten einigen Unterhaltungswert.
4.3
Domainnamen
Domainnamen sind von enormer Bedeutung, denn der Name einer Seite stellt den Kontakt zwischen Internet-Welt und konventioneller Werbung her.
4.3.1 Wie sind die Domainnamen aufgebaut? Was ist eine URL?
Namen im Internet
Jedes Angebot im Internet wird normalerweise mit einem eindeutigen Namen angesprochen, der Adresse oder dem Uniform Ressource Locator (URL). Solche Namen setzen sich neben dem Protokoll (normalerweise http: für Webseiten) und dem Namen des Servers (meist www, um zu verdeutlichen, dass es sich um einen Webserver handelt) aus einem frei wählbaren Wort zusammen. Auf dieses Wort folgt die Toplevel-Domain, die das Land oder .com für kommerzielle internationale Seiten sein kann. Wichtige Ländercodes für deutschsprachige Angebote sind: 왘 .de für Deutschland 왘 .at für Österreich
110
Domainnamen 왘 .ch für Schweiz 왘 .li für Liechtenstein
Wenn man sich vorstellt, dass weltweit nur der Name zwischen all diesen festen Bestandteilen gewählt werden kann, wird schnell deutlich, dass es zu Überschneidungen und Rechtsproblemen kommen kann. Ein klarer Rechtsanspruch lässt sich deshalb nicht immer ableiten. Auf allgemeine Namen wie „bier“ oder „blumen“ besteht ohnehin kein Anspruch. Im Gegensatz zum realen Leben, wo jeder Blumenladen „Blumen“ als Schaufensterbanner schreiben darf, ist der Name „www.blumen.de“ weltweit einmalig. Der Inhaber kann ein kleines Blumengeschäft in der Vorstadt sein oder der größte deutsche Blumengroßhandel. Wer den Namen wirklich nutzen kann, entscheidet die Reihenfolge der Anmeldungen. Der richtige Name Nun käme aber niemand auf die Idee, den kleinen Blumenhändler Müller aus der Vorstadtgasse 13 im globalen Internet unter „blumen.de“ zu suchen. Der Weg geht eher über Suchmaschinen und lokale Verzeichnisse. Die Domain „blumen.de“ ist zwar für dieses Geschäft ganz witzig, aber eben nicht sinnvoll. Dennoch ist ein heißer Kampf um die letzten ungeschützten Domainnamen entbrannt. Geld und Fachwissen spielen dabei die entscheidende Rolle. Geld, weil die Anmeldung und der Betrieb einer Domain Gebühren bei den nationalen Network Information Centern (NIC) kostet, welche die Namen verwalten (und letztendlich muss immer wenigstens ein virtueller Server dahinter stehen), Fachwissen, weil die Rechtsstruktur uneinheitlich und Rechtsprechung widersprüchlich ist. Grundsatzurteile fehlen derzeit ganz; einzelne Klagen können zwar als Aussage zur Tendenz genutzt werden, eine Erfolgsgarantie ergibt sich daraus aber nicht.
Den passenden Namen zu finden ist eine Kunst.
Um das Angebot auffindbar zu machen, ist der Eintrag in Suchmaschinen und Verzeichnisse prinzipiell notwendig. Die Adresse, die dort angegeben wird, muss keinen Bezug auf ihren tatsächlichen Namen haben. Nur ganz wenige Firmen haben eine Marke, nach der die Domain benannt werden könnte. Je kürzer und präziser der Name ist, umso einfacher wird er gefunden, so die landläufige Meinung. Wichtig aber ist, dass der Name in der begleitenden konventionellen Werbung griffig gebracht werden kann. Gleichzeitig sollte ein Bezug auf den wirklichen Namen genommen werden. Denkbar sind auch Namenskonstruktionen um das Online-Angebot herum. Weniger sinnvoll ist dagegen der Zusatz „online“. Dass es sich bei einem Domainnamen um ein Online-Angebot handelt, ist selbstverständlich. Scheuen Sie sich nicht, etwas längere Domainnamen zu nehmen. Allzu radikale Abkürzungen sind kaum nachzuvollziehen und führen oft zu Problemen, da völlig andere Firmen zu denselben Abkürzungen kommen könnten. Wenn Sie die folgenden Regeln beachten, werden Sie bald den passenden Domainnamen finden:
Regeln helfen, Fehler zu vermeiden!
111
4 Basiswissen Online-Marketing 왘 Kurz oder lang?
Die Antwort lautet so kurz wie möglich und so lang wie nötig. Kürzen Sie nicht mit Gewalt ab, Sie haben 65 Zeichen Platz. Machen Sie den Namen aber nicht länger als zur Darstellung der Information nötig ist. 왘 Produkt oder Name?
Verwenden Sie Produktbezeichnungen nur dann, wenn es sich um eine wohlbekannte Marke handelt. 왘 Ort oder Name?
Wer nur lokal anbietet, sollte den Ort dazunehmen. 왘 Kreationen?
Fällt Ihnen gar nichts Passendes ein oder wirkt die Konstruktion unbeholfen oder unpassend, kann man auch einen Namen erfinden. Er sollte dann gut in die begleitende Werbung passen.
4.3.2
Alternativen
Verzeichnisse Wenn es mit einem eigenen Domainnamen nicht klappt, gibt es Alternativen.
Viele Provider bieten schon vorbereitete Domains an, die sich an bestimmte Themen anlehnen oder einfach nur Bezug auf einen Ort nehmen (zum Beispiel „berlin-shop.de“). Sie können unterhalb solcher Domains in der Regel sehr billige eigene Verzeichnisse bekommen. Der Verzeichnisname hat gleich mehrere Vorteile. Zum einen ist die Wahl des Namens weitaus freier als bei den Domains; ein Namenskonflikt auf demselben Server ist eher unwahrscheinlich. Zum anderen sind neue oder mehrere Verzeichnisse erheblich einfacher und schneller zu bekommen. Nicht zuletzt ist diese Variante auch die billigste. Eine eigene Domain ist im Internet schon zu einer Art Statussymbol avanciert. Auch im Hinblick auf den zunehmenden Mangel an Namen wird eine kurze, passende Domain als sehr professionell empfunden. Sie demonstrieren damit vor allem, sich frühzeitig mit der Thematik Internet beschäftigt zu haben. Gerade im technischen Gewerbe kann das von Vorteil sein. Generell gilt aber die Regel: Je größer die Firma, umso eher macht eine eigene Domain Sinn. Virtuelle Server Domainnamen setzen sich aus dem Servernamen und der Domain sowie dem Toplevel-Code zusammen. In der Wahl des Servernamens ist der Inhaber der Domain frei. Die meisten Firmen nennen ihren Webserver „www“, um die Verwendung als World Wide Web-Server zu demonstrieren.
112
Domainnamen
4.3.3
Konventionell werben
Noch mehr für das Angebot tun Die Adresse im Internet gehört wie die Telefonnummer auf jede Visitenkarte, in jede Anzeige, in jeden Fernsehspot. Ermitteln Sie aktiv neue Möglichkeiten der Werbung. Die Platzierung einer URL erzeugt Neugierde und sorgt für Wortwerbung, einen guten Domainnamen vorausgesetzt. Sie können so für Ihr Geschäft mit weniger Aufwand massenwirksam auftreten. Ihre Webadresse sollte erscheinen:
Kein Angebot ohne Werbung? Auch konventionell müssen Sie auf die Webseiten aufmerksam machen!
왘 auf jedem Fahrzeug als Aufkleber 왘 in Anzeigen 왘 in Fernsehspots 왘 auf dem Briefbogen 왘 auf Visitenkarten 왘 auf Paketzetteln und Lieferscheinen 왘 auf Verpackungen 왘 auf dem Stempel der Frankiermaschine 왘 als Bildschirmschoner auf allen Computern 왘 auf dem Firmenschild 왘 in den gelben Seiten 왘 auf Werbegeschenken, zum Beispiel Kugelschreibern 왘 im Sendekopf der Faxmaschinen
Darüber hinaus gibt es auch audiophile Kontakte, mit denen Sie im Rahmen des Üblichen für die Webadresse, ohne wesentliche Mehraufwendungen, werben können. Werben Sie: 왘 in Radio-Werbespots 왘 in der Ansage der Telefonwarteschleife (statt Düdelmusik mal ein kna-
ckiger Spot?) 왘 auf dem Ansagetext des Anrufbeantworters 왘 mit der Lautsprecherdurchsage im Laden 왘 mit Unterbrechern im Wartezimmer 왘 im Spielzeugbereich mit den sprechenden Spielzeugaffen oder -papa-
geien, denen Sie die URL beibringen können. Alle diese Aktionen kosten wenig oder bedürfen nur einer Änderung der Inhalte, nicht der Budgets. So wird das Angebot auch im Web Erfolg haben. Und nicht zuletzt hilft es, das Internet insgesamt zu promoten.
113
5
Basiswissen HTML
5.1
Die Sprache des Web – HTML
HTML, die Hypertext Markup Language, ist die Sprache des Webs. Grundlegende Kenntnisse sind für Webdesigner unerlässlich, auch wenn FrontPage 2002 viel Arbeit abnimmt und Arbeiten im Code nicht zwingend notwendig sind. In der Praxis hat sich gezeigt, dass die Nachbearbeitung der Seiten von Hand zu einem deutlichen Qualitätssprung führt.
5.1.1
Einführung in HTML
FrontPage enthält zwar einen grafischen Editor, erstellt aber daraus auch nur HTML-Codes. Wer professionell programmieren möchte, muss über HTML-Kenntnisse verfügen. Zum einen werden Sie immer wieder im Code arbeiten, zum anderen auch fremden Code lesen wollen. Perfekte Seiten entstehen auch erst, wenn zum Schluss noch „Hand angelegt“ wird.
Gute Websites brauchen gutes HTML!
Wenn Sie HTML bereits gut kennen, überspringen Sie dieses Kapitel. Es kann und soll auch kein HTML-Buch ersetzen. Für den Einsteiger in FrontPage werden aber manche Effekte und auch Möglichkeiten klarer, wenn die Struktur einer HTML-Seite bekannt ist. HTML-Seiten werden mit so genannten Tags (engl. für Marke) beschrieben. Jede HTML-Seite besteht aus Text im ASCII-Format und solchen Tags. Das gesamte Web ist eine gigantische Sammlung solcher HTML-Seiten, inzwischen dürften es viele Milliarden Seiten sein. HTML-Seiten sind reine Textseiten im ASCII-Format und können deshalb mit jedem einfachen Editor oder jeder Textverarbeitung erstellt werden. Wenn Sie ein Textverarbeitungsprogramm wie etwa Word 2002 verwenden, müssen Sie beim Speichern des Dokuments als Format „Nur Text“ angeben.
Der Begriff „Tag“
Alle Sonderzeichen und Umlaute werden in HTML mit speziellen Tags beschrieben. Sie finden im Referenzteil eine Tabelle mit allen entsprechenden Zeichen. Um HTML-Dateien zu kennzeichnen, wird als Extension .HTM oder .HTML verwendet. Werden serverseitig Skripte abgearbeitet, enden diese immer mit .ASP. Die Tags machen den Unterschied zwischen einer Textdatei und einer HTMLDatei aus. Das sind kurze Befehle in spitzen Klammern, „“, welche die Seite beschreiben. HTML ist keine Programmiersprache, Befehle zur Steuerung eines Ablaufs suchen Sie vergeblich. Neuere Entwicklungen wie Dynamic HTML oder XML verbessern nur die Design- oder Strukturierungsmöglichkeiten. Die Anwendung eines einfaches Tags ist hier dargestellt: Dieser Text ist fett
115
5 Basiswissen HTML
Sie sehen, dass diese Art Tag aus zwei Teilen besteht, einem Anfang und einem Ende, also ein Paar bildet. Nicht alle Tags haben diese Eigenschaft, manche sind einfach. Wenn es ein schließendes Tag gibt, muss dieses mit einem Schrägstrich eingeleitet werden. Ein solches Paar nennt man auch Container-Tag: Wie ein Container enthält es Daten, die in bestimmter Weise beeinflusst werden. Das Tag, deutsch etwa Marke oder Zeichen, wird in vielen Programmierund Beschreibungssprachen als Steuerzeichen verwendet. Die häufige Benutzung und die sprachlich relativ eindeutige Verwendung machen eine Übersetzung im Text nicht sinnvoll. Webseiten werden mit HTML gestaltet. Deshalb finden Sie viele Tags, die das Erscheinungsbild einer Seite beeinflussen können: Dieser Text ist rot
Dieses Tag ist schon etwas komplizierter. Wie bei Visual Basic kennen HTML-Tags Parameter oder Attribute – Werte, die den Grundbefehl modifizieren. Das schließende Tag muss keine Wiederholung dieser Parameter beinhalten. Auch die Anordnung der Parameter spielt keine Rolle: Ich bin grün Ich bin grün
Diese beiden Sätze erscheinen im Browser völlig identisch. Hier sehen Sie auch, wie Sonderzeichen behandelt werden. Das „Ü“ wird als ü (ein „U“ als „Umlaut“) geschrieben. Der Grundaufbau einer HTML-Seite sieht folgendermaßen aus: <TITLE>Das ist der Titel ....
Das Tag steht immer am Anfang einer Seite. Der Browser erkennt daran, um was für eine Art Dokument es sich handelt. Im Kopfbereich .. werden alle Einstellungen vorgenommen, die nicht sofort auf der Seite erscheinen. Hier können auch Skripte stehen, die im Browser zur Verfügung stehen sollen. Die eigentliche Seite wird im Bodybereich .. beschrieben.
116
Die Sprache des Web – HTML
5.1.2
Kleine Fallen in HTML
Im Zusammenhang mit der Programmierung von dynamischen Webseiten werden Skriptabschnitte in HTML eingebaut. Dabei sind Besonderheiten zu beachten, die bei der reinen HTML-Programmierung keine so entscheidende Rolle spielen. Da FrontPage 2002 intensiv serverseitige Skripte verwendet, werden Sie bei der manuellen Überarbeitung von Codes diese Tipps benötigen, um nicht lästige Fehler zu begehen. Anführungs- und Leerzeichen Schauen Sie sich noch einmal das kleine Beispiel mit der grünen Farbe an: Ich bin grün Ich bin grün
Vermeiden Sie lästige Fehler in HTML.
Obwohl die Anführungszeichen entfernt wurden, ändert sich am Ergebnis deshalb nichts. Die Anführungszeichen um die Parameterwerte sind entfallen. Kann man nun immer darauf verzichten? Nein. Muss man die Anführungszeichen immer setzen? Nein. Es gibt HTML-Tags, die ohne das Setzen von Anführungszeichen nicht korrekt funktionieren:
Das funktioniert leider nicht, denn der Browser interpretiert das Wort „Klick“ als Parameter und liest „mich!“ als nächsten Parameter. Das führt zwangsläufig zu einem Fehler. Um also Parameter mit Leerzeichen übermitteln zu können, müssen sie in Anführungszeichen gesetzt werden, wie im folgenden Beispiel:
Manchmal geschehen aber merkwürdige Dinge, bevor die Seite zum Browser gelangt. In Kapitel 14 erfahren Sie mehr zu der Programmierung von Skripten. ASP-Skripte werden in spezielle Zeichen eingebaut: . Diese Zeichenkombination kann es auch in HTML geben; eine Linie wird folgendermaßen gezeichnet:
Das funktioniert nur so lange, bis die Datei von der ASP-Engine verarbeitet wird. Denn die Zeichenfolge %> wird dort als Ende des Skripts interpretiert, und schon funktioniert weder die Linie noch das Skript. Wenn oft kleinere Skriptfragmente der Art mitten im HTML-Text stehen, verliert man leicht die Übersicht über die Zuordnung der Prozentzeichen. Sie sollten deshalb besser:
schreiben. Sowohl HTML als auch ASP erkennen dieses Tag. Können durch die Nutzung von Anführungszeichen alle Fehler vermieden werden? Leider benutzen auch VBScript und JScript, wie viele Skript- und Programmiersprachen, zur Kennzeichnung von Zeichenketten (engl. Strings) Anführungszei-
117
5 Basiswissen HTML
chen. Bei komplexen Befehlen werden Zeichenketten oft geschachtelt. Dann erscheinen plötzlich Wörter in Anführungszeichen, die in Parametern stehen, die wiederum in Anführungszeichen stehen. Und wieder kommt es zu merkwürdigen Syntaxfehlern. Achten Sie deshalb einfach auf diese zwei Ausnahmen: Parameter mit Leerzeichen und Parameter mit %-Zeichen gehören in Anführungszeichen, alle anderen nur dann, wenn es gut aussieht – schließlich programmiert das Auge mit. Beachten Sie, dass FrontPage bei einigen Funktionen selbst ASP-Skripte generiert und in Ihre Seiten einbaut. Folgen Sie deshalb den hier gezeigten Regeln auch dann, wenn Sie nicht selbst ASP-Skripte schreiben. Ein weiteres Problem stellen die Abstände in HTML dar: Es gibt sie nämlich nicht. Also werden Leerzeichen benutzt. Wenn Sie HTML noch nicht so gut beherrschen und mit den Beispielen experimentieren, wird irgendwann der Einsatz von Leerzeichen als Wortabstand in Erwägung gezogen: Ein normaler Satz E i n g e s p e r r t e r S a t z E i n g e s p e r r t e r S a t z
Das Ergebnis entspricht nicht den Erwartungen, wie in Abbildung 5.1 gezeigt. Abbildung 5.1: Der Browser fasst mehrere Leerzeichen zu einem zusammen
Browser ignorieren also Leerzeichen? Nicht ganz – mehrere Leerzeichen werden zu einem zusammengefasst. Für diese Fälle gibt es das Sonderzeichen – ein so genanntes hartes Leerzeichen. Plattformprobleme Andere Probleme ergeben sich aus der browserabhängigen Darstellung von HTML-Seiten. So greift das -Tag auf die lokal gespeicherten Schriften zurück. Arial beispielsweise gibt es nur auf dem PC, die alternativ verwendbare Helvetica weicht in ihrem Schriftschnitt davon etwas ab. Ältere Browser können zudem das Tag nicht interpretieren und ignorieren die Schriftangabe ganz. Das ist auch das Risiko bei den neuesten HTMLStandards: HTML 4, Dynamic HTML, Cascading Style Sheets und XML sind
118
HTML-Grundlagen
neuere Entwicklungen. Aber die Möglichkeiten der Anwendung sind auf vielfältige Weise eingeschränkt. Manche Browser beherrschen nur einen Teil, jeder Browsertyp natürlich einen anderen. Die beiden größten Browserhersteller Netscape und Microsoft überbieten sich gegenseitig in der Erfindung zueinander inkompatibler Erweiterungen der aktuell empfohlenen Standards. Die Basis der Standardisierung ist das World Wide Web Consortium W3C (http://www.w3.org). Auf dieser Webseite können Sie sich über die neuesten „offiziellen“ Möglichkeiten informieren.
5.2
HTML-Grundlagen
Dieser Abschnitt zeigt die wichtigsten HTML-Elemente. Dabei kommt es nicht auf Vollständigkeit an, sondern auf die Vermittlung des Prinzips des Seitenaufbaus. Mehr Informationen für die praktische Arbeit finden Sie in der HTML-Referenz im Anhang.
5.2.1
HTML pur
Sie finden hier die wichtigsten Grundbefehle in HTML. Den Basisaufbau einer HTML-Seite haben Sie bereits gesehen. Um ein Gefühl für die Arbeitsweise zu bekommen, nutzen Sie nicht den grafischen Editor von FrontPage. Wechseln Sie in die Quelltextansicht und tippen Sie den folgenden Text ein:
Die Struktur einer HTML-Seite
<TITLE>Testseite Das ist mein erster Test mit HTML
Speichern Sie die Seite und rufen Sie sie lokal auf. Das Ergebnis zeigt Abbildung 5.2. Abbildung 5.2: Die kleine HTMLTestdatei in Aktion
119
5 Basiswissen HTML
5.2.2
Ein bisschen Farbe
Viele HTML-Tags können Attribute haben, welche die Farbe des Elementes beeinflussen. Ursprünglich war Farbe das einzige Gestaltungsinstrument. Erst spätere Versionen von HTML kannten verschiedene Schriftarten. Die Farbe wurde auch dazu benutzt, um Hyperlinks hervorzuheben. Sie sollten Farbe sehr sorgfältig einsetzen und sich immer Gedanken über die Gesamtkomposition der Seite machen. Als erste Farbe wird die Hintergrundfarbe der Seite definiert. Sie müssen den Hintergrund immer angeben, denn die Standardeinstellung der Browser ist unterschiedlich: Der Internet Explorer zeigt einen grauen, der Netscape Navigator einen weißen Hintergrund an. Hier ein Beispiel: <TITLE>Einstellen der Hintergrundfarbe Hallo Welt! Listing 5.1: Einstellen der Hintergrundfarbe Tabelle 5.1: Die Standardfarben, deren Farbnamen und der hexadezimale RGB-Wert
120
Farbe
Farbname
RGB-Wert
Schwarz
Black
#000000
Dunkelblau
Blue
#000080
Hellblau
Navy
#00FFFF
Violett
Fuchsia
#FF00FF
Grau
Gray
#808080
Dunkelgrün
Green
#008000
Limone
Lime
#00FF00
Rotbraun
Maroon
#800000
Olive
Olive
#808080
Lila
Purple
#800080
Rot
Red
#FF0000
Silber
Silver
#C0C0C0
Türkis
Teal
#008080
Weiß
White
#FFFFFF
Gelb
Yellow
#FFFF00
HTML-Grundlagen
Mit dem Parameter BGCOLOR im Tag zeigen alle Browser die richtige Farbe an. Sie können Farben immer im hexadezimalen RGB-Format angeben. Dabei steht je eine zweistellige hexadezimale Zahl für den Farbwert ROT, GRÜN oder BLAU (RGB). Alternativ kennt HTML einige vordefinierte Namen für Farben, die Sie Tabelle 5.1 entnehmen können. Die Farbliste in Tabelle 5.1 ist keineswegs vollständig. Aus technischen Gründen wurden die ersten Versionen von HTML auf die damals verfügbare Farbtiefe von 16 Farben einer Standardgrafikkarte abgestimmt. Diese 16 Farben lassen sich sicher darstellen. Heute verwenden auch die billigsten Grafikkarten wenigstens 256 Farben. Die Browser können inzwischen auch mehrere Dutzend Farbnamen interpretieren. Unabhängig davon gibt es keine Beschränkung der Farbwerte, alle Varianten, die mit der hexadezimalen Darstellung möglich sind, lassen sich theoretisch auch darstellen. Kann der Browser auf entsprechende Ressourcen der Hardware nicht zugreifen, erzeugt er gerasterte Mischfarben oder nähert sich der nächsten verfügbaren Farbe an. Da die meisten Computer heute über eine sehr hohe Farbzahl verfügen, ist die Wahrscheinlichkeit einer korrekten Darstellung recht hoch. RGB-Werte sind eine gute Basis, korrekte Farbwerte zu übermitteln und für eine konstante Darstellung zu sorgen. Wie es wirklich funktioniert: Farben im Computer Intern speichert jeder Computer die Farbwerte mit drei Werten, je einer für Rot, Grün und Blau. Jeder Wert hat einen bestimmten Wertebereich, dessen Größe die verfügbare Farbtiefe auf dem System repräsentiert. Moderne Computer nutzen 1 Byte pro Farbwert. Der Wertebereich reicht also von 0 bis 255 oder hexadezimal von 00 bis FF. Sind alle drei Farbwerte 0, entsteht Schwarz (keine Farbe), sind alle drei Werte 255, entsteht Weiß. Praktisch stehen durch diese Angabe 16,7 Millionen Farben (genau 16.777.216) zur Verfügung (256x256x256). Hexadezimalzahlen haben den Vorteil, dass der gesamte Wertebereich mit einer konstanten Stellenzahl bedient und dadurch die Lesbarkeit der Werteangabe verbessert wird (17525187 kann man nicht eindeutig interpretieren).
5.2.3
Text und Layout
HTML kennt nur sehr beschränkte Layoutmöglichkeiten, echte Layoutfunktionen fehlen ganz. Die Sprache wurde ursprünglich nicht für diesen Zweck entworfen, sodass man mehr oder weniger große Kompromisse eingehen muss, wenn nicht das Allheilmittel Bild als Lösung herangezogen werden soll.
Einfache textorientierte Layoutbefehle
Der folgende Quelltext sieht auf den ersten Blick sehr einfach aus: <TITLE>Zwei Textzeilen
121
5 Basiswissen HTML
Dies ist die erste Zeile. Und hier kommt die zweite Zeile. Listing 5.2: So funktionieren Zeilenumbrüche in HTML nicht
Wenn Sie diesen Code eingeben und vom Browser anzeigen lassen, ignoriert dieser den Zeilenumbruch am Ende der ersten Zeile: Dies ist die erste Zeile. Und hier kommt die zweite Zeile.
Der Grund ist der Drang nach systemübergreifender Austauschbarkeit der HTML-Dateien. Nicht jedes System kennt die ASCII-Codes CRLF, die hier eingefügt wurde. Dafür gibt es das HTML-Tag . „BR“ steht für BREAK (Umbruch) und fügt eine neue Zeile ein. Und so funktioniert es richtig: <TITLE>Zwei Textzeilen Dies ist die erste Zeile. Und hier kommt die zweite Zeile. Listing 5.3: Zeilenumbrüche in HTML ( )
Bedenken Sie beim Einsatz, dass das Tag kein Container ist; es gibt kein schließendes Tag. An der Stelle, an der erscheint, wird ein Zeilenumbruch ausgeführt, sonst nichts. Zur Absatzformatierung ist das natürlich zu wenig. Dafür gibt es das Tag
. „P“ steht für Paragraph (Absatz oder Abschnitt). <TITLE>Zwei Textzeilen Dies ist die erste Zeile. Und hier kommt die zweite Zeile.
Die dritte Zeile steht hier.
Auch die vierte Zeile ist ein Absatz.
Dann kommt die fünfte Zeile. Listing 5.4: Absätze und Zeilenumbrüche
122
HTML-Grundlagen
Das Ergebnis zeigt die Unterschiede zwischen und
sowie die Verwendung von
als Container ebenso wie als allein stehendes Tag. Mehr Anwendungsmöglichkeiten finden Sie im Abschnitt „Cascading Style Sheets“ (CSS). Abbildung 5.3: Wirkung von und
auf die Zeilenschaltung und den -abstand
Die Verwendung des schließenden Tags
ist in den meisten Fällen nicht freiwillig. Wenn
mit Attributen gekoppelt wird, ist es notwendig, den Wert als Container zu benutzen. Im folgenden Quellcode ist Text links, rechts und zentriert ausgerichtet:
Zeilenausrichtung
<TITLE>Zwei Textzeilen
Diese Zeile steht links.
Jetzt klebt sie am rechten Rand.
Und in der Mitte geht es auch.
Listing 5.5: Ausrichtung von Text auf den Zeilen
Ohne die abschließenden Tags würde der Text fortlaufend formatiert werden. Der Standardwert ist die Ausrichtung am linken Rand. Browser, die älter als die Version 3 des Netscape Navigators und des Internet Explorers sind, kennen diese Parameter des
-Tags noch nicht. Nutzen Sie für die Zentrierung von Texten besser das spezielle Tag Ich bin in der Mitte, mit dem sich auch mehrere Zeilen Text zentrieren lassen. Leider gibt es keinen so einfachen Weg, Text rechtsbündig anzuordnen. Um Text auszurichten, gibt es zusätzlich das Tag . „PRE“ steht für Preformattet (vorformatiert). Innerhalb dieser Abschnitte, auch wird als Container mit einem schließenden versehen, werden die sonst unter-
123
5 Basiswissen HTML
drückten Leerzeichen mit ausgegeben. Zudem wird ein nichtproportionaler Font verwendet. verwendet auf Windows-Systemen einen Font mit fester Größe, der sich nicht an die übrigen Einstellungen des Browsers anpasst. Das folgende Beispiel verwendet Leerzeichen und verzichtet auf das Tag , um das Einrücken kenntlich zu machen: <TITLE>Text mit PRE formatieren Das ist ein Test. Das ist ein Test. Das ist ein Test. Listing 5.6: Einrückungen mit formatiertem Text Abbildung 5.4: Jeder Nutzer kann in seinem Browser entscheiden, welche Fonts verwendet werden
Das Ergebnis entspricht durchaus den Erwartungen. Leider sind in den Browsern Einstellungen möglich, die das Verhalten der Schrift stark beeinflussen. Wie am Fehlen der -Tags zu sehen ist, nimmt der Browser den vorformatierten Text ohne Änderung. Zeilen werden also am Ende des Browserfensters auch nicht umbrochen. Das ist insofern bedenklich, weil die Größe des Fensters nicht bekannt ist. Und, noch schwerwiegender, bricht mit der Grundidee des HTML. Jeder Computer, egal mit welchem Betriebssystem, sollte die Seiten identisch anzeigen. Durch die direkte Übermittlung von Leerzeichen und Zeilenumbrüchen besteht keine Garantie, dass die unter Windows erzeugte ASCII-Datei auf einer UNIX-Workstation auch richtig angezeigt wird. Letztendlich entscheidet der verwendete Editor, welche Zeichenkombination er am Ende jeder Zeile für den Zeilenumbruch einfügt.
124
HTML-Grundlagen
5.2.4
Linien
Eine einfache Form der Formatierung von Webseiten besteht im Einfügen von horizontalen Linien. Vertikale Linien gibt es leider nicht als HTML-Tag.
Horizontale Linien
<TITLE>Linien im Text Das ist ein Text vor der Linie. Das ist ein Text nach der Linie. Listing 5.7: Horizontale Linien Abbildung 5.5: Formatierung einer HTML-Seite mit horizontalen Linien.
Abbildung 5.5 zeigt die Wirkung der Linie. Es wird ein einfacher Zeilenumbruch hinter dem letzten Zeichen eingefügt, die Linie füllt den gesamten Raum zwischen den Seitenrändern des Browsers. Um das Verhalten der Linie beeinflussen zu können, gibt es verschiedene Attribute. Hier ein Beispiel für die Festlegung der Breite einer Linie: <TITLE>Linien im Text
125
5 Basiswissen HTML
Listing 5.8: Attribute für Linien
Sie können die Breite entweder mit absoluten Werten in Pixel bestimmen oder von der aktuellen Größe des Browsers mit einem prozentualen Wert abhängig machen.
5.2.5
Formatierungen
Schrift formatieren Einfacher Text mit Linien und Zeilenumbrüchen ist optisch nicht sehr ansprechend. Der nächste Schritt ist die Strukturierung des Textes mit verschiedenen Fonts und Schriftgrößen. Das dazu benutzte Tag kennt drei Attribute zur Beeinflussung der Schrift – SIZE (Größe), COLOR (Farbe) und FACE (Font). <TITLE>Schriftformatierung Das ist ein kleiner Text.
Das ist ein großer Text.
Das ist ein kleinerer Text.
Das ist ein größerer Text. Listing 5.9: Schriftarten und -größ en Grundschrift
Die Größe der Schrift kann mit sieben Werten zwischen 1 und 7 festgelegt werden. Neuere Browser kennen wieder Einstellmöglichkeiten, die zu jedem Wert eine korrespondierende Schriftart und -größe bieten. Neben diesen absoluten Angaben sind auch relative Werte möglich. Im Beispiel sind die letzten beiden Sätze relativ zum Basisfont, der gerade verwendet wird. Sie können den Basisfont mit dem Tag festlegen. arbeitet genau wie : <TITLE>Schriftformatierung
126
HTML-Grundlagen
Das ist die Schrifthöhe 5.
Das ist weniger als 5.
Das ist mehr als 5. Listing 5.10: Angabe eines Standardfonts
Die neuesten Weiterentwicklungen im Zusammenhang mit CSS lassen auch die Angabe von Punkteinheiten für Fonts zu. Allerdings können ältere Browser das nicht richtig interpretieren. Die Farbe kann mit dem Attribut COLOR eingestellt werden. Als Parameter sind Namen und Farbwerte zulässig. Der folgende Quellcode zeigt ein Beispiel mit einfachen Farbnamen:
Schriftfarbe Schriftfarbe Das ist die Standardfarbe.
Das ist Rot.
Das ist Blau. Listing 5.11: Schriftfarbe wählen
Sie können hier natürlich auch alle RGB-Werte einsetzen, wie bereits weiter vorne beschrieben. Das spannendste Attribut ist FACE, die Einstellung der Schriftart. Leider ist FACE nicht Bestandteil der offiziellen HTML 3.2-Spezifikation. Neuere Browser unterstützen es zwar, aber eine Garantie für die Verwendung gibt es nicht. Die Browser ab Version 4 haben inzwischen einen Anteil von über 80%. Zunehmend kommen aber einfache Settop-Boxen auf den Markt, die das Internet auch den Menschen erschließen sollen, die keinen PC besitzen. Die eingebauten Browser sind aus Kostengründen in ihrer Funktionalität eingeschränkt und kaum mit den über 10 MByte großen Boliden aus der PCWelt zu vergleichen. Damit stehen auch keine PC-typischen Schriftfonts zur Verfügung. Trotzdem kann FACE durchaus flexibel verwendet werden:
127
5 Basiswissen HTML
<TITLE>Schriftformatierung mit FACE Das ist die Standardschriftart.
Das ist Arial.
Das ist Frutiger.
Das ist Frutiger oder Arial.
Das ist Helvetica oder eine systemabhängige Variante. Listing 5.12: Auswahl verschiedener Schriftfonts
Listing 5.12 zeigt die Möglichkeiten des Einsatzes. Frutiger ist eine typische Schrift auf dem Apple Macintosh. Beobachten Sie die Reaktion in Ihrem Browser, wenn die Schrift lokal nicht installiert ist. Die letzte Zeile zeigt die Angabe mehrerer Schriften. Der Browser sucht die zuerst angegebene Schriftart, kann das Betriebssystem diese nicht bereitstellen, wird der nächste Font gesucht usw. Diese Programmierung sollte in den meisten Fällen funktionieren. Denken Sie aber auch an die Geräte, die möglicherweise nur zwei oder drei Fonts bereitstellen. CSS ersetzen zwar das Tag , sind aber wiederum auf die neuesten Browser der PC-Welt beschränkt. Relative Groß- und Kleinschrift Relative Schriftgrö ß en <SMALL>
Neben dem Tag für die Angabe der Schriftgröße lassen sich einige andere Tags benutzen, die alle relativ arbeiten. Die relativen Angaben sind immer zu bevorzugen, denn die Webseite kann so auf die Größe des Browserfensters flexibel reagieren. Wenn Farbe oder Schriftart keine Rolle spielen, kann die Anwendung der Tags <SMALL> und ausreichend sein. <TITLE>Schriftformatierung mit SMALL und BIG Das ist die Standardschriftart.
Ich bin groß.
128
HTML-Grundlagen
<SMALL>Ich bin klein. Listing 5.13: Schriftformatierungen
Überschriften zur Strukturierung Das Ziel von HTML war die Strukturierung von Text. Dazu gehört in erster Linie eine Gliederung des Textes. Für Überschriften gibt es ein besonderes Tag, das auch die Größe des Fonts bestimmt:
Überschriften ...
<TITLE>Schriftformatierung mit Header Das ist ziemlich riesig. So geht es auch. Auch kleine Überschriften müssen sein. Listing 5.14: Überschriften verwenden
Die Ziffer hinter dem ist kein Attribut, sondern Teil des Tags und muss auch im schließenden Tag wiederholt werden. Es gibt eigentlich sechs Stufen, die direkt mit bis angesprochen werden. Ein Zeilenumbruch ist nach nicht nötig, die Überschrift gilt immer als eigener Absatz. Theoretisch wird die Schrift durch das Tag in ihrer Bedeutung gewichtet. Es gibt allerdings keine Garantie, dass sich dieses Tag nur auf die Höhe auswirkt. In der Praxis verwenden aber alle Browser hier nur eine andere Größe. Text Fett setzen, unterstreichen und durchstreichen Innerhalb des Fließtextes sind einige elementare Formatierungen möglich. Dazu gehören fetter Text mit , kursiver Text mit und durchgestrichene Wörter mit <S> oder <STRIKE>. <STRIKE> ist bei älteren Browsern eher üblich und wurde erst später durch <S> abgelöst. In Zukunft soll allerdings nur noch <S> benutzt werden. HTML erlaubt auch die Unterstreichung von Text. Da Hyperlinks ebenfalls durch Unterstreichung markiert werden, kann die Verwendung im Fließtext zu Verwirrungen führen. Vermeiden Sie deshalb nach Möglichkeit Unterstreichungen.
129
5 Basiswissen HTML
<TITLE>Schriftformatierung mit weiteren Attributen Das ist die Standardschriftart. Ich bin fett. Ich bin kursiv. Ich sehe so aus, bin aber kein Hyperlink. <S>Ich bin eine Variante des Durchstrichs. <STRIKE>Ich bin eine Variante des Durchstrichs. <S>Ich will ALLES! Listing 5.15: Schriftformatierungen Abbildung 5.6: Die Formatierungsmöglichkeiten von HTML: Fett, Kursiv, Unterstreichen und Durchstreichen. Alle Werte lassen sich auch kombinieren.
Der Quellcode in Listing 5.15 zeigt die Möglichkeiten der einfachen Formatierung. Das Ergebnis sehen Sie in Abbildung 5.6. Hoch- und tiefstellen
Hoch und tief <SUP>, <SUB>
130
In manchen Fällen müssen Formeln oder bestimmte Werteangaben mit Indizes oder Potenzen geschrieben werden. Dazu kennt HTML zwei spezielle Tags: <TITLE>Hoch und Tief Wasser: H<SUB>2O
70 qm sieht besser so aus: 70 m<SUP>2
HTML-Grundlagen
Listing 5.16: Hoch- und Tiefstellungen
5.2.6
Sonderzeichen
Sonderzeichen sind ein besonderes Thema, denn prinzipiell darf nur reiner ASCII-Text übermittelt werden. Jedes Zeichen, das nicht in der StandardASCII-Tabelle steht, muss speziell codiert werden. In den vorangegangenen Beispielen wurden schon einige Zeichen für Umlaute und das „ß“ benutzt. Die wichtigsten Zeichen sind im deutschsprachigen Raum die Umlaute. Sie können sich die Codierung leicht merken, denn alle Umlaute sind nach dem gleichen Schema aufgebaut:
Umlaute und Sonderzeichen
<TITLE>Schriftformatierung mit weiteren Attributen Ich bin ein Umlaut: AE=Ä OE=Ö UE=Ü
Auch Warenzeichen sind verwendbar: ® Listing 5.17: Verwendung von Umlauten
Sonderzeichen werden immer durch das Zeichen & eingeleitet und mit einem Semikolon beendet. Umlaute bestehen aus dem &, dem Basisvokal (groß oder klein) und dem Code uml für Umlaut. Das ß ist eine Ligatur, der entsprechende Code heißt ß. Ein weiteres sehr wichtiges Sonderzeichen ist das Leerzeichen. Nein, nicht das, was Sie mit der Leertaste eintippen. HTML schiebt nebeneinander stehende Leerzeichen und andere so genannte Whitespaces (nicht sichtbare Zeichen) wie Tabulatoren zu einem Leerzeichen zusammen. Um Text trotzdem durch Leerräume trennen zu können, gibt es das Sonderzeichen , mit dem ein hartes Leerzeichen erzeugt wird. Die Zeichen < sowie > sind ebenfalls wichtig. Damit werden die Symbole < und > erzeugt. Schreiben Sie einfach die spitzen Klammern im Text, wird HTML darüber stolpern und annehmen, ein neues Tag beginnt oder endet. Sie müssen statt der spitzen Klammern (oder Größer-als bzw. Kleinerals-Zeichen) immer die Codes nehmen. LT steht für less than (kleiner als) und GT für greater than (größer als).
Links zu anderen Dateien Das gesamte Web besteht aus so genannten Hyperlinks. Jeder Link zeigt auf eine andere Datei oder eine bestimmte Stelle innerhalb dieser Datei. An die Domain kann sich direkt ein Dateiname anschließen und eine Position in der Datei, wenn es sich um eine HTML-Datei handelt. Links, die in HTML eingebaut werden, können zur Lage der Datei auf dem Webserver relativ oder absolut sein. In letzterem Fall spricht man von einer vollständig qualifizierten Adresse. Links, die aus der eigenen Website herausreichen, müssen immer vollständig sein. <TITLE>Ein Hyperlink entsteht Ich bin ein Hyperlink zu Microsoft. Listing 5.18: Ein Hyperlink entsteht
Das Beispiel erzeugt den Satz: Ich bin ein Hyperlink zu Microsoft. Wenn Sie im Browser mit der Maus über das unterstrichene Wort fahren, ändert sich der Mauszeiger; beim Klick auf das Wort wechselt der Browser zur angegebenen Ziel-URL „www.microsoft.com“. ist ein Container-Tag, das als wichtigsten Parameter das Sprungziel des Links enthält. Alles innerhalb des Containers wird gegenüber der Maus sensitiv, egal ob es sich um Text oder eingebundene Bilder handelt.
132
HTML-Grundlagen
Links auf fremde Webseiten Links auf fremde Webseiten sind üblich und normalerweise gewollt. Zusätzliche Links auf andere Seiten bringen Traffic, das oberste Ziel aller Webseiten. Trotzdem ist Vorsicht geboten. Wenn Ihre Webseite von einer Suchmaschine durchforscht wird, könnte der Link zu einer Indizierung der verlinkten Namen führen. Sind darunter auch Wettbewerber, führt die Suche nach deren Namen möglicherweise auf Ihre Webseite. Aus diesem Grund sind in Deutschland Firmen schon erfolgreich abgemahnt worden. Schreiben Sie die folgenden kleinen Hyperlinks in jeweils eine Datei. Starten Sie dann den Browser und rufen Sie das erste Programm auf. Sie können nun durch Klicken auf die Links zwischen den Programmen wechseln. Da der Link nicht vollständig ist, müssen beide Dateien im selben Verzeichnis liegen. Dieser Text erscheint fett und rot. Listing 5.54: Verstecken von Style-Definitionen vor älteren Browsern
Browser, die etwas mit CSS anfangen können, sind intelligent genug, um auch in die Kommentare „hineinzusehen“.
167
5 Basiswissen HTML
Die Deklaration kann gleichzeitig für mehrere Attribute und mehrere Tags vorgenommen werden: <TITLE>CSS richtig anwenden <STYLE> H1,H2 {font-style: italic; font-size: 20pt; font-family: Arial; background: yellow} Dieser Text erscheint groß, kursiv und in Arial Auch dieser Text erscheint so! Listing 5.55: Weitere Formatierungen mit CSS
Der eigentliche Fortschritt liegt in den layouttypischen Angaben mit Schriftgrößen in Punkt oder Fontfamilien. Sie können solche Definitionen für alle Container-Tags definieren, auch
und . In den meisten Fällen wird es aber nicht viel Sinn machen, das Verhalten eines bestimmten Tags im gesamten Dokument zu ändern. CSS bieten deshalb die Möglichkeit, Klassen zu definieren: <TITLE>CSS richtig anwenden <STYLE>
Dieser Text erscheint groß, fett und in Arial
Dieser Text erscheint kleiner, kursiv und in
168
Cascading Style Sheets
Times
Listing 5.56: Klassendefinitionen erleichtern die Organisation
Jetzt können Sie das eine oder andere
immer wieder verwenden und auch auf die ursprüngliche, nicht umdeklarierte Variante zurückgreifen. Obwohl das alles schon recht fortschrittlich ist, stört die enge Kopplung an HTML manchmal. Klassen können deshalb auch frei, das heißt, ohne Bindung an ein bestimmtes Tag deklariert werden: <TITLE>CSS richtig anwenden <STYLE>
Dieser Text erscheint groß, fett und in Arial
Eintrag eins
Eintrag zwei Listing 5.57: Anwendungsbeispiel mit Listen
Achten Sie auf den Punkt vor dem Klassennamen in der Deklaration. Die Verwendung bietet zwar gewisse Freiheiten, erleichtert aber kaum die Programmierung der Seite. Dafür gibt es kontextsensitive Deklarationen.
5.3.2
CSS im Detail
Sie können Style Sheets auf vier verschiedenen Wegen benutzen: 왘 Innerhalb der HTML-Tags 왘 Als Definitionsdatei innerhalb der HTML-Datei 왘 Als verbundene externe Style-Datei 왘 Als importierte (eingefügte) Style-Datei
169
5 Basiswissen HTML
Style-Attribute in HTML-Tags Diese Syntax erweitert jedes HTML-Tag um entsprechende Style-Informationen. Der Parameter STYLE wird eingefügt:
Ein Beispiel zeigt, wie dies praktisch aussieht: In the navy.
Beachten Sie, dass dabei nur dieses eine Element geändert wird, die anderen Vorkommen von verhalten sich unverändert. Der Vorteil ist eine größere Präzision der Seiten, der Nachteil ein schwerer lesbarer und komplizierter Code. Eingebettete Style Sheets Für eingebettete Style Sheets wird ein Block mit den Tags <STYLE> und gebildet. Normalerweise steht diese Anweisung im Teil . In diesem Block werden die Regeln definiert, die auf mehrere Elemente angewendet werden. Die Regeln bestehen aus zwei Teilen: 왘 Einem Selektor, der ein HTML-Tag oder eine Gruppe repräsentiert 왘 Einer Deklaration, die den Selektor bedient
Für die entsprechende Syntax spielen Groß- und Kleinschreibung keine Rolle: selector { attribute:value ; attribute:value; …. }
HTML-Tags als Selektoren werden ohne die umgebenden spitzen Klammern geschrieben. Achten Sie aber auf die geschweiften Klammern und die richtige Setzung der Semikola. Ein Beispiel mit zwei Regeln, für das Abbildung 5.20 das Ergebnis zeigt: <STYLE>
Nicht jeder Absatz hat eine silberne Linie, die fett aussieht.
170
Cascading Style Sheets Abbildung 5.20: CSS in Aktion
Verbundene Style Sheets Sie können umfangreiche Deklarationen auch in eine Extradatei schreiben und dann mit dem Dokument verbinden. Dazu wird das Tag verwendet:
Sie schreiben in die Datei MYSTYLES.CSS Ihre Definitionen, aber ohne die Tags <STYLE> und die Kommentare
537
15 Programmierung von Webseiten
Willkommen auf unserer Homepage!
Die Direktive wird in einem HTML-Kommentar versteckt. Mit dem Schlüsselwort FILE wird auf eine absolute Pfadangabe hingewiesen. Das gilt auch für Dateien im selben Verzeichnis. Das Schlüsselwort VIRTUAL zeigt dagegen an, dass es sich um die Pfadangabe eines virtuellen Verzeichnisses handelt. Alternativ können Sie FILE verwenden, um einen absoluten Pfad zu definieren. Laufwerksangaben beziehen sich natürlich auf den Webserver. Beachten Sie das auch, wenn die Programmierung der Skripten auf einem Entwicklungssystem stattfindet, auf dem andere Pfade verwendet werden.
15.4 Webserver-Bibliothek 15.4.1
Die Objekte Request und Response
Jeder Datenaustausch zwischen Webserver und Browser besteht aus den Prozessen Request (Anforderung) und Response (Antwort), bei denen interne Informationen ausgetauscht werden. Wann immer Daten übertragen werden, wird auf diese beiden Objekte und deren Methoden und Eigenschaften zugegriffen. Man kann beide Objekte eigentlich nicht trennen, denn die Prozesse gehören häufig zusammen. Antwortkontrolle mit Response
Das Objekt Response ist ein klassisches Objekt mit Kollektionen, Methoden und Eigenschaften. Durch diese Methoden und Eigenschaften werden viele Funktionen des Webservers direkt kontrollierbar. Zum erfolgreichen Einsatz ist die Kenntnis des Protokolls HTTP sinnvoll. Eine Beschreibung finden Sie im Abschnitt 3.1.3. Die Grundeigenschaft des Objekts Response ist die Übermittlung von Daten an den Webserver, der diese Informationen direkt an den Browser weiterleitet. Normalerweise senden Webserver Informationen, die sie erhalten, sofort weiter. Manchmal kann sich eine Seite unter Umständen auch deshalb langsam aufbauen, weil der Server mit der Berechnung beschäftigt ist und die Seite regelrecht zusammenbaut. Testen Sie das folgendes Skript: <TITLE>Buffer Beispiel .
Sie sehen praktisch in Echtzeit, wie die Schleife arbeitet und Wert für Wert im Browser erscheint. Die innere Schleife bremst etwas und gibt Punkte aus, um die Ausgabe besser zu veranschaulichen. Mit dem Beispiel kennen Sie schon die erste Methode des Objekts: Write. Spannend ist immer die Abfrage von Servervariablen, teilweise werden wertvolle Informationen vom Browser geliefert. Versuchen Sie:
Setzen Sie für „variable“ eine der folgenden Zeichenketten ein. Nicht alle Werte werden für die praktische Programmierarbeit wirklich benötigt. Die wichtigsten sind: 왘 HTTP_REFERER
Wenn Ihre Seite durch Anklicken eines Hyperlinks auf einer anderen Seite erreicht wurde, enthält diese Variable die URL der Seite, von der der Nutzer kam. Oft sind es Suchmaschinen wie YAHOO!. Die Auswertung gibt wertvolle Hinweise, wer Ihre „heimlichen Werbeträger“ sind. 왘 HTTP_USER_AGENT
Der Typ des Browsers wird angezeigt. Sie können auswerten, welche Browser Ihre Nutzer bevorzugen, und die Gestaltung der Seiten daraufhin ausrichten. 왘 REMOTE_ADDR
Dieses Feld enthält die IP-Adresse, mit der der Browser die Verbindung hergestellt hat. Daraus können Sie mit Hilfe eines Domainname-Servers (DNS) die Domain rekonstruieren. Bedenken Sie aber, dass große Onlinedienste und Provider IP-Adressen dynamisch vergeben und derselbe Nutzer jeden Tag eine andere Nummer haben kann. Sie können aber die Class-B- und -C-Netze auswerten und feststellen, ob häufiger von T-Online oder AOL aus zugegriffen wird. 왘 QUERY_STRING
Diese Variable enthält die Zeichenkette nach dem Fragezeichen, dem Trennzeichen für die Übertragung von Parametern zum Server. Die Verwendung lernen Sie bei der Übergabe von Formulardaten kennen. 왘 SCRIPT_NAME
Dies ist der virtuelle (relative) Pfad der aktuellen ASP-Seite. Damit können Sie Seiten automatisch mit sich selbst referenzieren, ohne den Stand-
539
15 Programmierung von Webseiten
ort zu kennen. Diese Funktion ist wertvoll, wenn Sie Skripten schreiben, die Sie verkaufen möchten und die auf jedem Webserver ohne Änderungen arbeiten sollen. 왘 SERVER_NAME
Der Name des Webservers oder die IP-Adresse. 왘 PATH_TRANSLATED
Der physische Pfad des ASP-Skripts auf der Festplatte des Webservers.
15.4.2
Daten aus einem Formular entnehmen
Der einzig mögliche direkte Weg in HTML, über den Informationen vom Nutzer zu Ihrer Datenbank gelangen, führt über HTML-Formulare. Erinnern Sie sich an die Art und Weise, wie HTML die Formulare verarbeitet. Die Elemente eines Formulars bestehen aus einem Typ (Texteingabefeld, Kontrollkästchen usw.), einem Namen des Elements und einem bestimmten Wert, der vorgegeben wird und vom Nutzer verändert werden kann. Das Abfragen der Felder eines Formulars kann in FrontPage 2002 mit dem WebBot BESTÄTIGUNGSFELD erfolgen. Allerdings ist die Funktion primitiv und auf FrontPage-Erweiterungen im Server angewiesen. Wie kann man nun den Inhalt von HTML-Formularen mit Active Server Pages auswerten? Nach dem Erstellen des Formulars geben Sie im -Tag das Skript an, mit dem die Auswertung erfolgt. In FrontPage wählen Sie im Dialogfeld FORMULAREIGENSCHAFTEN die Schaltfläche OPTIONEN... Im Formular fügen Sie ein Feld mit dem Namen „Vorname“ ein. Der Umgang mit Formularfeldern selbst ändert sich bei der Nutzung von Skripten nicht, Sie können die FrontPage-Funktionen wie gewohnt einsetzen. Abbildung 15.1: ASP-Skript zur Auswertung eines Formulars angeben
540
Webserver-Bibliothek
Benutzt werden die bereits vorgestellten Request-Objekte. Das Übertragen des Formulars mittels HTTP nutzt den Prozess Request (Anforderung) dieses Protokolls. Das ASP-Objekt Request enthält eine Kollektion, mit deren Hilfe sich die Daten leicht auswerten lassen. Die Kollektion besteht immer aus einem Wertepaar. Im Fall der hier benutzten Formkollektion besteht das Paar aus dem Namen des Elements und seinem Inhalt. In der HTML-Ansicht können Sie sich davon überzeugen, ob der Befehl korrekt eingetragen wurde:
Testen Sie den folgenden Quelltext als „Antwortseite“ (ANTWORT.ASP): <TITLE>Willkommen! Hallo . Danke für die Registrierung!
Grundsätzlich besteht jedoch keine Möglichkeit Daten mit dieser Methode auf einer Seite einzugeben und dann sofort auszuwerten. Formulare müssen immer gesendet und dann der nächsten Seite übergeben werden. Manchmal kann es stören, die Abfrage der Inhalte auf so direktem Wege vornehmen zu müssen. Andererseits beeindruckt die Einfachheit, mit der Informationen übertragen werden können. Felder mit mehreren Werten Oft können Dialoge stark vereinfacht werden, wenn die Nutzer mehrere Optionen gleichzeitig auswählen können. Ein beliebtes Beispiel ist die Auswahl aus einem Listenfeld. Der folgende Quellcode zeigt mögliche Eintragungen eines Newsdienstes, von denen einer oder auch mehrere Einträge ausgewählt werden können. Schauen Sie sich zunächst das Formular an, mit dem die Daten abgefragt werden: <TITLE> Bestellung Newsservice mit Listbox Bestellung Newsservice <SELECT name=dienst size=5 MULTIPLE> Sportinformationen Regionalinfo Börsenticker Internet Nachrichten Klatsch und Tratsch
541
15 Programmierung von Webseiten
Die Auswertung ist sehr einfach, denn Sie können die Methoden der Formkollektion anwenden. Jedes multiple Element bildet eine solche Kollektion. Hier ist der Quellcode für das Skript register.asp: <TITLE>Ihre Bestellung Vielen Dank für Ihre Bestellung.
Sie haben Dienste abonniert:
Es werden die in den -Tags übergebenen Werte ausgegeben. Wenn Sie keine direkte Ausgabe planen, benötigen die Werte zur weiteren Verarbeitung in Variablen keine langen Beschreibungen. Textfelder abfragen Sehr häufig werden Formulare mit einem allgemeinen Textfeld beendet, in dem der Nutzer einen Kommentar zu Ihrer Webseite unterbringen kann. Auch Anzeigensysteme nutzen das HTML-Element zur Erfassung längerer Texte. Die Übertragung solcher Elemente nach VBScript ist sehr einfach, denn VBScript kennt keine enge Begrenzung der Zeichenkettenlänge. Theoretisch können Zeichenketten bis zu 2 Milliarden Zeichen (2 GByte) enthalten – sicher genug, um auch riesige Textfelder aufzunehmen. Bitte schreiben Sie uns Ihre Meinung:
Daten per Formular übertragen Wenn Formulare aufgebaut werden, können Sie die Gelegenheit nutzen und andere im Skript erzeugte Daten übertragen. Vor allem bei komplexen Anwendungen können Skripten so von mehreren anderen Stellen aus aufgerufen werden. Die Übergabe bestimmter Variablen steuert dann die Skripten. Da auch globale Variablen sich nur auf den aktuellen Skript beziehen und Datenbanken nicht immer sinnvoll oder möglich sind, ist eine solche Alternative gefragt, die kleinere Datenmengen leicht überträgt.
542
Webserver-Bibliothek
In HTML gibt es dafür den Tag . Dieses Feld wird nicht angezeigt, der darin festgeschriebene Wert wird trotzdem wie jeder andere Feldname übertragen. Sie können solche Felder im Dialog FORMULAREIGENSCHAFTEN erzeugen. Klicken Sie auf die Schaltfläche ERWEITERT... und geben Sie Namen und Werte für das Feld ein. Statt der Werte können Sie im Quellcode später Skriptfragmente einbauen. Abbildung 15.2: Versteckte Felder bequem per Dialog erzeugen
Erzeugt wird mit diesem Dialog HTML-Code, der etwa folgendermaßen aussieht:
Der folgende Code zeigt eine umfangreichere Anwendung: <TITLE>Woher haben Sie von uns gehört? Sagen Sie uns, wie Sie auf uns aufmerksam wurden: Zeitungsanzeige Fernsehspot Trikotwerbung
Im Beispiel wird der Wert „advertising“ dem Feld survey zugewiesen. Landen mehrere Formularseiten auf der gleichen Antwortseite, können Sie die Herkunft damit unterscheiden. Zusätzlich lassen sich so auch anderswo im Skript erzeugte Daten zwischen den Seiten übertragen. Die Auswertung erfolgt mit der normalen Abfrage von Formularfeldern, wie zuvor schon beschrieben – nutzen Sie das bereits gezeigte Skript register.asp.
543
15 Programmierung von Webseiten
Die Übertragung der Formularwerte und -namen findet im HTTP-Header statt. Die verantwortliche Methode in HTML heißt „post“ (deutsch: veröffentlichen im Sinne von senden); sie wird über gestartet. Um die Zeichen auch unabhängig von den Formular- und Request-Befehlen codieren und decodieren zu können, kennt VBScript spezielle Funktionen. Dies gilt auch für die zweite Methode, GET, mit der Daten an die URL angehängt werden.
15.4.3 Server .HTMLEncode
Daten mit Hilfe des URL übertragen
Wenn Sie HTML-Codes anzeigen möchten, können Sie die Methode Server.HTMLEncode benutzen. Als Parameter wird eine Zeichenkette erwartet, die umgewandelt zurückgegeben wird. Die Anwendung ist immer dann gegeben, wenn Sie erwarten, dass die Zeichenkette HTML-Tags enthält, diese Tags auf dem Browser jedoch nicht ausgeführt werden sollen. Das folgende Listing zeigt eine entsprechende Anwendung: Ausgabe 1:
Ausgabe 2:
Server .URLEncode
Ganz ähnlich arbeitet die Methode Server.URLEncode, mit der die Codes so erzeugt werden, als würde die Zeichenkette über die URL übertragen werden. Damit ist es möglich, auch Werte aus normalen Variablen mit zu übertragen und auszuwerten. Der folgende Abschnitt erklärt, wie Daten auch ohne Formulare zwischen Webseiten ausgetauscht werden können. Auch hier werden Methoden des Objekts Request benutzt.
Einfache Variablen-/Wertepaare
Formulare sind auffällige Erscheinungen auf einer Webseite. Manchmal ist ein Hyperlink zur Navigation sinnvoller oder technisch einfach unumgänglich. Der folgende Hyperlink wurde um Variablen-/Wertpaare verlängert: http://www.seite.de/scripte.asp?variable1=Wert1&variable2=Wert2
Drei spezielle Zeichen finden dabei Verwendung. Das Trennungszeichen zwischen dem URL und den angehängten Parametern ist das Fragezeichen. Jedes einzelne Wertepaar wird mit einem &-Zeichen getrennt. Zwischen Variable und Wert steht ein Gleichheitszeichen. Sie können theoretisch beliebig viele Werte übertragen. Beachten Sie aber, dass die Browser ganz unterschiedliche Längen für die komplette URL akzeptieren. Der Internet Explorer akzeptiert ca. 2.000 Zeichen. Request.QueryString
544
Die Auswertung wird mit der Methode Request.QueryString vorgenommen. Diese Methode extrahiert die einzelnen Werte aus dem URL. Schauen Sie sich ein kleines Beispiel an, das zur Bestellung von Büchern dient (Haben Sie den Schriftsteller erkannt?):
Webserver-Bibliothek
<TITLE>Was möchten Sie bestellen? Willkommen in unserem Buchladen Ihre Bestellung bitte:
Der Unbesiegbare
Der Schnupfen
Sterntagebücher
Eden
Jeder Link führt auf die Seite weiter.asp, wo die Bestellung ausgewertet wird. Den Quelltext finden Sie hier: <TITLE>Ihre Bestellung Willkommen in unserem Buchladen Sie haben das Buch von Stanislaw Lem bestellt. Vielen Dank!
Wenn Sie beliebige Werte übertragen möchten, muss jeder einzelne Wert in die URL-Form gebracht werden. Das erste Beispiel arbeitet auch ohne URL Encode, denn es werden keine speziellen Zeichen übermittelt. Um Fehlern vorzubeugen, sollten Sie aber immer mit URLEncode arbeiten.
15.4.4
Weiterleitung (Redirection)
Suchmaschinen versuchen heutzutage alles, um jede greifbare Information zu bekommen. Dazu werden so genannte Robots oder Spider verwendet, kleine Programme, die HTML-Seiten durchsuchen und indizieren. Solche Programme verfolgen auch Links und nehmen normalerweise Ihr gesamtes Web auf. Dabei kann es vorkommen, dass Seiten im Index der Suchmaschine
Response.Redirect
545
15 Programmierung von Webseiten
stehen, die potenzielle Nutzer eigentlich auf so direktem Wege nie erreichen sollten. Sie müssen dann dafür sorgen, dass der verlorene Surfer wieder auf den rechten Pfad zurückgeführt wird. Mit ASP ist das sehr einfach. Wenn Sie eine Registrierungsseite haben und jemand zufällig auf der Antwortseite zur Registrierung landet, dann senden Sie ihn direkt zum eigentlichen Formular zurück: <TITLE>Registrierung erfolgreich Danke für die Registrierung!
Beachten Sie, dass die Anweisung zum Umleiten noch vor dem ersten HTML-Befehl steht. Sie können mit diesem Befehl auch jede andere Seite im Internet erreichen. Normalerweise sollte das so funktionieren, dass der Nutzer die Umleitung nicht bemerkt.
15.4.5
Wie Sie Sessions benutzen können
Wann Sessions angewandt werden Neben der reinen Interaktivität, das heißt der Reaktion des Webservers auf Eingaben der Nutzer, sind oft auch länger zurückliegende Informationen über die Surfer sinnvoll zu gebrauchen. So könnte eine intelligente Webseite die persönlichen Interessensgebiete speichern und News entsprechend auswählen. Der Besucher wird stärker an das Angebot gebunden, wenn er bei seinen Besuchen persönlich angesprochen wird. Ein anderes Problem ist die statistische Auswertung der Bewegung der Surfer über Ihre Seiten. Auch diese Informationen lassen sich mit der Hilfe von Sessions speichern. Der Vorteil, vor allem für kleinere Projekte, ist der mögliche Verzicht auf Datenbanken. Prinzipiell funktionieren alle diese Anwendungen auch oder besser mit Datenbanken; nur für die Speicherung der Lieblingsfarbe ist der Aufwand und die daraus resultierende Serverbelastung nicht gerechtfertigt. Warum Sessions sinnvoll sind
546
Sessions haben ihren Ursprung in Begrenzungen des HTTP-Protokolls. Dieses Protokoll, dass die Verbindung von Webserver und Browser steuert, ist ein so genanntes verbindungsloses oder statusloses Protokoll. Für jedes einzelne Objekt, jede Seite, jedes Plug-In wird immer wieder erneut eine Verbindung aufgebaut. Der Webserver kann also in größeren Abständen zugreifende Nutzer nicht wieder zuordnen. Er liefert nur Daten an irgend-
Webserver-Bibliothek
welche immer wieder und irgendwann anfordernde Browser. Alle Interaktionen beruhen auf einem primitiven Frage-Antwort-Spiel (Request and Response). Sessions lösen dieses Problem, indem Sie einen Status über mehrere Webseiten mitführen und die von HTTP nicht unterstützten Informationen speichern. Gelegentlich werden Sie Berichte finden, in denen vor der Verwendung von Sessions gewarnt wird. Deshalb möchte ich hier die technischen Hintergründe erläutern, um die Entscheidung für oder wider Sessions transparent zu machen. Das Session-Objekt, auf dem alle Methoden und Eigenschaften aufbauen, kann selbst keine Daten speichern. Sessions nutzen Cookies zur Speicherung der Informationen. Cookies werden im folgenden Abschnitt ausführlich erklärt, denn ihr Verständnis ist für den Umgang mit dem Objekt Session sinnvoll.
Pro und Contra Sessions
Cookies als Informationsspeicher Cookies (deutsch: Kekse) haben einen völlig irreführenden, harmlosen Namen. Aber sie sind bekannt und oft verteufelt als der Angriffspunkt des bösen Hackers aus dem Web, der sich an den privaten Dateien der Surfer zu schaffen machen will. Cookies wurden von Netscape erfunden und sind seit der ersten Version ihres Browsers Navigator dabei. Später wurde daraus ein Standard, der auch vom World Wide Web Consortium W3.ORG unterstützt wird. Die meisten Browser unterstützen heute Cookies.
Wo kamen die Cookies her?
Cookies sind eine oder mehrere Dateien, die der Browser anlegt und in denen (und nur in denen) der Server auf Wunsch Informationen unterbringen und wieder auslesen kann. Der Sinn von Cookies ist die Wiedererkennung des Nutzers bei einer späteren Session. Cookies lösen also ein gravierendes Problem des HTTP-Protokolls. Cookies können temporär sein, also am Ende einer Session wieder gelöscht werden, andere sind permanent und werden nie oder sehr viel später gelöscht. Cookies werden zwischen Server und Browser durch HTTP-Header übertragen. Durch Senden eines Set-Cookie-Headers wird ein Cookie in der CookieDatei erzeugt. Soll beispielsweise der Name eines Nutzers gespeichert werden, sieht der zugehörige Header folgendermaßen aus:
Der neue Eintrag in der Cookie-Datei wird jetzt erstellt. Das Pluszeichen zwischen Vor- und Zuname deutet darauf hin, dass die Datei URL-codiert ist. Die Variable path schränkt die Rückgabe des Eintrages auf Seiten ein, die von dem benannten Pfad aus anfragen. Mit domain wird die Rückgabe auf die angegebene Domain eingeschränkt. Server, die aus anderen Domains das Cookie abfragen, erhalten keine Antwort. Das ist auch der Grund, warum fremde Server Einträge wirklich nicht lesen können. expires gibt das Datum an, an dem der Eintrag ungültig und vom Browser gelöscht wird. Aller-
547
15 Programmierung von Webseiten
dings kann der Browser den Eintrag auch schon früher löschen, wenn die Datei zu groß wird. Der Cookie wird, wenn Domain und Pfadangabe stimmen, nun in jede Anfrage eingebaut, die der Browser an den Server stellt. Für jedes Verzeichnis im Webserver können Sie also eigene Cookies erzeugen. Cookies erzeugen und lesen
Cookies werden direkt von ASP unterstützt. Das Response-Objekt enthält eine Kollektion Cookies; daraus kann ein Cookie-Objekt und ein CookieDictionary erzeugt werden. Dictionaries sind Speicherobjekte vom Typ Dictionary, die Paare aus Schlüssel und Wert speichern:
Response.Cookies
Die etwas abenteuerlich anmutende Schreibweise zum Setzen des Verfallsdatums und der anderen Eigenschaften resultiert aus der Tatsache, dass der Eintrag (das Cookie) selbst ein Objekt, Expires die entsprechende Eigenschaft ist. Sie müssen das Datum nur dann angeben, wenn das Cookie länger als eine Session gespeichert werden soll. Für eine Warenkorbfunktion wäre es also nicht unbedingt erforderlich. Cookies werden über HTTP-Header übertragen. Es ist deshalb notwendig, diesen Code an den Anfang des Skripts vor der ersten Ausgabe zu stellen. Folgende Eigenschaften können Sie benutzen: 왘 Path
Damit wird angegeben, wann der Browser das Cookie sendet. Wenn Sie ein Unterverzeichnis /SCRIPTS haben und der Aufruf von einer Seite in diesem Verzeichnis kommt, wird der Cookie gesendet, sonst nicht. 왘 Domain
Damit wird die Domain angegeben, aus welcher der Aufruf kommen darf. Damit wird das Auslesen fremder Cookies verhindert. 왘 Expires
Gibt das Verfallsdatum des Cookies an. 왘 Secure
Wenn der Webserver den Secure Socket Layer (SSL) unterstützt, wird die Transaktion mit einer sicheren Übertragung ausgeführt. Sie können ein Cookie leicht wieder lesen. Dazu wird das schon bekannte Request-Objekt benutzt:
548
Webserver-Bibliothek
Wie bei allen regulären Objekten, die eine Kollektion bilden, kann auch hier wieder mit einer Schleife auf alle Cookies zugegriffen werden. Wollen Sie sich über den Begriff Cookie keine Gedanken machen, verwenden Sie besser die in ein eigenes Modell integrierten Sessions. Wegen der komfortablen Arbeitsweise sind Sessions immer vorzuziehen. Indes dürfen Sie nicht vergessen, dass Session-Objekte intern auf Cookies zurückgreifen. Manchmal sind Cookies nicht erwünscht. ASP Session-IDs benutzen generell Cookies, also auch dann, wenn Sie gar keine Variablen gesetzt haben. Wenn ein Benutzer die Sicherheitseinstellungen im Browser so gewählt hat, dass vor eintreffenden Cookies gewarnt wird, kann dies ausgesprochen lästig sein. Möglicherweise verlieren Sie Benutzer. Sie können die folgende Serverdirektive verwenden, um die Anwendung von Sessions und damit die Verwendung von Cookies grundsätzlich zu verbieten. Sie müssen diesen Eintrag auf jeder Seite vornehmen:
Darüber hinaus beschleunigt die Verwendung dieses Befehls die Abarbeitung der Skripte. Auch wenn es keine Rolle spielt, ob Cookies verwendet werden oder nicht, ist es sinnvoll, die Verarbeitung zu unterdrücken, wenn Sie die Funktion nicht ausdrücklich benötigen. Wenn Sie bisher HTML-Seiten mit JavaScript programmieren, werden Sie auch dort vielleicht bereits mit Cookies gearbeitet haben. Die von JavaScript browserseitig generierten Cookies unterscheiden sich grundlegend von den vom Server gesetzten und lassen sich nicht austauschen oder gegenseitig beeinflussen. Ereignisse beim Start und Ende von Anwendung und Sitzung Windows-Programmierer mögen sich vielleicht schon gefragt haben, wo denn die Ereignissteuerung stattfindet. Die Interaktion findet nicht über Ereignisse statt, sondern über Protokolle. Trotzdem gibt es zwei Ereignisse, die stattfinden und die auch ausgewertet und bedient werden können, wenn sie ausgelöst werden: der Beginn und das Ende einer Session. In jedem Web, das heißt in jedem virtuellen Server, gibt es die Möglichkeit, diese Ereignisse mit einem besonderen Skript zu steuern. Der Status wird auch dadurch deutlich, dass diese Skriptdatei eine spezielle Endung hat. Sie heißt GLOBAL.ASA. Wenn Sie Datenbankkomponenten in FrontPage einfügen, wird die Datei GLOBAL.ASA automatisch erzeugt und mit den entsprechenden Werten geladen. Diese Datei hat die folgende Struktur, wenn Sie noch keine eigenen Befehle eingetragen haben:
Die Datei GLOBAL.ASA
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Session_OnStart End Sub
549
15 Programmierung von Webseiten
Sub Session_OnEnd End Sub Sub Application_OnStart End Sub Sub Application_OnEnd End Sub
Am Beginn einer Session wird die Prozedur Session_OnStart aufgerufen, die enthaltenen Befehle werden ausgeführt. Die Bedeutung der Prozeduren Application_OnStart und Application_OnEnd werden im nächsten Abschnitt zum Thema Applikationen erklärt. Beachten Sie, dass die Prozeduren in der Datei GLOBAL.ASA keine Ausgaben erzeugen können. Sie dürfen weder HTML-Code noch Response.Write-Methoden enthalten. Das gilt, obwohl der HTML-Tag <SCRIPT> benutzt wird. Sie können außer VBScript auch JScript verwenden. Alle anderen Schlüsselwörter, Objekte und Funktionen können Sie jedoch verwenden. Eine typische GLOBAL.ASA, wie sie von FrontPage 2002 automatisch erzeugt wird, sehen Sie hier: <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart '==FrontPage Generated – startspan== Dim FrontPage_UrlVars(1) '--Project Data Connection Application("CD-Shop_ConnectionString") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=URL=fpdb/cdshop.mdb" FrontPage_UrlVars(0) = "CD-Shop_ConnectionString" Application("CD-Shop_ConnectionTimeout") = 15 Application("CD-Shop_CommandTimeout") = 30 Application("CD-Shop_CursorLocation") = 3 Application("CD-Shop_RuntimeUserName") = "" Application("CD-Shop_RuntimePassword") = "" '-Application("FrontPage_UrlVars") = FrontPage_UrlVars '==FrontPage Generated – endspan== End Sub Sub Session_OnStart FrontPage_StartSession '==FrontPage Generated== End Sub Sub FrontPage_StartSession On Error Resume Next if Len(Application("FrontPage_VRoot")) > 0 then Exit Sub ' discover the VRoot for the current page; ' walk back up VPath until we find global.asa Vroot = Request.ServerVariables("PATH_INFO") strG1 = "global.asa" strG2 = "Global.asa"
550
Webserver-Bibliothek
iCount = 0 do while Len(Vroot) > 1 idx = InStrRev(Vroot, "/") if idx > 0 then Vroot = Left(Vroot,idx) else ' error; assume root web Vroot = "/" end if if FrontPage_FileExists(Server.MapPath(Vroot & strG1)) then exit do if FrontPage_FileExists(Server.MapPath(Vroot & strG2)) then exit do if Right(Vroot,1) = "/" then Vroot = Left(Vroot,Len(Vroot)-1) iCount = iCount + 1 if iCount > 100 then ' error; assume root web Vroot = "/" exit do end if loop ' map all URL= attributes in _ConnectionString variables Application.Lock if Len(Application("FrontPage_VRoot")) = 0 then Application("FrontPage_VRoot") = Vroot UrlVarArray = Application("FrontPage_UrlVars") for i = 0 to UBound(UrlVarArray) if Len(UrlVarArray(i)) > 0 then FrontPage_MapUrl(UrlVarArray(i)) next end if Application.Unlock End Sub Sub FrontPage_MapUrl(AppVarName) ' convert URL attribute in conn string to absolute file location strVal = Application(AppVarName) strKey = "URL=" idxStart = InStr(strVal, strKey) If idxStart = 0 Then Exit Sub strBefore = Left(strVal, idxStart – 1) idxStart = idxStart + Len(strKey) idxEnd = InStr(idxStart, strVal, ";") If idxEnd = 0 Then strAfter = "" strURL = Mid(strVal, idxStart) Else strAfter = ";" & Mid(strVal, idxEnd + 1)
551
15 Programmierung von Webseiten
strURL = Mid(strVal, idxStart, idxEnd – idxStart) End If strOut = strBefore & Server.MapPath(Application("FrontPage_VRoot") & strURL) & strAfter Application(AppVarName) = strOut End Sub Function FrontPage_FileExists(fspath) On Error Resume Next FrontPage_FileExists = False set fs = CreateObject("Scripting.FileSystemObject") Err.Clear set istream = fs.OpenTextFile(fspath) if Err.Number = 0 then FrontPage_FileExists = True istream.Close end if set istream = Nothing set fs = Nothing End Function
15.4.6
Applikationen
Bislang wurden Skripte immer so aufgebaut, dass jeder einzelne Prozess zu der vom Nutzer sichtbaren Seite passt. Praktisch entspricht diese Vorgehensweise der Kopplung von Oberfläche und zugehörigem Programmcode. Moderne Software-Entwicklungssysteme wie Visual Basic oder Delphi arbeiten ähnlich. All diese Systeme haben jedoch eine gemeinsame Zone im Hintergrund zu Eigen, die alle Prozesse zusammenführt – das Fenster. Mit dem Application-Objekt wird eine solche Zusammenführung auch in ASP möglich, obwohl auf dem Webserver kein Fenster erzeugt wird. Als Applikation wird hier die Zusammenfassung mehrerer Skripten verstanden. Das in Abschnitt 14.1 Datenbankpraxis gezeigte Projekt ist eine solche Applikation. Natürlich sind Applikationen nicht nur eine Sammlung von Skripten. Es gibt eine ganze Reihe interessanter Funktionen, die zur Entwicklung großer Projekte nötig sind und bisher gefehlt haben: 왘 Daten können zwischen Skripten ausgetauscht werden. 왘 Daten können auch zwischen Nutzern ausgetauscht werden. 왘 Am Beginn und am Ende einer Applikation werden spezielle Ereignisse
ausgelöst und können behandelt werden. 왘 Mit Hilfe der Managementkonsole können Applikationen unterschiedli-
che Eigenschaften zugewiesen werden, beispielsweise ein Timeout-Wert.
552
Webserver-Bibliothek 왘 Applikationen können in eigenen Adressräumen unter Windows NT ar-
beiten und sind damit voneinander getrennt. 왘 Eine Applikation, die abstürzt oder gestoppt wird, zieht andere nicht in
Mitleidenschaft. Ein Web kann mehrere Applikationen haben, jeder virtuelle Server sollte eine eigene Applikation (oder viele) haben, und jedes Programm, das für sich abgeschlossene Aufgaben ausführt, sollte eine eigene Applikation sein. Sie können Applikationen auch benutzen, um Nutzern Funktionen zur Verfügung zu stellen. So können Sie eine Shopapplikation betreiben, die von verschiedenen Webs auf dem Computer benutzt wird und trotzdem unterschiedliche Darstellungen hat. Für jede Applikation muss mit der Managementkonsole ein Basisverzeichnis (engl. Root Directory) festgelegt werden. Die Applikation besteht dann aus dem zum Basisverzeichnis erklärten Ordner und allen Unterordnern und den darin enthaltenen Dateien. Definieren Sie einen der Unterordner erneut als Basisverzeichnis, fällt er aus der Struktur der übergeordneten Applikation heraus. Zwei Applikationen können sich nicht überlappen und einen Ordner teilen. Nach der ersten Installation der Active Server Pages ist eine so genannte Standardapplikation schon erstellt. Diese bezieht sich auf das Stammverzeichnis des Webservers.
Eine Applikation wird definiert
Die Definition einer neuen Applikation führt immer über die Managementkonsole. Starten Sie die Konsole, wählen Sie den IIS und anschließend dort die STANDARDWEBSITE aus (in der englischen Version DEFAULT WEBSITE). Abbildung 15.3: Die StandardWebSite ist die erste, schon von der Installationsroutine eingerichtete Applikation
553
15 Programmierung von Webseiten
Wenn Sie auf dem Entwicklungssystem arbeiten, werden Sie normalerweise nur mit Unterverzeichnissen in Berührung kommen. Auf einem Webserver im Netz können Applikationen natürlich auch virtuellen Servern mit eigener IP zugeordnet werden. Das Applikations-Objekt (Application) Zur Steuerung und Verwaltung der Applikationen dient ein eingebautes Objekt, das Objekt Application. Die Arbeitsweise ist dem Session-Objekt sehr ähnlich. Der einzige Unterschied ist die Position des Objekts. Die Applikation bezieht sich auf alle laufenden Skripten, die aus dem Verzeichnis der Applikation gestartet werden. Die definierten Variablen stehen also auch allen Skripten zur Verfügung. Dadurch können Sie Daten zwischen Skripten und zwischen Nutzern austauschen. Die Variablen des ApplicationObjekts
Die Variablen des Objekts Application können von allen Skripten und Nutzern gesehen werden – sie sind global. Von den Sessionvariablen unterscheiden sich Applikationen durch drei Eigenschaften: 왘 Applikationsvariablen basieren nicht auf Cookies. 왘 Der Webserver muss keine Session mitführen, um mit der Applikations-
variablen zu arbeiten. 왘 Die Verwendung ist risikolos und mit allen Browsern kompatibel. Applikationsvariablen erzeugen und nutzen
Eine neue Variable ist schnell erzeugt. Übergeben Sie dem Objekt einfach die Variable und den zu speichernden Wert: <TITLE>Mit Applikationsvariablen arbeiten
Wurde die Variable einmal definiert, kann sie auf jeder anderen Seite von jedem Nutzer gelesen werden, wie im folgenden Listing gezeigt: <TITLE>Applikationen nutzen
Es spielt keine Rolle, welcher Nutzer diese Seite aufruft, wann er dies tut und ob er zwischen dem Seitenwechsel die Sitzung beendet.
554
Webserver-Bibliothek
Einmal definierte Variablen lassen sich nicht wieder löschen. Sie bleiben erhalten, bis der Webserver heruntergefahren wird oder die Applikation mit der Managementkonsole entfernt wird. Das ist bei der Planung der Skripten wichtig zu wissen, denn wenn Sie immer wieder neue Variablen mit Zufallsgeneratoren erzeugen (was sich bei den Sessions noch anbot), wird der Server belastet. Variablen brauchen Speicherplatz und kosten Rechenleistung.
Applikationsvariablen löschen
Die Applikationsereignisse Die Ereignissteuerung wurde bereits beim Objekt Session angesprochen. Ganz ähnlich funktioniert die Ereignissteuerung bei einer Applikation. Auch diese Ereignisse werden mit Skripten bedient, die sich in der Datei global.asa befinden. Jede Applikation hat eine eigene global.asa-Datei. Die beiden darin untergebrachten applikationsbezogenen Prozeduren starten, wenn die erste Seite der Applikation, beispielsweise index.asp, das erste Mal aufgerufen wird. Der erste Nutzer, der nach dem Start des Webservers die Seite besucht, löst das Ereignis aus. Jeder weitere Nutzer löst nur die Session-Prozeduren Session_OnStart und Session_OnEnd aus. Nach der ersten Initialisierung der Applikationsvariablen stehen diese nun immer zur Verfügung. Die Skripten innerhalb der Prozeduren Application_OnStart und Application_OnEnd sind einigen Einschränkungen unterworfen. So dürfen keine Ausgaben in irgendeiner Form erfolgen, HTML-Code darf nicht enthalten sein, und Sie sollten keine Absprünge auf andere Seiten programmieren (mit Response.Redirect). Die Skripten werden automatisch vor der ersten Seite gestartet und wieder verlassen.
Applikationsereignisse steuern
Eine gute Anwendung ist ein Hitzähler für Ihre Webseite. Damit der Zähler auch exakt arbeitet, ist es sinnvoll über die interne Arbeitsweise nachzudenken. Der Webserver liefert Seiten an Nutzer, wann immer diese die Seiten anfordern. So entstehen parallel laufende Prozesse. Da alle Prozesse Zeit brauchen, um ausgeführt zu werden, ergibt sich möglicherweise ein Problem. Wenn zwei Nutzer gleichzeitig eine Seite aufrufen, werden die Werte parallel verarbeitet. Wenn der Ursprungswert der Variablen 4 ist, schreibt Nutzer 1 mit seiner Sitzung den Wert 5 zurück. Bis dahin hat aber auch Nutzer 2 die Seite gestartet, ebenfalls den Wert 4 ermittelt und 5 zurück geschrieben. Danach steht der Zähler auf 5 und nicht, wie es richtig wäre, auf 6. Denken Sie daran, dass ein Multitasking-Betriebssystem Prozesse parallel ausführt. Wenn sich die Ergebnisse beeinflussen müssen, sind besondere Maßnahmen angebracht. Das Application-Objekt kennt deshalb zwei besondere Methoden, die dazu gedacht sind andere Prozesse vorübergehend zu stoppen – Lock und UnLock. Eine gute GLOBAL.ASA-Anwendung ist der im nächsten Listing vorgestellte, fehlerfrei arbeitende Hitcounter. Der FrontPage-Counter ZÄHLER arbeitet auch fehlerfrei, ist aber auf die FrontPage-Erweiterungen angewiesen.
Application .Lock Application. Unlock
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart Application("HitCounter") = 0 End Sub
555
15 Programmierung von Webseiten
Sub Session_OnStart Application.Lock Application("HitCounter") = Application("HitCounter") + 1 Application.UnLock End Sub
Jede Session, die startet, ruft die Prozedur Session_OnStart auf. Als erstes wird die gesamte Applikation verriegelt (engl. Lock), sodass andere Prozesse nicht ausgelöst werden können. Dann wird der Wert der Variablen erhöht und die Applikation wieder freigegeben. Die in dieser Zeit aufgelaufenen Anfragen gehen nicht verloren oder werden mit Fehlermeldungen abgeschmettert. Die Prozesse warten einfach und werden dann nacheinander abgearbeitet. Wenn 50 Nutzer gleichzeitig zugreifen, wird sich der Hitzähler korrekt um 50 erhöhen. Die Zeit, die der letzte Nutzer warten muss, ist gering. Eine Addition benötigt nur wenige Millisekunden, 50 Additionen benötigen vielleicht eine halbe Sekunde. Wenn Sie auch in anderen Skripten intensiv mit Application.Lock arbeiten, sollten Sie bedenken, dass längere Blockierungen die Gesamtleistung des Webservers drastisch reduzieren können.
15.5 Datenbankzugriff Um in ASP eine leistungsstarke Datenbankumgebung zur Verfügung zu stellen, liefert Microsoft die ActiveX-Data-Objekte (ADO) mit aus. Diese ermöglichen den Zugriff auf ODBC-Datenbanken direkt aus VBScript und JScript heraus. Insgesamt gibt es sieben Objekte, welche die Datenbankanbindung leicht und einfach unterstützen. Außerdem können Sie SQL zur Abfrage der Daten verwenden.
15.5.1
Einführung in ADO
Übersicht ADO-Objekte Die folgenden Objekte gehören alle zur Klasse ActiveX-Data-Object Database (ADODB): 왘 CONNECTION
Stellt eine Verbindung mit einem SQL-Server her. 왘 RECORDSET
Stellt die Datenschnittstelle zu den Tabellen der Datenbank her. 왘 STREAM
Zugriff auf sequenzielle Daten und XML.
556
Datenbankzugriff 왘 RECORD
Lokale Speicherung eines einzelnen Datensatzes. 왘 FIELD
Erlaubt den Zugriff auf ein einzelnes Feld. 왘 COMMAND
Sendet einzelne Kommandos an einen SQL-Server oder startet gespeicherte Prozeduren. 왘 PARAMETER
Erlaubt den Zugriff auf die Rückgabewerte oder Parameter einer gespeicherten Prozedur. 왘 PROPERTY
Ermöglicht den Zugriff auf Eigenschaften der SQL-Datenbank. 왘 ERROR
Ein Objekt zur Behandlung von Fehlermeldungen. Das Objektmodell ADO basiert auf einem einfachen Objektmodell, in dem bestimmte Objekte in Abhängigkeit zu anderen Objekten stehen. Einige Objekte bilden Kollektionen, deren Elemente wiederum Objekte bilden. Abbildung 15.4 zeigt die Verknüpfungen der Objekte untereinander.
Die „Nordwind“Datenbank ist Bestandteil von Office 2002
Abbildung 15.4: Das ADO-Objektmodell in der Übersicht
557
15 Programmierung von Webseiten
Jedes Objekt kann verschiedene Eigenschaften enthalten, deren Abhängigkeiten die folgende Abbildung zeigt. Abbildung 15.5: Eigenschaften werden aus allen Objekten abgeleitet
Die folgenden Beispiele gehen davon aus, dass eine Datenbankdatei unter der ODBC-Steuerung von Windows unter dem Namen nordwind.dsn aktiviert ist. Erscheinen bei der Ausführung der Beispiele Fehler, liegt ein Problem mit der Konfiguration vor.
15.5.2
Einführung in SQL
Die folgende Einführung zeigt die Grundzüge der Abfragesprache SQL. Die konkrete Anwendung hängt von der vorhandenen Datenbank ab. SQL ist eine Datenbankabfragesprache. Der große Vorteil ist, dass Sie mit der Kenntnis dieser Sprache viele Datenbanken benutzen können, die mit SQL kompatibel sind. Dadurch werden Ihre Datenbankanwendungen unabhängig von einer bestimmten Datenbank eines einzelnen Herstellers. Im deutschen Sprachraum hat es sich übrigens eingebürgert, die drei Buchstaben auch deutsch und einzeln auszusprechen, wenn von SQL die Rede ist. Technisch sind SQL-Abfragen kleine Befehlszeilen oder Tags, die an den Server gesendet werden. Die Befehle sind in englischer Sprache gehalten und sollten den Sinn der Abfrage erkennen lassen. Sie können in SQL auch kleine Programme schreiben. Allerdings ist SQL ganz streng auf die Bedienung von Datenbanken ausgerichtet. SQL alleine bringt wenig. Sinnvoll ist die Integration in eine Programmier- oder Skriptsprache, eben VBScript. Welche Programme werden verwendet? Fast alle modernen Datenbank verstehen SQL
558
Das einfachste SQL-fähige Programm besitzen Sie vielleicht schon. In Office XP ist auch die Datenbank Access 2002 enthalten. Prinzipiell ist Access SQLfähig und könnte eingesetzt werden. Allerdings hat Access Probleme, meh-
Datenbankzugriff
rere Prozesse parallel zu bearbeiten. Sie sollten Access auf keinen Fall für einen Webserver einsetzen. Eine bessere – und teurere – Wahl ist der Microsoft SQL Server 2000. Unabhängig davon gibt es eine ganze Reihe guter SQL-Datenbanken wie Informix, Oracle oder Sybase. In diesem Buch wird im Wesentlichen der SQL Server 2000 und Access 2000 vorgestellt, sodass Sie sowohl ein Entwicklungssystem als auch einen Produktionsserver nutzen können. Was ist eine Datenbank? Wenn Sie noch keine klare Vorstellung davon haben, was eine Datenbank eigentlich ist, lesen Sie die folgende kurze Einführung. Ansonsten springen Sie zum nächsten Abschnitt ADO praktisch verwenden ADO praktisch verwenden.
Eine Datenbank fasst Daten zusammen
Datenbanken dienen der Speicherung von Daten. Das können Namen, Adressen, Zahlen, Zeichenketten usw. sein. Daten stehen auch untereinander in Beziehung. So sind die Teile einer Adresse eine zusammengehörende Einheit. Eine solche Einheit nennt man Datensatz (engl. record). Die Teile eines Datensatzes bilden die Felder (engl. fields). Jedes Feld hat zwei grundlegende Eigenschaften – einen Namen und einen Datentyp. Wenn Sie Adressen speichern, könnten die Felder und Datentypen so aussehen:
Die Bedeutung dieser Ausgaben ist leicht zu verstehen. Das Feld FIRMA kann Zeichenketten mit bis zu 80 Zeichen aufnehmen, das Feld PLZ (Postleitzahl) kann ganzzahlige Werte aufnehmen usw. Um viele Daten übersichtlich anzeigen zu können, hat sich die Tabellenform als besonders praktisch erwiesen. Dabei bildet jede Spalte ein Feld ab, jede Zeile enthält einen Datensatz. Mehrere Tabellen bilden eine Datenbank. FIRMA
STRASSE
ORT
PLZ
Silicon Projects GmbH
Ostendstraße 1
Berlin
12459
Yoolia AG
Mariannenstraße 31-32
Berlin
10999
Tabelle 15.2: Die Darstellung in Tabellenform hat sich bewährt.
Die Spaltenbreite und andere „Anzeigewerte“ spielen innerhalb der Tabelle natürlich keine Rolle. Wie kann nun ein bestimmter Datensatz ermittelt werden? Intern läuft immer ein so genannter Index mit. Jeder Datensatz hat einen Indexwert – eine ID. Damit ist der Datensatz auch dann eindeutig und einmalig, wenn der gesamte Inhalt mit einem anderen Datensatz identisch ist.
559
15 Programmierung von Webseiten
Das alles ist für die Praxis nicht ausreichend. Die Firmen in unserem Beispiel haben mehrere Mitarbeiter, die als Ansprechpartner zu verwalten sind. Eine mögliche Feldstruktur wäre: NAME, String(60) EMAIL, String(60) TELEFON, String(60) GEBURTSTAG, Datum
Sie können dann die folgenden Mitarbeiter in der neuen Tabelle anordnen: Tabelle 15.3: Eine einfache Tabelle mit vier Spalten
Beziehungen zwischen Datenbanktabellen herstellen
Tabelle 15.4: Die Tabelle wird mit einem Schlüsselfeld ergänzt
Das scheint recht einfach. Wie kann aber die Zuordnung der Mitarbeiter zu den Firmen aus der ersten Tabelle erfolgen? Sicher wäre eine Lösung, jedem Datensatz in der ersten Tabelle wieder eine Tabelle mit allen Ansprechpartner zuzuordnen. Aber bei 1.000 Firmen hätten wir dann 1.000 Tabellen mit Ansprechpartnern, in denen meist nur ein einziger Datensatz vorhanden ist. Für die Arbeit mit Datenbanken ist das sehr unpraktisch. Deshalb baut man eine Beziehung (engl. relationship) zwischen Tabellen auf. Datenbanksysteme, die so arbeiten, nennt man deshalb auch relationale Datenbanken. Dazu wird die erste Tabelle einfach mit einem so genannten Schlüssel (engl. key) ergänzt. Der Schlüssel wird auch in der zweiten Tabelle eingesetzt. Die Tabelle sieht dann folgendermaßen aus: F_KEY
FIRMA
STRASSE
ORT
PLZ
1
Silicon Projects GmbH
Ostendstraße 1
Berlin
12451
2
Yoolia AG
Mariannenstraße 31-32
Berlin
10999
Die zweite Tabelle wird jetzt mit der ersten verbunden. Dazu wird auch diese Tabelle mit den Schlüsseln aus der nächsten Tabelle ergänzt. Damit wir zu jedem Ansprechpartner weitere Informationen hinzufügen können, erhält auch diese Tabelle eigene Schlüsselwerte. Diese führenden Schlüssel bilden den Index der Tabelle. Indizes haben bei der Abfrage mit SQL noch eine besondere Bedeutung. Die zweite Tabelle, ergänzt um die Schlüssel, sehen Sie nachfolgend:
Tabelle 15.5: Verknüpfung zweier Tabellen durch Schlüsselfelder
Sie sehen anhand des Schlüssels der letzten Tabelle, welcher Ansprechpartner zu welcher Firma gehört. Die Nummer im Feld p_key ist mit der Nummer im Indexfeld f_key der vorhergehenden Tabelle verknüpft. Für die folgenden Beispiele wollen wir unseren beiden Tabellen noch einen netten Namen geben. Jede Abfrage kann sich dann auf den Namen beziehen. Die erste Tabelle soll firmen heißen, die zweite partner. Eine Datenbank entsteht, wenn Sie viele Tabellen mit oder ohne solche Verknüpfungen zusammenfassen und gemeinsam anordnen. Physisch werden aus diese Weise mehrere Tabellen in einer Datei gemeinsam untergebracht. Datenbankdateien können Sie nicht mit Texteditoren betrachten. Zum einen befinden sich in der Datenbank fast immer mehrere Tabellen, zum anderen komprimieren moderne Datenbanken die Daten. Wenn Sie für die Namen 80 Zeichen festlegen, werden Sie dies kaum bei allen Namen ausnutzen. Moderne SQL-Datenbanken speichern nicht die gesamte Länge, sondern nur den wirklich belegten Speicherplatz. Trotzdem haben SQL-Datenbanken eine bestimmte Basisgröße, auch ohne Daten. Alle Angaben über Tabellen- und Feldstrukturen werden immer mitgespeichert. Um SQL zu verstehen, müssen Sie eine grundsätzliche Eigenschaft kennen. SQL ist eine Abfragesprache, die davon ausgeht, dass Sie bestimmte Datensätze selektieren, auswählen oder filtern möchten. Davon geht jede Abfrage aus. Es gibt keinen Befehl der Art „TABELLE ANZEIGEN“. Es gibt Befehle der Art „ZEIGE email IN Tabelle 1 MIT name=krause“. Datensätze werden nach ihren Inhalten und Verknüpfungen behandelt. Normalerweise gehen Sie davon aus, dass die Datensätze durchnummeriert sind und Sie einfach Datensatz eins bis zehn anzeigen lassen. SQL kennt eine solche Zählung nicht. Es gibt keinen Datensatz eins oder zehn bzw. einen ersten oder letzten Datensatz. Wenn Sie Zahlen zur Verwaltung brauchen, dann fügen Sie ein Feld hinzu; nennen Sie es MEINENUMMER und nummerieren Sie jeden neuen Datensatz mit einer aufsteigenden Zahl. Dann können Sie nach MEINENUMMER=1 oder MEINENUMMER3) (stimmen bei DIFFERENCE>2)
Wie arbeitet SOUNDEX intern? Zuerst wird der erste Buchstabe beider Zeichenketten als Basis verwendet. Stimmt dieser überein, steht das erste Zeichen fest. Dann geht es mit den nächsten Konsonanten weiter. Vokale werden ignoriert (das Y zählt als Vokal!), es sei denn, der Vokal steht an erster Stelle (Yahoo). Performance-Tipp: Die Verwendung dieser Funktionen ist recht sinnvoll, wenngleich die meisten SQL-Datenbanken Probleme mit der Leistung haben. Eine hohe Belastung der Datenbank kann auch gute Server in die Knie zwingen. RTRIM LTRIM
Aus VBScript kennen Sie die Funktionen LTRIM und RTRIM zum Beseitigen überflüssiger Leerzeichen. SQL kennt diese Funktionen auch: SELECT RTRIM(name) FROM partner
572
Datenbankzugriff
SELECT LTRIM(name) FROM partner
Sie können diese Funktionen auch miteinander verschachteln, denn die dritte Funktion TRIM gibt es nicht: SELECT LTRIM(RTRIM(name)) FROM partner
Die Anwendung ist dann sinnvoll, wenn Sie statt VARCHAR mit CHAR als Datentyp arbeiten. SQL füllt Felder vom Typ CHAR mit Leerzeichen auf, bis die gewünschte Länge erreicht wird. Bei der Ausgabe kann das lästig sein. Die Trim-Funktionen bringen eine Zeichenkette wieder in die richtige Form. Daten und Zeiten Die einfachste Funktion ist das Äquivalent zum VBScript-Befehl DATE. In SQL fragen Sie das aktuelle Datum und die aktuelle Zeit mit GETDATE ab. Auch hier dient die Systemuhr des Servers als Basis. Sie können diese Funktion benutzen, um bei Datumsfeldern einen variablen Standardwert zu setzen:
GETDATA
CREATE TABLE logdata ( name VARCHAR(50), date DATETIME DEFAULT GETDATA() )
Sie können die Ausgabe des Datums vielfältig beeinflussen. Am einfachsten ist wieder die Funktion CONVERT, die als dritten Parameter einen Code enthalten kann, der die Formatierung des Datums und der Zeit bestimmt. Code
Anmerkungen: Die Codes 0, 9 und 13 geben das Jahr immer vierstellig zurück. Ansonsten können Sie zum Code 100 addieren, also statt 4 einfach 104 schreiben, um das Datum vierstellig zu machen. Nur die Codes 13 und 14 können die Uhr in unserem 24-Stunden-Format anzeigen. Die Zeichen bedeuten im Einzelnen: iii = Millisekunden, dreistellig, ss = Sekunden, mi = Minuten, hh = Stunden [AM|PM] = entweder AM (vormittag) oder PM (nachmittag), (24) = 24-Stunden-Format dd = Tag, mm = Monat in Ziffernform, mon = Monat als Abkürzung (Jan, Feb, Nov usw.) yy = Jahr in zweistelliger Form, yyyy = Jahr in vierstelliger Form DATEPART
Damit Sie gezielt Teile von Zeitangaben aus der Funktion DATETIME ziehen können, bietet SQL die Funktion DATEPART: SELECT name DATEPART(mm, login) FROM logdata
Statt „mm“ können Sie einen der Codes in der folgenden Tabelle verwenden: Tabelle 15.8: Die Abkürzungen für die Steuerung der Funktion
DATEPART
DATENAME
574
Code
Name
Beschreibung
Wertebereich
yy
Year
Jahr
1753-9999
qq
Quarter
Quartal
1-4
mm
Month
Monat
1-12
dy
Day of year
Tag im Jahr
1-366
dd
Day
Tag
1-31
wk
Week
Woche
1-53
dw
Weekday
Wochentag
1-7 (Sonntag =1 bis Samstag)
hh
Hour
Stunde
0-23
mi
Minute
Minute
0-59
ss
Second
Sekunde
0-59
ms
Millisecond
Millisekunde
0-999
Ergänzend sei noch die Funktion DATENAME erwähnt, die genauso wie die Funktion DATEPART eingesetzt wird. Allerdings werden Zeichenketten statt Zahlen zurückgegeben. Für die Codes „mm“ und „dw“ ergibt sich die Ausgabe des Monatsnamens (January, December) und des Wochentages (Monday, Friday). Die Sprache ist vom Produkt abhängig; In der Regel wird es Englisch sein.
Datenbankzugriff
Berechnungen mit Daten können recht aufwändig sein. Auch hier hilft SQL weiter und stellt zwei weitere Funktionen zur Verfügung: DATEDIFF und DATEADD. Ähnlich wie VBScript werden damit Differenzen berechnet bzw. ein Zieldatum ermittelt. Die Tabelle Registrierung soll Kunden speichern, die für vier Wochen ein Abonnement bezahlt haben. Sie können das Ablaufen des Abos einfach auf der Basis des Datumsfeldes abostart ermitteln:
DATEDIFF DATEADD
SELECT name DATEADD(mm,1,abostart) FROM registrierung
15.5.3
ADO praktisch verwenden
Datensätze lesen und schreiben Das folgende Beispiel zeigt den Zugriff auf die Beispieldatenbank nordwind, das Schreiben eines Datensatzes mit INSERT und das Lesen eines Datensatzes mit SELECT. Dann fügt dieses Skript einen Datensatz an und gibt den ersten (schon vorhandenen) aus. <TITLE>ADO Beispiel
Die Methoden Open, Execute und Close werden benutzt. Die Methode Open eröffnet eine Verbindung zu einem SQL-Server via ODBC. Mit Execute werden SQL-Befehle direkt an den SQL-Server gesendet. Sie können hier alles verwenden, was unter SQL erlaubt ist. Mit Close wird die Verbindung wieder geschlossen. Verbindungen öffnen und schließen Mit diesem Objekt eröffnen Sie die Verbindung zu einer Datenbank und schließen sie wieder. Jede Kommunikation mit einer Datenbank kann nur stattfinden, wenn die Verbindung eröffnet wurde. So können Sie SQL-Befehle nur nutzen, wenn eine SQL-Datenbank auch von ASP aus erreicht werden kann.
575
15 Programmierung von Webseiten Connection .Open Connection .Close
Um die Verbindung zu eröffnen, wird eine Instanz des Objekts Connection erzeugt. Die Methode Open eröffnet die Verbindung:
Das ist recht umständlich, wenn Sie an 126 Stellen die Verbindung zur Datenbank herstellen. Da jeder Nutzer seine eigene Verbindung öffnet, bietet sich eine Sessionvariable für die Speicherung des Pfades zur Datenbank an. Öffnen Sie dazu die Datei GLOBAL.ASA, und definieren Sie eine Sessionvariable in der Prozedur Session_OnStart: Session("db_pfad") = "DSN=nordwind"
Der häufig benutzte Objektname RS steht für Recordset (dt. Datensatz). Sie benötigen das Datensatzobjekt, weil der SQL-Server seine Daten zunächst „irgendwohin“ produziert. Die Methode Execute hat zwei weitere Parameter, die folgende Bedeutung haben: 왘 RecordsAffected
Dieser Parameter steht als nächster nach dem SQL-Befehl und enthält nach der Ausführung des Kommandos die Anzahl der betroffenen Datensätze. 왘 Options
Für diesen Parameter darf eine von vier Konstanten eingesetzt sein. Die Übergabe erlaubt es ADO, effizienter zu arbeiten. Die Parameter sind aber optional und haben folgende Bedeutung: 왘 adCMDTable
Der Parameter ist der Name einer Tabelle. 왘 adCMDText
Kommando in Textform. Das ist die normale Form. 왘 adCMDStoredProc
Der erste Parameter ist der Name einer gespeicherten SQL-Prozedur. 왘 adCMDUnknown
Nicht bekannt; das ist der Wert, den ASP annimmt, wenn Sie gar nichts angeben.
576
Datenbankzugriff
Um die Konstanten auch nutzen zu können, müssen Sie eine spezielle Datei einschließen, welche die Definitionen enthält:
Der Unterschied zu dem vorangegangenen Beispiel liegt in der Methode Open und den damit verbundenen Parametern. Die ersten beiden sind relativ klar: In Form einer Zeichenkette wird der SQL-Befehl übergeben und dann die Datenverbindung, auf die sich das Kommando bezieht. Der letzte Parameter bezeichnet den Typ des Datensatzzeigers (engl. Cursor Type). Die angegebene Konstante ist in der Datei adovbc.inc definiert, die vorher mit einem INCLUDE-Kommando eingefügt werden muss.
Der Datensatzzeiger
Die folgenden Datensatzzeiger können Sie angeben: 왘 adOpenForwardOnly
Mit diesem Zeiger können Sie sich nur vorwärts durch das Datensatzobjekt bewegen. Dies ist der Standardzeiger, der benutzt wird, wenn Sie keinen speziellen Wert angeben. 왘 adOpenKeySet
Sie können sich in beide Richtungen im Datensatzobjekt bewegen. Durch eine Verbindung mit der Tabelle wird angezeigt, wenn Sie auf einen einzelnen Datensatz zeigen, der von einem anderen Nutzer gelöscht oder verändert wurde. Neu hinzugefügte Datensätze werden dagegen an dieser Stelle nicht angezeigt. 왘 adOpenDynamic
Sie können sich in beide Richtungen im Datensatzobjekt bewegen. Durch eine Verbindung mit der Tabelle wird angezeigt, wenn Sie auf einen einzelnen Datensatz zeigen, der von einem anderen Nutzer gelöscht oder verändert oder neu hinzugefügt wurde. 왘 adOpenStatic
Sie können sich in beide Richtungen im Datensatzobjekt bewegen. Änderungen, die in dieser Zeit erfolgen, werden nicht wiedergegeben. Neben der Auswahl des Datensatzzeigers kann auch das Verhalten der angesprochenen Tabelle gegenüber gleichzeitigen Änderungen durch andere Nutzer gesteuert werden. Es ist sehr wichtig darüber nachzudenken, welche Aktionen durch andere Nutzer in möglicherweise anderen Skripten in der Tabelle erfolgen können. Denken Sie daran, dass eine gut besuchte Seite gleichzeitig von mehreren Personen benutzt wird. Das folgende Beispiel zeigt, wo der zusätzliche Parameter eingesetzt wird:
Wie in den Beispielen zum Lesen der Datenbanktabelle angedeutet, besteht auch die Möglichkeit, Werte in die Tabelle zu schreiben. Unterstützt wird das durch mehrere Methoden, die einen komfortablen Umgang mit SQL erlauben. Hier eine Übersicht:
Erweiterte Methoden
왘 AddNew
Fügt dem Datensatzobjekt einen neuen Datensatz hinzu. 왘 CancelBatch
Wenn das Datensatzobjekt im Batch-Modus ist, wird der Stapellauf damit unterbrochen. 왘 CancelUpdate
Macht alle Änderungen rückgängig, die am Datensatzobjekt bis zur Ausführung der UPDATE-Methode vorgenommen wurden. 왘 Delete
Löscht einen Datensatz vom Datensatzobjekt. 왘 Update
Speichert alle Änderungen, die am Datensatzobjekt vorgenommen wurden. 왘 UpdateBatch
Speichert alle Änderungen, die an einem oder mehreren Datensätzen vorgenommen wurden, wenn mit Batchprogrammen gearbeitet wird. Beachten Sie, dass die ADO-Methoden etwas langsamer sind als die direkte Verwendung von SQL. Wenn Sie SQL beherrschen, nutzen Sie bevorzugt den direkten Weg! Ein einfaches Navigationsinstrument wurde bereits erläutert, die Methode MoveNext. Damit bewegen Sie den Datenbankzeiger einen Datensatz (Zeile) weiter. Nach dem Öffnen der Tabelle steht der Zeiger auf der ersten Position, und die Abarbeitung endet mit dem Erreichen des Dateiendes, EOF wird TRUE. Für eine komfortable und vor allem schnelle Abfrage reicht das aber nicht aus. Die wichtigsten einfachen Navigationsbefehle bewegen den Datensatzzeiger komfortabler:
Einfache Navigationsinstrumente
왘 Move anzahl
Bewegt den Datensatzzeiger um anzahl Positionen weiter Richtung Datenbank-Ende (positive Werte) oder Anfang (negative Werte).
581
15 Programmierung von Webseiten 왘 MoveFirst
Setzt den Datenbankzeiger wieder auf die erste Zeile. 왘 MoveNext
Bewegt den Datensatzzeiger eine Position weiter. 왘 MovePrevious
Bewegt den Datensatzzeiger eine Position zurück. 왘 MoveLast
Setzt den Datenbankzeiger wieder auf die letzte Zeile. Bedenken Sie, dass einige dieser Methoden einen ganz bestimmten Typ des Datensatzobjekts benötigen. So können Sie mit dem Parameter adOpenFor wardOnly kreierte Objekte nicht benutzen, um durch MovePrevious einen Datensatz zurück zu gelangen. Direkte Positionierung
Mit einigen Eigenschaften können Sie Ihre Navigationsskripte ebenfalls gut unterstützen: 왘 AbsolutePosition
Setzt den Datensatzzeiger auf eine bestimmte Position oder gibt die Position des Datensatzzeigers aus. 왘 BOF
Ist TRUE, wenn der Datensatzzeiger am Beginn des Datensatzobjekts steht, also in der ersten Zeile der Tabelle. 왘 EOF
Ist TRUE, wenn der Datensatzzeiger am Ende des Datensatzobjekts steht, also in der letzten Zeile der Tabelle. 왘 RecordCount
Gibt die Anzahl der Datensätze in der Tabelle zurück. Wenn gegenüber der Original-SQL-Tabelle im Datensatzobjekt nur eine Auswahl steht (beispielsweise durch die WHERE-Bedingung eingeschränkt), werden nur die wirklich im Datensatzobjekt befindlichen Datensätze gezählt. Das nächste Beispiel zeigt unter Verwendung verschiedener Navigationsmethoden, wie die Tabelle rückwärts ausgegeben werden kann: <TITLE>Tabelle von hinten anzeigen
Beachten Sie den Parameter adOpenStatic, der das Bewegen des Datensatzzeigers in beide Richtungen erlaubt. Das Kommandoobjekt Das Kommandoobjekt ergänzt auf sinnvolle und abschließende Weise die grundlegenden Datensatzobjekte. Während die bisher vorgestellten Methoden zeigen, wie mit den Mitteln von VBScript und ADO-Datenbanken abgefragt und beschrieben wird, wendet sich Command an die Programmierer, die ohnehin mit SQL umgehen können. Kurz gesagt, das Kommandoobjekt sendet alle Arten von SQL-Befehlen an die Datenbank. Sie benötigen dieses Objekt immer dann, wenn Sie nicht implizit eine andere Funktion ansprechen möchten. So können Sie mit Open prinzipiell jeden SQLBefehl absetzen, erzeugen aber immer eine neue Instanz des Datensatzobjekts. Ebenso funktioniert die Methode Execute, die auf der Instanz eines Verbindungsobjekts aufbaut.
Command
Die Anwendung – wieder in der üblichen Objektform – funktioniert folgendermaßen:
Kopfelemente Die folgenden Elemente können nur innerhalb der Tags erscheinen. TITLE
Dieses Element bildet den Titel der Seite. Wird in Suchmaschinen gelistet und erscheint in der Kopfzeile des Browserfensters. Der Titel bildet auch den Eintrag der Lesezeichenfunktion (Bookmark) der Browser. Es ist empfehlenswert, nur die Zeichen 32-126 zu verwenden, keine Umlaute.
620
HTML 3.2
Syntax:
<TITLE>
Attribute:
keine
Enthält:
Text ohne Formatierungen
Meta-Informationen META
Definiert dokumentübergreifende Informationen und Steuerungsanweisungen. Kann auch benutzt werden, um die HTTP-Header zu manipulieren. Wird auch mit speziellen Tags (META-Tags) benutzt, um Suchmaschinen zu steuern. Syntax:
<META NAME=string CONTENT=string>
Attribute:
HTTP-EQUIV=string | NAME=string CONTENT=string
Zulässige Werte sind (derzeit) für HTTP-EQUIV oder NAME: HTTP-EQUIV =
CONTENT =
"Expires"
Enthält das Datum, an dem das Dokument ungültig wird.
"Reply-to"
Enthält eine E-Mail-Adresse des Autors.
"Keywords"
Enthält Schlüsselwörter, die im Header erscheinen.
"Refresh
Enthält eine Zeit in Sekunden und eine URL, zu der nach Ablauf der Zeit gesprungen wird (CONTENT="5; nextside.html")
NAME =
CONTENT =
"generator"
Names des Programmes, mit dem die HTML-Seite erzeugt wurde. Wird vom Programm selbst gesetzt.
"author"
Der Autor, wird vom Generator gesetzt.
"description"
Eine Beschreibung, wird nur von Suchmaschinen verwendet.
"keywords"
Enthält Schlüsselworte, die von Suchmaschinen indiziert werden.
Enthält:
nichts
LINK LINK LINK definiert Beziehungen zwischen Dokumenten.
Syntax:
Attribute:
REL=string, REV=string, HREF=URL, TITLE=string
621
B HTML-Referenz 왘 REL=string
Beziehung zu einem anderen Dokument. Neuere Browser können das auswerten und daraus Navigationshilfen erzeugen. 왘 REV=string Inverse Beziehung, das andere Dokument verweist zurück auf dieses. 왘 HREF=URL Beziehung zu einem Dokument an anderer Stelle. 왘 TITLE=titel. Das referenzierte Dokument wird neu benannt. Die Attribute REL und REV dürfen sein: REL = oder REV =
Beschreibung
"home"
Die Startseite
"toc"
Table of Contents, das Inhaltsverzeichnis
"index"
Der Index, beispielsweise alphabetisch
"glossary"
Ein Glossar mit Erklärungen
"copyright"
Ein Ursprungshinweis
"up"
Das logisch übergeordnete Dokument
"next"
Das logisch folgende Dokument der Ebene
"previous"
Das logisch vorgehende Dokument
"help"
Die Hilfeseite
Enthält:
nichts
BASE BASE
Gibt Informationen über die wirkliche Position des Dokumentes. Es ist dann interessant, wenn mit Spiegel- oder Sicherungsservern gearbeitet wird und der Browser das Original kennen muss, weil mit relativen Pfadangaben zugegriffen wird.
622
Syntax:
Attribute:
HREF=URL
Enthält:
nichts
HTML 3.2
SCRIPT SCRIPT
Enthält Skriptbefehle einer Skriptsprache, die im Browser interpretiert wird. Es ist außerdem empfehlenswert, den Inhalt mit den Kommentarzeichen einzuschließen, da einige Browser den <SCRIPT>-Tag nicht verstehen. Syntax:
<SCRIPT>
Attribute:
language=string, src=url.
Dabei bedeuten: 왘 Language=string
Die Skriptsprache („Javascript“, „VBScript“) 왘 Src=url
Enthält:
Die Quelle einer Skriptdatei („/cgi-bin/script.js“) Gültige Skriptbefehle der gewählten Sprache
Styleinformationen STYLE
Beginn einer Styledefinition. Zur Verwendung stehen derzeit nur CSS (Cascading Style Sheets) zur Verfügung. Syntax:
<STYLE>
Attribute:
TYPE=string
Art der Styles Enthält:
Text, der die Styles definiert
Körperelemente Diese Elemente dürfen nur innerhalb der -Tags auftreten. Hier eine Übersicht: H1 .. H6
Header. Überschriften, die in einer bestimmten Grö ß e dargestellt werden. Die wirklichen Formatierungen sind vom Browser abhängig. H1 ist die grö ß te Überschrift, H6 die kleinste. Syntax:
, , , ,
Attribute:
ALIGN=left | right | center
Enthält:
Text und alle Textformatelemente
UL und LI
Unordered List. List Element. Eine unsortierte Liste, die Absätze einrückt und mit Symbolen markiert. Syntax:
623
B HTML-Referenz
Listenelement 1
Listenelement 2 ...
Attribute:
TYPE=disc|square|circle, COMPACT
Enthält:
OL und LI Ordered List, List Element. Eine sortierte Liste, die Absätze einrückt und mit Ziffern oder Buchstaben markiert.
Syntax:
Listenelement 1
Listenelement 2 ...
Attribute:
TYPE=1|a|A|i|I, START=n, COMPACT.
Dabei bedeuten die Typzeichen: 왘 1: 1, 2, 3, 4, ... 왘 a: a, b, c, d, ... 왘 A: A, B, C, D, ... 왘 i: Römische Ziffern, i, ii, iii, iv, v, vi, ... 왘 I: Römische Ziffern, I, II, III, IV, V, VI, ... 왘 START=n. Startwert (nicht alle Browser!)
Enthält:
DIR Directory. Eine Liste mit kurzen Einträgen. Die meisten Browser stellen exakt wie
dar.
Syntax:
Attribute:
COMPACT
Enthält:
MENU Menu. Eine Liste, ähnlich
. Die führenden Zeichen des Elementes
entfallen, und die Liste ist etwas kompakter.
624
Syntax:
<MENU>
Attribute:
COMPACT
Enthält:
HTML 3.2
DL, DT, DD
Definition List, Definition Term, Definition Definition. Dieses Element dient dem Aufbau eines Glossars. Es bildet eine Liste, die jeweils Paare von und - Elementen enthält. Syntax:
Wort Erklärung Wort 2 Erklärung 2
Attribute:
COMPACT
Enthält:
, , Text
P
Paragraph. Bildet einen neuen Absatz. Die Attribute geben die Ausrichtung des gesamten Absatzes an. Der Absatz wird in eingeschlossen. Ein voller Zeilenabstand ohne Inhalt wird mit einem einzelnen
erzeugt. Syntax:
, [
]
Attribute:
ALIGN=left | center | right
Enthält:
Textelemente und Text
PRE
Preformatted. Normalerweise wird Text an den Fenstergrenzen des Browsers umbrochen, und überflüssige Leerzeichen werden entfernt. Dieser Tag lässt den enthaltenen Text völlig unverändert. Normalerweise wird auch eine nichtproportionale Schrift verwendet. Das Attribut gibt die Breite in Zeichen vor, so dass der Browser einen passenden Font wählen kann. Syntax:
Attribute:
WIDTH=n
Enthält:
Textelemente und Text
BLOCKQUOTE
Erstellt ein Zitat. Vergessen Sie Copyright und Quellenhinweis nicht. Dieser Tag war ursprünglich nicht dazu gedacht, um einfach einzurücken, wird jedoch inzwischen auch von HTML-Werkzeugen wie FrontPage zu eben diesem Zweck gebraucht. Syntax:
Attribute:
keine
Enthält:
Textelemente und Text
625
B HTML-Referenz
ADDRESS
Erstellt eine Adresse. Rückt ein und schreibt den enthaltenen Text kursiv. Nutzen Sie dieses Element nur für Adressen, nicht um einfachen Text zu formatieren. Syntax:
Attribute:
keine
Enthält:
Textelemente und Text
DIV
Logical Division. Teilt Textabschnitt in logische Teile. Dient der horizontalen Ausrichtung eines Absatzes und der Formatierung mit Hilfe von Cascading Stylesheets. Syntax:
Attribute:
ALIGN=left | right | center
Enthält:
Textelemente und Text
CENTER
Zentriert Text. Entspricht exakt . Syntax:
Attribute:
keine
Enthält:
Textelemente und Text
Formulare FORM
Formular. Definiert ein Formular, in dem sich Eingabefelder und spezielle Eingabeelemente () befinden können. Jedes Formular auf einer HTML-Seite sollte genau ein Submit-Element haben ( oder ). Syntax:
Attribute:
ACTION=URL, METHOD=get|post, ENCTYPE=string
Dabei bedeutet: 왘 ACTION=URL
Name eines Skripts, Programms oder Befehls, die zum Ausführen des Formulars benutzt werden sollen. 왘 METHOD=get | post Methode (HTTP-Methode), die beim Absenden des Formulars benutzt wird. GET sendet die Elemente in der URL mit, POST nutzt den Datenteil des HTTP-Headers.
626
HTML 3.2 왘 ENCTYPE=string
Enthält:
Die Zeichenkette definiert den Inhalt des Formulars in Form des MIME-Typs, beispielsweise „text/plain“. Textelemente und Text, Formularelemente (siehe ) Diese Elemente sind speziell für Formulare entwickelt und funktionieren nur, wenn sie von einem -Paar umgeben werden. Diese Elemente sind zulässig:
Art des Formularelements text Einzeiliges Texteingabefeld. Password Wie text mit verdeckter Eingabe (Sternchen). Checkbox Checkbox für Mehrfachauswahl. Gruppen werden durch gemeinsamen Namen gebildet. Radio Radiobutton für optionale Auswahl. Gruppen werden durch gemeinsamen Namen gebildet. File Dateieingabefeld, erzeugt zusätzlich einen „Browse“Schalter, der das Suchen auf Festplatte erlaubt (betriebssystemabhängig). Hidden Verstecktes Feld ohne Eingabemöglichkeit, wird zur Datenübergabe zwischen Seiten benutzt. Image Bild, ersetzt den Submit-Schalter. Submit Schalter, der das Formular absendet. Reset Schalter, der alle Elemente in den Urzustand stellt. NAME=string Name des Schalters, gleiche Namen bilden Gruppenelemente.
627
B HTML-Referenz 왘 VALUE=string
Enthält:
Wert, bei radio, hidden und file der zu sendende Text, bei text der Wert, der im Feld erscheint und überschrieben werden kann. Bei Checkbox nicht benutzt, bei submit, reset und button der Text, der auf dem Schalter steht. 왘 SIZE=n Die Ausdehnung in Standardzeichen. 왘 MAXLENGTH=n Die maximale Länge des Textfeldes. Wenn SIZE=n grö ß er als MAXLENGTH ist, scrollt das Textfeld horizontal. 왘 SRC=URL Quelle bei image. 왘 ALIGN=top|middle|bottom|left|right Ausrichtung des Elementes gegenüber dem umliegenden Text. nichts
TEXTAREA
Elemente zum Erfassen längerer Texte in einem mehrzeiligen Feld. Die Tags können einen Text umschließen, der als Standardwert im Textfeld erscheint. Syntax:
Attribute:
NAME=string, ROWS=n, COLS=n. Dabei bedeutet: 왘 NAME=string
Name des Textfeldes 왘 ROWS=n
Enthält:
Anzahl der Reihen (Zeilen) 왘 COLS=n Anzahl der Spalten in Standardzeichen Text als Vorauswahl (Standard)
SELECT und OPTION
Erlaubt eine Auswahl aus einer Liste von Elementen. Kann ein DropdownMenü bilden oder eine einfache Liste. Syntax:
<SELECT> <SELECT>
Attribute:
Für <SELECT>: NAME=string, SIZE=n, MULTIPLE Dabei bedeutet: 왘 NAME=string
Name des Feldes.
628
HTML 3.2 왘 SIZE=n
Anzahl der Zeilen, die gleichzeitig sichtbar sind. Hat das Feld mehr Elemente, wird ein Rollbalken angezeigt. 왘 MULTIPLE Erlaubt die Mehrfachauswahl mit den entsprechenden Tasten, die das Betriebssystem dafür vorsieht (unter Windows (ª) und (Strg) mit linker Maustaste). Für : VALUE=string, SELECTED Dabei bedeutet: 왘 VALUE=string
Enthält:
Wert, der bei der Selektion des Feldes übergeben wird. 왘 SELECTED Feld ist von vornherein schon markiert. innerhalb <SELECT>. Text nach jedem -Tag, schließendes Tag optional.
HR
Horizontal Rule. Horizontale Linie als optische Trennung zwischen Elementen. Syntax:
Ausrichtung 왘 NOSHADE Das Element nicht dreidimensional schattieren 왘 SIZE=n Dicke in Pixeln 왘 WIDTH=n|p% Breite in Pixeln oder Breite in % des Browserfensters nichts
Tabellen und Tabellenelemente TABLE
Definiert eine neue Tabelle. Die Tabelle muss mit Reihenelementen
und Zellenelementen
komplettiert werden, die im folgenden beschrieben werden. Tabellen dürfen verschachtelt werden, das heißt, innerhalb einer Zelle kann wieder eine komplette Tabelle erzeugt werden. Syntax:
Rand um die gesamte Tabelle in Pixeln 왘 CELLPADDING=n
Enthält:
Abstand des Textes in einer Zelle vom Rand der Zelle 왘 CELLSPACING=n Abstand der Zellen voneinander 왘 WIDTH=n|p% Breite in Pixeln oder Breite in % des Browserfensters nichts Die folgenden Elemente erscheinen nur innerhalb einer Tabellendefinition
.
CAPTION
Schreibt eine Überschrift über oder unter die Tabelle, in der das Tag steht. Dieses Tag sollte direkt hinter
stehen, noch vor dem ersten
oder
. Syntax:
Attribute:
ALIGN= top|bottom
Ausrichtung der Überschrift oben oder unten. Enthält:
Text und Textelemente
TH
Table Header. Bildet die Überschrift einer Tabelle. Funktioniert wie
TR Table Row. Bildet die Reihe einer Tabelle. Sie können beliebig oft
verwenden.
erscheint nur hinter und
oder als erstes Element hinter
.
630
Syntax:
Attribute:
ALIGN=left|right|center, VALIGN=top|middle|bottom
HTML 3.2
Beschreibung der Attribute: 왘 ALIGN=left|right|center
Ausrichtung des Textes links, rechts, mittig 왘 VALIGN=top|middle|bottom
Vertikale Ausrichtung des Textes oben, mittig, unten. Enthält:
TD Table Cell Definition. Bildet die Zellen innerhalb einer Reihe der Tabelle. Sie können beliebig oft
verwenden. Achten Sie darauf, dass Sie in jeder Reihe die gleiche Anzahl Zellen definieren oder Zellen mit den SPAN-Attributen so zusammenfassen, dass die gleiche logische Anzahl Zellen angegeben wird.
Verbindet die aktuelle Zelle über n Reihen zu einer großen Zelle 왘 COLSPAN=n Verbindet Zellen der aktuellen Reihe über mehrere Spalten 왘 NOWRAP Kein automatischer Zeilenumbruch des enthaltenen Textes 왘 ALIGN=left|right|center Ausrichtung des Textes links, rechts, mittig 왘 VALIGN=top|middle|bottom Vertikale Ausrichtung des Textes oben, mitte, unten 왘 WIDTH=n Breite der Reihe in Pixeln (Minimum) 왘 HEIGHT=n Höhe der Reihe in Pixeln (Minimum)
Textbezogene Elemente Mit diesen Elementen kann Text vielfältig formatiert und strukturiert werden. Die Einteilung kann in drei Klassen vorgenommen werden: Hervorhebungen mit logischer Bedeutung (auf die Struktur bezogen):
Physische Formatierung des Textes: 왘 TT – Unformatiert 왘 I – Kursiv 왘 B – Fett 왘 U – Unterstrichen 왘 STRIKE – Durchgestrichen 왘 BIG – Groß 왘 SMALL – Klein 왘 SUB – Tiefgestellt 왘 SUP – Hochgestellt
Spezialmarkierungen zur Navigation 왘 A – Anker 왘 BASEFONT – Standardfont 왘 IMG – Bild 왘 APPLET – Java Applet 왘 PARAM – Parameter für Applets 왘 FONT – Font (Schriftart- und -form) 왘 BR – Zeilenumbruch 왘 MAP – Bild mit Navigationsinformationen 왘 AREA – Gebiet mit Navigationsinformationen im Bild
EM
Emphasized. Text hervorheben, in den meisten Browser kursiv. Dieses Element ist ein strukturelles Element und sollte nicht verwendet werden, wo aus optischen Gründen kursiv geschrieben wird. Benutzen Sie besser .
632
HTML 3.2
Syntax:
<EM>
STRONG Strongly emphasized. Text stärker hervorheben als mit <EM>. Wird meist durch fette Schrift dargestellt. Um nur aus optischen Gründen fett zu schreiben, ist besser zu verwenden.
Syntax:
<STRONG>
DFN Definition. Eine Definition, beispielsweise einer Abkürzung, wenn diese das erste Mal benutzt wird. Meist kursiv, siehe Hinweise bei <EM>.
Syntax:
CODE Nutzt einen nichtproportionalen Font für die Hervorhebung von Programmcode. Wenn der Text über mehrere Zeilen läuft, ist besser geeignet.
Syntax:
SAMP Beispieltext, meist ein nichtproportionaler Font für die Hervorhebung von Fehlermeldungen.
Syntax:
<SAMP>
KBD Ebenso eine Kennzeichnung, diesmal für Tastatureingaben (ENTER, STRG etc.). Bei den meisten Browsern kein Effekt.
Syntax:
VAR Ebenso eine Kennzeichnung, diesmal für Variablen (a, name, x etc.). Bei den meisten Browsern kursiv.
Syntax:
CITE Ebenso eine Kennzeichnung, diesmal für Zitate (RFC 1845 etc.). Bei den meisten Browsern erfolgt die Darstellung kursiv.
Syntax:
TT Schreibt in einem nichtproportionalen Font, beispielsweise für die Darstellung von Bildschirmausgaben. Im Gegensatz zu werden überzählige Leerzeichen entfernt und ein normaler Zeilenumbruch benutzt.
Syntax:
633
B HTML-Referenz
I
Formatiert Text kursiv. Syntax:
B Formatiert Text fett.
Syntax:
U Formatiert Text mit Unterstrich. Sollten Sie mit Vorsicht verwenden, da normalerweise Links unterstrichen erscheinen und sich Nutzer davon irritiert fühlen könnten, da unterstrichene Passagen nicht verlinkt sind.
Syntax:
STRIKE Streicht Text durch.
Syntax:
<STRIKE>
BIG Formatiert Text eine Stufe grö ß er als der Grundfont. Siehe auch .
Syntax:
SMALL Formatiert Text eine Stufe kleiner als der Grundfont. Siehe dazu auch .
Syntax:
<SMALL>
SUB Stellt Text tiefer (Beispiel: C2H5OH)
Syntax:
<SUB>
SUP Stellt Text höher (Beispiel: m2)
Syntax:
<SUP>
A Anchor. Anker-Tag. Das wichtigste Tag für Hypertext. Damit werden Marken im Text definiert, zu denen gesprungen werden kann, und damit werden auch die eigentlichen Hyperlinks definiert.
634
Syntax:
Attribute:
Entsprechen dem Tag . Siehe dort.
Enthält:
Text, der als Hyperlink formatiert erscheint und anklickbar
HTML 3.2
ist BASEFONT
Stellt den Standardfont für das gesamte Dokument ein. Es ist zu empfehlen, statt FONT oder BASEFONT Style Sheets zu benutzen. Syntax:
Attribute:
SIZE=n. Grö ß e in Werten von 1 bis 7
IMG
Einbindung eines Bildes in die Seite. Standardmäß ig werden GIF und JPEG von allen Browsern unterstützt. Syntax:
Alternativer Text, wenn das Bild nicht angezeigt wird, und bei neueren Browsern als Hilfstext, wenn die Maus über dem Bild schwebt. ALIGN= Ausrichtung des Bildes auf der Seite oder innerhalb des umgebenden Containers. HEIGHT=n Höhe in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. WIDTH=n Breite in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. BORDER=n Rand (blau) rund um das Bild. Bilder, die als Link (innerhalb ) benutzt werden, haben immer einen 2Pixel-Rand, der mit BORDER=0 unterdrückt werden kann. Alle anderen Bilder haben keinen Rand. HSPACE=n Horizontaler Abstand in Pixeln, der links und rechts vom Bild erscheint. VSPACE=n. Vertikaler Abstand in Pixeln, der oben und unten vom Bild erscheint.
635
B HTML-Referenz 왘 USEMAP=URL. ISMAP.
Siehe unter MAP. APPLET und PARAM
Einbindung eines Java- oder ActiveX-Applets. Syntax:
Name des Applets 왘 ALT=string Alternativer Text, wenn das Applet nicht angezeigt wird, weil der Browser keinen Interpreter hat. 왘 ALIGN= Ausrichtung des Applets auf der Seite oder innerhalb des umgebenden Containers. 왘 HEIGHT=n Höhe in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. 왘 WIDTH=n Breite in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. 왘 HSPACE=n Horizontaler Abstand in Pixel, der links und rechts vom Bild erscheint. 왘 VSPACE=n Vertikaler Abstand in Pixel, der oben und unten vom Bild erscheint. Für die Parameter : 왘 NAME=string
Name des Parameters (vom Applet abhängig). 왘 VALUE=string
Wert des Parameters (vom Applet abhängig).
636
HTML 3.2
FONT
Änderungen der Darstellung des Schriftfonts. Syntax:
Attribute:
SIZE=string, COLOR=#RRGGBB, FACE=string
Dabei bedeuten die Attribute im einzelnen: 왘 SIZE=string
Grö ß e des Fonts in Einheiten 1..7 왘 COLOR=#RRGGBB Farbe in RGB-Einheiten oder Standardfarbwerten, beispielsweise COLOR=red. 왘 FACE=Schriftart (nicht offiziell HTML 3.2). Nicht von allen Browsern unterstützt. Font muss lokal vorhanden sein. Sie können mehrere Schriften, durch Kommata getrennt, angeben. BR
Break. Einfacher Zeilenumbruch. Syntax:
Attribute:
CLEAR=left|all|right|none
Hat nur Gültigkeit, wenn der Text um ein Bild herum fließt und mit formatiert wird. Dann stellt das Attribut sicher, wie der Zeilenumbruch sich am Bild verhält. Mit CLEAR wird der Zeilenumbruch so gesetzt, dass der Text unterhalb des Bildes weitergeführt wird. MAP und AREA, ISMAP und USEMAP
Definition und Kontrolle eines Navigationsfeldes. Einem Bild werden zusätzliche Informationen unterlegt, so dass die Maus über diesem Bild auf Gebiete reagiert und der Browser Links ausführt. Syntax:
<MAP>
Attribute:
NAME=string
Name des Navigationsfeldes. Für : SHAPE=rect|circle|poly|default, COORDS=string, NOHREF|HREF=URL, ALT=string. Es gilt: 왘 SHAPE=
Gebiet in Pixeln auf dem Bild, das den Link unter HREF ausführt. Kann mit den entsprechenden COORDS-Werten sein:
637
B HTML-Referenz 왘 ="Rect" COORDS="xl,yl,xr,yr"
Rechteck 왘 ="Circle" COORD="x,y,radius"
Kreis 왘 ="Poly" COORD="x,y x2,y2 x3,y3, x4,y4"
Polygon (Vieleck) mit mehreren Wertepaaren. Der letzte Wert wird mit dem ersten verbunden.
638
HTML 4 왘 ="Point" COORD=x",y"
Eizelner Punkt; ziemlich sinnlos. 왘 Default
Standard, kein besonderes Gebiet, sondern die angegebene HREF wirkt auf alle nicht erfassten Gebiete. Hinweise zu ISMAP und USEMAP. Der im angegebene Name bezieht sich auf ein Unterstützungsprogramm auf dem Server. Der Name in <MAP name=karte> wird verwendet, um mit darauf zuzugreifen.
B.1.4
Liste der Elemente
Neue strukturelle Elemente in HTML 4 sind: 왘 ABBR und ACRONYM 왘 DEL 왘 INS 왘 SPAN
Auch um gestalterische Elemente wurde HTML 4 erweitert: 왘 COL, COLGROUP, THEAD, TBODY, TFOOT, TABLE 왘 BDO 왘 FRAMESET, FRAME, IFRAME und NOFRAME 왘 OBJECT 왘 Q 왘 S
Zusätzliche Formularelemente in HTML 4: 왘 BUTTON 왘 FIELDSET, LEGEND 왘 OPTGROUP (SELECT, OPTION)
B.2
HTML 4
B.2.1
HTML 4 – Einführung
Hier werden nur die Elemente beschrieben, die es in HTML 3.2 noch nicht gab oder die grundlegend verändert wurden. Zuerst eine alphabetische Übersicht. Die Versionsnummer der HTML-Norm (3 bzw. 4) korrespondiert nicht mit denen der Browser. So beherrschen die Browser der Version 2 fast HTML 3.2, die Version 3-Browser einen Teil der HTML 4-Spezifikation (wie Frames) und die Version 4-Browser beherrschen HTML 4 mit vielen individuellen Erweiterungen und teilweise auch Einschränkungen. Die Browser der Version 5 beherrschen fast alle HTML 4-Elemente.
639
B HTML-Referenz
B.2.2
Liste der Elemente
Hier ist eine Liste aller neuen Tags. Die meisten Tags erlauben außerdem die Angabe von Styleattributen (siehe CSS), ohne dass dies bei jedem Tag immer wieder erwähnt wurde. Hier eine alphabetische Liste: 왘 ABBR – Abkürzung 왘 ACRONYM – Akronym 왘 BDO – Wechsel der Schreibrichtung 왘 BUTTON – Schalter 왘 COL – Spalte 왘 COLGROUP – Spaltengruppe bei Tabellen 왘 DEL – Gelöschter Text 왘 FIELDSET – Gruppierung von Elementen bei Formularen 왘 FRAME – Frame 왘 FRAMESET – Frameset 왘 IFRAME – Eingebetteter Frame 왘 INS – Eingefügter Text 왘 LABEL – Marke in Formularen 왘 LEGEND – Überschrift eines FIELDSET 왘 NOFRAMES – Bereich ohne Frames 왘 NOSCRIPT – Alternative zu Script 왘 OBJECT – Objekt 왘 OPTGROUP – Optionsgruppe (SELECT) 왘 Q – Kurzes Zitat 왘 S – Durchgestrichener Text 왘 SPAN – Generischer Container 왘 TBODY – Tabellenkörper 왘 TFOOT – Tabellenfuß 왘 THEAD – Tabellenkopf
640
HTML 4
B.2.3
Neue strukturelle Elemente in HTML 4
ABBR und ACRONYM
Abbreviation, Acronym. Abkürzung und Akronym (aussprechbare Abkürzung wie „Laser“). Dient nur zur strukturellen Aufarbeitung. Browser zeigen nur den Text zwischen den Tags an. Syntax:
Attribute:
TITLE=string Ausgeschriebene Abkürzung
DEL
Deleted. Kennzeichnet Text als gelöscht. Der Text erscheint oft durchgestrichen und kann mit zusätzlichen Attributen markiert werden. Suchmaschinen und andere Indizes sollten den Text nicht mehr berücksichtigen. Syntax:
[]
Attribute:
왘 CITE=grund
Grund der Löschung 왘 DATETIME=Zeitangabe Datum der Löschung INS
Inserted. Kennzeichnet Text als eingefügt. Der Text erscheint oft unterstrichen und kann mit zusätzlichen Attributen markiert werden. Suchmaschinen und andere Indizes sollten berücksichtigen, dass der Text neu ist. Syntax:
[]
Attribute:
왘 CITE=grund
Grund der Einfügung 왘 DATETIME=Zeitangabe
Datum der Einfügung SPAN SPAN hat selbst keine Funktion, außer einen generischen Container für Cascading Style Sheets und allgemeine Attribute wie LANG oder DIR zu bilden.
Syntax:
<SPAN>
Attribute:
keine
Gestalterische Elemente in HTML 4 COL, COLGROUP, THEAD, TBODY, TFOOT, TABLE
Definition einer Spalte und einer Gruppe von Spalten innerhalb einer Tabelle. Kann nur in
auftreten. Mit werden Spalten zu Gruppen zusammengefasst, Inhalt können nur -Tags sein. Das Tag muss nach stehen (wenn verwendet) und vor . Der Kopf-
641
B HTML-Referenz
bereich einer Tabelle kann nun mehrere Zeilen umfassen und wird mit umfasst. enthält die eigentlichen Reihen mit Daten. Sie können mehrfach anwenden. Am Ende der Tabelle kann eine Gruppe von Reihen mit umfasst werden. Der Sinn ist eine Zuweisung von Styleinformationen zu logischen Tabelleneinheiten, anstatt zu jeder einzelnen Tabelle. Syntax:
Attribute:
Mehrere Attribute für COL und COLGROUP mit folgender Bedeutung: 왘 SPAN=zahl
Anzahl der zusammengefassten Spalten 왘 WIDTH=pixel|% Breite der Spalte Die folgenden Attribute gelten für COL, COLGROUP und THEAD, TBODY und TFOOT: 왘 ALIGN=[left|center|right|justify|char]
Ausrichtung des Textes in der Spalte 왘 CHAR=zeichen
Zeichen, nach dem ausgerichtet wird 왘 CHAROFF=zahl Abstand, auf das Ausrichtungszeichen bezogen 왘 VALIGN=[top|middle|bottom|baseline] Vertikale Lage des Textes in der Spalte
642
HTML 4
BDO
Bidirectional Override. Ändert die Schreibrichtung. Deutsch verläuft normal von links nach rechts, Hebräisch von rechts nach links. Dieses Tag ändert die Richtung. Syntax:
Attribute:
DIR=ltr|rtl. Richtung, ltr=left to right, rtl=right to left LANG=Sprachcode. en, de usw.
Elemente für Frames FRAMESET, FRAME, IFRAME und NOFRAME
Ein Frameset definiert eine Gruppe von Frames. Frames sind rechteckige Unterteilungen des Browserfensters. Jede Unterteilung hat eine eigene Datenquelle (HTML-Datei oder Skriptdatei). Syntax:
... -Tag kennt diese Attribute: 왘 NAME=name
Name des Rahmens, dient als Referenz für TARGET (siehe unten). 왘 SRC=URL Quelle, URL der HTML-Datei, die im Rahmen dargestellt werden soll. 왘 LONGDESC=string Ausführliche Beschreibung. 왘 MARGINWIDTH=pixel Breite des Randes (links, rechts) im Inneren des Frames zum Text. 왘 MARGINHEIGHT=pixel Höhe des Randes (oben, unten) im Inneren des Frames zum Text. 왘 NORESIZE Der Frame kann nicht in seiner Grö ß e verändert werden. Andernfalls können die Ränder mit der Maus angefasst und gezogen werden. 왘 SCROLLING=[yes|no|auto] Verhalten beim Scrollen. Wenn der Text zu groß für das Fenster ist, erscheinen Rollbalken (auto). Bei yes erscheinen diese Balken immer, bei no niemals. 왘 hat keine Attribute. Besonderheiten des Internet Explorers (ab Version 4): 왘 FRAMESPACING=pixel
Abstand zwischen den Frames 왘 FRAMEBORDER=[1|0] Mit oder ohne Rand Besonderheiten bei Netscape: 왘 <IFRAME>
wird nicht unterstützt 왘 BORDER=pixel
Rand in Pixel 왘 BORDERCOLOR=#RRGGBB
Randfarbe Einige Elemente, die Links steuern (, , , ) kennen nun das Attribut TARGET=frame. Damit können Links gezielt in ein bestimmtes, benanntes Frame eines Framesets zeigen.
644
HTML 4
OBJECT OBJECT wurde vor allem eingeführt, um die proprietären Erweiterungen (IExplorer) und <EMBED> (NS2, IE3) zu vereinheitlichen. Ebenso können aber auch die Spezial-Tags und <APPLET> ersetzt werden.
Syntax:
...
Attribute:
Die folgenden Attribute sind für zulässig:
Attribut
Beschreibung
CLASSID=URL
Klassen –ID
ARCHIVE=daten
Komprimierte Archivdatei
CODEBASE=URL
Basisadresse für CLASSID, DATA, ARCHIVE
WIDTH=pixel
Breite
HEIGHT= pixel
Höhe
NAME=string
Name für Referenzen
USEMAP=URL
MAP für anklickbare Bereiche
TYPE=type
Typ
CODETYPE=inhalt
Codetyp
STANDBY=string
Text während der Ladezeit
TABINDEX=zahl
Index für den Tabulator
DECLARE
Nicht instanziiertes Objekt
ALIGN=[top | middle | bottom | left | right]
Ausichtung
BORDER=pixel
Randbreite
HSPACE=pixel
Horizontaler Leerraum
VSPACE=pixel
Vertikaler Leerraum hat nur zwei Attribute: 왘 NAME=string
Name des Parameters (vom Objekt abhängig) 왘 VALUE=string Wert des Parameters (vom Objekt abhängig) Q
Quotation. Die kurze Form des Tags , vor allem für den Gebrauch innerhalb eines fließenden Textes. Syntax:
Attribute:
CITE=URL Quelle des Zitates (Woher der Text stammt)
645
B HTML-Referenz
S
Strike. Durchgestrichener Text. Besser unterstützt ist <STRIKE>, eine Netscape-Erweiterung, die auch alle anderen Browser unterstützen. Kann benutzt werden, um auch Browser zu bedienen, die nicht unterstützen. Syntax:
Definiert eine Gruppe von Formularfeldern, die logisch zusammengehören und durch einen gemeinsamen Namen bedient werden sowie von einem Rahmen umgeben sind. Erscheint nur innerhalb . Sie können für Felder und Label das Attribut ACCESSKEY verwenden. Syntax:
....
Attribute:
FIELDSET selbst hat keine Attribute. Die Benennung jeder einzelnen Gruppe erfolgt mit dem Tag . Die Attribute für im Einzelnen: 왘 ALIGN=top|bottom|left|right
Ausrichtung des Feldnames relativ zum . Die Attribute für :
646
Cascading Style Sheets - CSS 왘 FOR=name
Der name assoziiert das Feld mit dem Label. 왘 ONFOCUS=Script
Skript, das ausgeführt wird, wenn der Schalter den Fokus bekommt. 왘 ONBLUR=Script Skript, das ausgeführt wird, wenn der Schalter den Fokus verliert. Dieses Attribut gilt für und : 왘 ACCESSKEY=zeichen
Ein Zeichen, das in Kombination mit der (Alt)-Taste den Fokus auf die Gruppe oder das Feld setzt. OPTGROUP (SELECT, OPTION)
Dieses Element ist eine Erweiterung des <SELECT>-Tags. Es lassen sich jetzt auch innerhalb von Listen Gruppen bilden. Vorher wurden oft Blindeinträge gesetzt und mit JavaScript herausgefiltert. Syntax:
<SELECT>
Attribute:
Folgende Attribute sind innerhalb des Elements zulässig. Neu sind beide Attribute auch für das Element : 왘 LABEL=string
Name der Gruppe 왘 DISABLED Eintrag gesperrt
B.3
Cascading Style Sheets - CSS
B.3.1
CSS – Klassenübersicht
왘 Font-Eigenschaften 왘 Eigenschaften der Farben und Hintergründe 왘 Text-Eigenschaften 왘 Box-Eigenschaften 왘 Klassifizierungs-Eigenschaften
647
B HTML-Referenz 왘 Positionierungs-Eigenschaften 왘 Druck-Eigenschaften 왘 Filter-Eigenschaften 왘 Pseudoklassen und andere Eigenschaften
B.3.2
Die CSS-Referenztabellen
Diese Übersicht über CSS listet alle zulässigen Attribute und deren Abhängigkeiten auf. Für die Anwendung finden Sie in Kapitel 5 Hinweise. Hinweis
Styleanweisungen, die in den folgenden Tabellen kursiv gesetzt sind, ersetzen Sie durch einen entsprechenden Wert, beispielsweise family-name durch „Sans Serif“. Nichtkursive Anweisungen sind dagegen unverändert als Parameter zu verwenden. Font-Eigenschaften Diese Elemente kontrollieren die Typografie: Vererbbar?
DIV, SPAN and replaced elements absolutely and relatively positioned elements alles alles
visible | hidden | inherit length | percentage | auto Auto | integer
{ visibility:visible; }
top
visibility width z-index
652
{ top:0; }
{ width:80%; } { z-index:-1; }
absolutely and relatively positioned elements alles DIV, SPAN and replaced elements absolutely and relatively positioned elements
Nein
Nein Nein Nein
Nein Nein Nein
Cascading Style Sheets - CSS
Druck-Eigenschaften Haben Sie sich schon immer geärgert, dass ein Ausdruck der Webseite nicht em Layout entspricht? Diese Elemente kontrollieren den Druck: Vererbbar?
Attribute
Zulässige Werte
Beispiel
Wirkt auf
page-break-before
auto | always || left | right auto | always || left | right
Filter-Eigenschaften Die folgenden Filter verbergen Elemente in Abhängigkeit von Eigenschaften. Die Anwendung ist nur im Zusammenhang mit Skripten sinnvoll.
Pseudoklassen und andere Eigenschaften @import attribute importiert ein externes Style in ein existierendes. Cursor kontrolliert den Mauszeiger und !important überschreibt die Standardkaskadierung der Styles.
Attribute
Zulässige Werte
Beispiel
@import
url(url)
@import url(mystyles.css);
cursor
auto | crosshair | default | hand | move | e-resize | neresize | nw-resize | n-resize | se-resize | sw-resize | sresize | w-resize | text | wait | help
{ cursor:hand; }
Wirkt auf style sheets alles
Vererbbar? -Ja
653
Attribute
Zulässige Werte
Beispiel
!important
!important
{ font-weight:bold!important }
active, hover, link, visited
N/A
A:hover { color:red; }
B.3.3
Wirkt auf style sheets alles
Vererbbar? -Ja
Weitere Informationen
왘 Microsoft Typography: http://www.microsoft.com/typography/ 왘 W3C Style Sheets (http://www.w3.org/Style/css) 왘 Hilfe für Webdesigner wird unter dieser Internet-Adresse versprochen:
Wir hoffen, Ihnen mit diesem Buch viele Anregungen und Tipps vermittelt zu haben, die Ihnen bei der Entwicklung professioneller Websites mit FrontPage helfen. Weiterführende Informationen sind im Internet zu finden, auf die wir hier hinweisen möchten. Aufgrund der sich schnell ändernden Strukturen im Internet können sich Adressen ändern und interessante neue Seiten hinzugekommen sein. Auf der Begleit-Website zum Buch finden Sie aktuelle Links und zusätzliche Informationen, Skripte und Hilfe. Die Adresse lautet: http://www.frontpage.comzept.de
Die Website des Addison-Wesley-Verlags finden Sie unter: http://www.addison-wesley.de
C.1
Offizielle Web Sites
Die Homepage von FrontPage 2000 bei Microsoft lautet: http://www.eu.microsoft.com/germany/office/office2000/frontpage2000/default.htm
oder http://www.eu.microsoft.com/frontpage/
Die zentrale Adresse für Office-Produkte, Software-Updates und ServiceLeistungen ist: http://officeupdate.microsoft.com
C.2
Newsgroups zu FrontPage
Die Usenet-Newsgroups zu FrontPage geben Ihnen die Möglichkeit, mit anderen FrontPage-Nutzern über FrontPage zu diskutieren, Fragen zu stellen, Wissen auszutauschen oder gute FrontPage-Bücher zu empfehlen ;-): news://msnews.microsoft.com/microsoft.public.de.frontpage news://msnews.microsoft.com/microsoft.public.frontpage.client
Newsgroups zu Internet Information Server (IIS) und den Office ServerErweiterungen: news://msnews.microsoft.com/microsoft.public.frontpage.extensions.windowsnt news://msnews.microsoft.com/microsoft.public.frontpage.extensions.unix news://msnews.microsoft.com/microsoft.public.inetserver.iis
655
C Angebote im Internet
C.3
Tipps & Tricks
Angebote anderer Web-Sites mit Hinweisen, Tipps und Tricks rund um FrontPage: http://www.akademie.de/tips_tricks/index.html?thema=18 http://www.teamx.de
C.4
Englische Web Sites zum Thema
왘 FrontPage World
http://www.frontpageworld.com 왘 YCOLN FrontPage® Tips, FAQs and Solutions
Download.com – Shareware-Archiv http://www.download.com Fritz-Service – Anmeldung und Optimierung für Suchmaschinen http://www.fritz-service.com FTP Voyager http://www.ftpvoyager.com Globalware – CuteFTP http://www.cuteftp.com Helios Software – TextPad Text-Editor http://www.textpad.com HexMac Software Systems – Typograph (TrueDoc-Generator) http://www.hexmac.com IPswitch WS_FTP http://www.ipswitch.com Knoware – Internet Neighborhood (FTP-Client) http://www.knoware.com Macromedia – Authorware, Director, Dreamweaver, Fireworks, Flash http://www.macromedia.com/de/ MetaCreations – Kais Power Tools, Soap, Dabbler, Painter http://www.metacreations.com/de Microsoft http://www.eu.microsoft.com/germany Microsoft Typography – Schriften, OpenType, WEFT http://www.microsoft.com/typography MSW – Submit Wolf (Anmeldungssoftware für Suchmaschinen) http://www.msw.com.au Netscape Communications – Netscape Navigator http://www.netscape.com Opera Software – Opera Internet Browser http://www.opera.no PiCo http://pico.i-us.com/ Alfs Plug-In Head http://pluginhead.i-us.com Trellian Software – EuroPromote http://www.trellian.com Tucows – Shareware-Archiv http://www.tucows.com WinFiles – Shareware-Archiv http://www.winfiles.com
660
D
Die Autoren
Für Fragen und Anregungen zum Buch, aber auch für Kritik und Hinweise auf Fehler stehen Ihnen die Autoren gern zur Verfügung. Sie können auch für Vorträge, Seminare und Veranstaltungen können Sie die Autoren gern ansprechen. Steffen Kepper ist Geschäftsführer einer Berliner Online-Agentur. Zuvor arbeitete er als Projektmanager für eine der führenden Multimedia-Agenturen in Europa. Jörg Krause ist Spezialist für Anwendungssoftware und Datenbanken. Er arbeitet als freier Autor in Berlin und hat bereits zahlreiche Fachbücher veröffentlicht. Fragen und Anregungen zum Buch, aber auch für Kritik und Hinweise auf Fehler stehen sind sehr willkommen. Darüber hinaus kommen wir gerne als Referenten auf Vorträgen und Seminaren zu Ihnen. Die Autoren erreichen sie unter: 왘 http://www.joerg.krause.net 왘 http://www.epistar.com
Informieren Sie sich auf den Webseiten über weitere Angebote und praktische Unterstützung bei der Entwicklungen professioneller Webanwendungen, Datenbankprogrammierung und Design.
661
Stichwortverzeichnis :Symbole
_fpclass 585
:A
A HREF= 132 Absatzformatierung 277 Ausrichtung 277 Silbentrennung 279 Zeilenumbruch 279 Zeilenwechsel 277 Absolute Positionierung 435 Active Server Pages 41 ActiveX 40 ActiveX-Steuerelemente 464 Adobe Acrobat 328 Alternativ-Text 339 American Registry for Internet Numbers 72 Anchor 134 Anführungszeichen 117 Anker 134 Ansichtenliste 198 Anti-Aliasing 321 Antonyme 291 APNIC 72 AREA 159 ARIN 72 ARPANET 62 ASCII 313 Asia-Pacific Network Information Center 72 ASP -> siehe Active Server Pages Aufbau des Internets 59 Aufgabenverwaltung 477 Auflösung 318 Aufzählungen 147, 419 Aufzählungszeichen 419 Auschecken 247 Ausrichtung in Tabellen 387 AVI-Video 463
Indexseite 99 Inhaltsverzeichnis 443–444, 451 INPUT 142 International Organization for Standardization 63 Internet Assigned Number Authority 63 Internet Assigned Numbers Authority 72 Internet Corporation for Assigned Names and Numbers 63 Internet Protocol Broadcast 69 Datagramm 68 Fragmentierung 68 Multicast 69 Subnetze 70 Unicast 69 Internet Protocol Suite 62 Internet Protocol Version 4 69 Internet Protocol Version 6 70 Internet Relay Chat 61 Internetzugang DSL 321 Geschwindigkeit 321 Intranet 61 IP 75 IP-Adressen, Adressversionen 69 IPS 62 IPv4 69 IPv6 70 IRC 61 ISAPI 58 ISO 63 ISO/OSI-Referenzmodell 63
Oberfläche anpassen 25 Oktett 69 OL 149 Online-Marketing 101
Stichwortverzeichnis
Online-Verkauf 102 Optimieren für Behinderte 317 für Browser 314 Hardware 318 Seitengrö ß e 321 Websites 310 Ordner im Web verschieben 238 in Webs importieren 235 löschen 197 neu erstellen 197 umbenennen 197 verborgene 242 vereinheitlichen 194 verschieben 197 Ordneransicht 193
:P
P 123 Palmtops 311 PDF 335 PDF -> s. Adobe Acrobat Perl 57 PhotoCD 336 Plug-Ins 462 PNG 335 Port 73 Port- und Protokollnummern 73 Portbezeichnung 74 Positionierung 435 PRE 123 Proposed Standard 66 Protokoll, verbindungsloses 76 Protokollnummern 75
:Q
Quellcodekontrolle 247 Quellenverweis 355
:R
Randbereiche 449 Rasterung 136 Rechtliche Aspekte 355 Rechtschreibprüfung Benutzerwörterbuch 290 manuelle 290 während der Eingabe 289 webweite 356 Relative Positionierung 435 Request For Comments 66 Stufen 66 Request-Header-Fields 79 Reseau IP Europeens 72 Reservierte Adressen 71 Response-Header-Fields 79