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!
Inhaltverzeichnis: Über dieses Buch Vorwort zu »Internet-Server - Einrichten und Verwalten« Leserkreis Warum wir dieses Buch geschrieben haben Gliederung Typographische Konventionen Kommentare und Verbesserungsvorschläge Danksagungen Russ Jones Adrian Nye Kapitel 1 Einführung in das World Wide Web Wozu dient das Web? Grundlegende Konzepte des WWW Querverweise Die Auszeichnungssprache HTML Das Konzept der URLs Was ist ein World Wide Web-Browser? Was ist ein World Wide Web-Server? HTTP Server und Browser für das WWW Web-Browser Lynx MidasWWW Mosaic Netscape Navigator Arena Der World Wide Web-Browser für Emacs
http://www.oreilly.de/german/freebooks/Html_buch/inhalt.html (1 von 6) [11.04.2001 17:14:39]
HTML und das World Wide Web
NeXT perlWWW ViolaWWW Weitere Web-Browser Web-Server NCSA CERN Plexus WebSite Weiterentwicklung des Web HTML 3.0 Sichere Transaktionen VRML Einheitliche Namensgebung Internationalisierung Kommerzialisierung Übersicht über die weiteren Kapitel Kapitel 2 Einrichten eines Web-Servers Einrichten der Basisdienste Installation eines vorkompilierten Servers Übersetzen von NCSA-HTTP Lokale Änderungen der Konfiguration Grundeinstellungen für httpd.conf Grundeinstellungen für srm.conf Grundeinstellungen für access.conf Installation des Servers Start des Servers Start im Einzelbetrieb Neustart im Einzelbetrieb Start unter inetd Zuordnung der URLs auf Dokumente Testen Ihres Web-Servers Einrichten von Home-Pages Verwaltung des Dokumentbaums Konventionen für den öffentlichen Zugang Ankündigen Ihres Servers
http://www.oreilly.de/german/freebooks/Html_buch/inhalt.html (2 von 6) [11.04.2001 17:14:39]
HTML und das World Wide Web
Betrieb eines Web-Servers Aktualisierung von HTML-Dokumenten Verwaltung der Protokolldateien Ändern der Verzeichnisstruktur Spiegeln von Dokumenten und Servern HTTP-Protokolldateien und deren Auswertung getstats wwwstat wusage Aktivieren zusätzlicher Funktionen Zusätzliche MIME-Typen Einbetten durch den Server Automatisches Indizieren von Verzeichnissen Zusammenfassung der Installation Kapitel 3 Erstellen vonWeb-Dokumenten Überblick über HTML Automatischer Textfluß und automatischer Umbruch Syntax der HTML-Tags Richtlinien für den Aufbau eines Dokuments Beispiel für ein HTML-Dokument Querverweise Verweise auf Stellen im Dokument URLs Absolute URLs Absolute und relative URLs Spezielle URLs Listen Graphiken Inline-Graphiken Externe Graphiken Inline-Graphiken in zeichenorientierten Web-Browsern Einbettung Textformatierung Weitere Informationen zu HTML Aufbereitung der Informationen Modulare Dokumente
http://www.oreilly.de/german/freebooks/Html_buch/inhalt.html (3 von 6) [11.04.2001 17:14:39]
HTML und das World Wide Web
Vernetzungsgrad Automatisches und manuelles Anlegen von Verweisen Richtlinien zur Gestaltung Beispiel zur Informationsgestaltung Programme zum Erstellen vonHTML-Dokumenten HTML-Modus von Emacs FrameMaker HoTMetaL Symposia asWedit CyberLeaf HTML-Konverter und -Filter Interaktive Bilder Planung eines interaktiven Bildes Zuordnung der Hotspots Verbindung der Map-Datei mit einem URL Einbindung der interaktiven Bilder in HTML-Code Test der Image-Map Wie Image-Maps wirklich funktionieren Die wichtigsten Erweiterungenin HTML3.0 Tabellen Formeln Graphiken Erweiterte Layoutmöglichkeiten Kapitel 4 Gateways und Formulare im Web Gateways Das Common Gateway Interface Beispiel-Gateways Funktionsweise der Skripten Benutzereingaben Einfache Such-Gateways Skripten, Programme und Sicherheitsaspekte Beispiel für ein Such-Gateway URLs im HTML-Code von Gateways Existierende Gateways Zusätzliche cgi-bin-Verzeichnisse
http://www.oreilly.de/german/freebooks/Html_buch/inhalt.html (4 von 6) [11.04.2001 17:14:39]
HTML und das World Wide Web
Verarbeitung von Formularen HTML-Code für Formulare Skripten zur Verarbeitung der Formulareingabe Checkboxen im Formular HTML-Tags für Formulare <SELECT> Web-Zugang zu WAIS Direkter WAIS-Zugriff Web-Gateways zu WAIS Entwicklung eines eigenen WAIS-Gateways WAISgate Vergleich der Web-Zugriffsmethoden auf WAIS Kapitel 5 Zugangssteuerung und Sicherheitsaspekte im Web Zugangssteuerung und Identitätsnachweis Access Control Files Zugangssteuerung auf Domänenebene Anweisungen für Domänen Allgemeiner und unbeschränkter Zugang Zugang nur für die lokale Domäne Zugriff für mehrere Organisationen Identitätsnachweis Verwaltung der Datei htpasswd Identitätsnachweis einzelner Benutzer Identitätsnachweis anhand von Gruppen Gleichzeitige Zugangssteuerung und Identitätsnachweis Sicherheitsaspekte Verweise außerhalb des Dokumentbaums Zugangssteuerung und Identitätsnachweis Private HTML-Verzeichnisse Shell-Metazeichen in Formularen Einbettungen durch den Server Anhang A HTML-Kurzreferenz
http://www.oreilly.de/german/freebooks/Html_buch/inhalt.html (5 von 6) [11.04.2001 17:14:39]
HTML und das World Wide Web
Anhang B Sonderzeichen in HTML Anhang C Anweisungen in httpd.conf Anhang D Anweisungen in srm.conf Anhang E Anweisungen in access.conf Anhang F Weitere Informationen Glossar Über die Autoren, über den Übersetzer und Kolophon
Vorwort
http://www.oreilly.de/german/freebooks/Html_buch/inhalt.html (6 von 6) [11.04.2001 17:14:39]
Über dieses Buch Dieses Buch basiert auf dem Buch Internet-ServerEinrichten und Verwalten von Cricket Liu, Jerry Peek, Russ Jones, Bryan Buus und Adrian Nye, das ebenfalls im O'Reilly/International Thomson Verlag erschienen ist. Der »große Bruder« behandelt ausführlich den Betrieb eines Servers für die Internet-Dienste WWW, FTP, Gopher, WAIS, Mail/Majordomo u.a. Durch das starke Interesse am World Wide Web erschien es angebracht, den Teil über den Betrieb eines Web-Servers und das Erstellen von HTML-Dokumenten zu extrahieren, um dem ambitionierten Webmaster eine kompakte Referenz an die Hand zu geben. Einige Aktualisierungen und Erweiterungen sollen der rasanten Entwicklung im Web Rechnung tragen. Die Aktualisierungen betreffen Ausblicke auf die momentane Entwicklungsrichtung des Web, neue Software und vor allem die Erweiterungen in HTML 3.0. Letztere sind zwar noch nicht abschließend standardisiert, teilweise jedoch schon in Software implementiert. Es ist vor allem für Informationsanbieter sinnvoll, sich frühzeitig mit diesem Thema zu beschäftigen. Die im Buch aufgeführten URLs wurden überprüft und auf den neuesten Stand gebracht. Gegenüber der Originalversion kamen außerdem neue Anhänge mit Übersichten über die HTML-Tags und über die Verwendung von Sonderzeichen in HTML sowie ein Glossar dazu. Thomas Merz
Vorwort zu »Internet-ServerEinrichten und Verwalten« Möchten Sie Informationen anbieten oder den 24 Millionen Benutzern des Internet einen Dienst zur Verfügung stellen? Oder nur Ihrem eigenen Unternehmen mit mehreren Büros? Das vorliegende Buch beschreibt, wie Sie dies bewerkstelligen. Wenn Sie Zugang zu einem Computer mit Internet-Anschluß haben, können Sie Informationsserver einrichten und die Informationen für andere Computer im Internet zur Verfügung stellen. Dieses Buch erklärt, wie Sie den Einsatz eines Internet-Dienstes planen, den Dienst einrichten und ihn verwalten. Wir behandeln eine ganze Palette von Internet-Diensten, darunter FTP-Archive, Gopher-Server, WAIS (Wide Area Information Server), WWW-Server (World Wide Web) und Mailing-Listen. Jeder Dienst bietet ein ihm eigenes Verfahren zum Abrufen von Informationen, das sich für ein bestimmtes Informationsspektrum und ein bestimmtes Publikum eignet. Vermutlich werden Sie mehrere dieser Dienste einrichten, damit auf unterschiedliche Weise auf dieselben Informationen zugegriffen werden
http://www.oreilly.de/german/freebooks/Html_buch/wwwvor.html (1 von 6) [11.04.2001 17:14:43]
HTML und das World Wide Web
kann. Um das Einrichten und Verwalten der Dienste vorzuführen, zeigen wir Ihnen Beispiele unserer im Aufbau befindlichen Arbeit mit der Species Survival Commission (ein Teil der World Conservation Union). Die Species Survival Commission (SSC) konzentriert sich auf die Ausarbeitung von Aktionsplänen zum Schutz bedrohter Tierarten rund um die Welt. (1) Die SSC besteht aus einem weltweiten Netz professioneller Tierschützer. Ihre Projekte und potentiellen Spender sind über den ganzen Globus verteilt. Aus diesen Gründen bildet das Internet ein ideales Medium zur Verbreitung der Informationen und Botschaften der SSC. Wir zeigen Ihnen, wie wir einen dieser Aktionspläne, zu dem Text, Graphiken und andere Inhalte gehören, im Internet verfügbar machten und erläutern, wie wir die verschiedenen Server, die die Informationen anbieten, miteinander verknüpften, um die Daten in einer gut nachvollziehbaren und ansprechenden Weise zu präsentieren. Außerdem stellen wir gute Designelemente und ansprechende Merkmale vorhandener Internet-Dienste heraus und werfen einen Blick hinter die Kulissen, damit Sie sich ein Bild von der Arbeitsweise dieser Dienste machen können. Wenn Sie bereits einen Computer und Internet-Anschluß besitzen, ist es nicht teuer, einen Dienst anzubieten. Der überwiegende Teil der in diesem Buch beschriebenen Software ist frei erhältlich. Es gibt Varianten dieser Dienste, die kommerziell verwertet werden (z.B. WAIS). Andere verlangen Lizenzgebühren für bestimmte Einsatzbereiche (etwa Gopher). Wir konzentrieren uns auf die Software-Versionen, die auch weiterhin frei erhältlich sind. Sie können Ihre Informationsdienste also mit geringen Kosten oder ganz umsonst einrichten. Entschließen Sie sich später wegen zusätzlicher Funktionalität oder anderweitiger Unterstützung für eine kommerzielle Version, so sollte das kein Problem darstellen. (2) Denn meist sind die elementaren Verwaltungsaufgaben in der frei erhältlichen und der kommerziellen Software-Version ähnlich, so daß Ihre Mühe nicht vergeblich war. Das vorliegende Buch gibt Ihnen keine grundlegende Einführung, wie die Clients dieser Informationsdienste zu verwenden sind. Dazu dient das ebenfalls im O'Reilly/International Thomson Verlag erschienene Buch Die Welt des InternetHandbuch & Übersicht . Dieses Buch bildet eine gute Ausgangsbasis, da Sie fundierte Kenntnisse über die einzelnen Clients benötigen, um die Dienste optimal einrichten zu können.
Leserkreis Dieses Buch richtet sich hauptsächlich an UNIX-Systemverwalter oder Personen mit soliden UNIX-Kenntnissen. Das Einrichten eines Internet-Dienstes setzt zweierlei Fähigkeiten vorausdie UNIX-Systemverwaltung und das Schreiben, Organisieren oder Aufbereiten der Daten. Wir gehen davon aus, daß diese Aufgaben bei den meisten Diensten auf zwei oder mehrere Personen verteilt werden. Dieses Buch ist deshalb so untergliedert, daß es die Aufteilung der Arbeit widerspiegelt. Kapitel 1 und 3 richten sich neben dem Systemverwalter an eine fiktive Person, die wir den Datenbibliothekar nennen. Dieser ist für den vom Dienst angebotenen Datenbestand verantwortlich. Der Datenbibliothekar braucht keine Erfahrung im Übersetzen und Installieren von Software und meist auch kein root -Paßwort. Trotzdem stecken die Kapitel, die die Arbeit des Datenbibliothekars beschreiben, voller technischer Einzelheiten und setzen gute UNIX-Kenntnisse voraus. Die meisten dieser Kapitel aber dürften für den durchschnittlichen
http://www.oreilly.de/german/freebooks/Html_buch/wwwvor.html (2 von 6) [11.04.2001 17:14:43]
HTML und das World Wide Web
UNIX-Benutzer verständlich sein, so daß dieser für den Datenbibliothekar Material zur Integration in den Dienst beisteuern kann. Die übrigen Kapitel verlangen vom Leser gute Kenntnisse in der UNIX-Systemverwaltung, er braucht jedoch kein »Guru« zu sein. Sie erläutern häufig Verfahren, die root -Berechtigung erfordern und die Sicherheit nicht nur des einzelnen Dienstes, sondern des gesamten Systems betreffen. Wir befassen uns ausführlich mit allen Vorgängen, erklären jedoch nicht immer den spezifischen UNIX-Hintergrund.
Warum wir dieses Buch geschrieben haben Obwohl das Publizieren im Internet boomt, ist das dazu nötige Knowhow noch nicht weit genug verbreitet: Es gibt eine ganze Reihe von Leuten, die zwar nützliche Informationen, aber nicht die Zeit besitzen, sich in das Einrichten von Diensten einzuarbeiten. Dieses Wissen ist jedoch notwendig, um Informationen verfügbar zu machen. Je mehr Leute lernen, wie Informationsdienste angelegt und gepflegt werden, desto umfangreicher und vielfältiger wird auch das Informationsangebot. Gerade jetzt gilt es, die Richtung des »Information Superhighway« (oder welcher Name auch immer gerade en vogue ist) mitzubestimmen, indem wir im kleinen Rahmen publizieren. Wenn privates Publizieren sich im Internet als kommerziell überlebensfähig erweist, attraktive Ressourcen verfügbar macht und Unternehmertum fördert, dann können Regierung und Industrie dies wahrscheinlich nicht mehr ignorieren. Anderenfalls steht zu befürchten, daß sich das zukünftige Internet zur schlimmsten Ausformung des Fernsehens entwickeltwo wenige Konglomerate Müll für die Massen produzieren. Deshalb hoffen wir, daß Sie anhand der Informationen aus diesem Buch einen sagenhaften, neuen Informationsdienst einrichtenvielleicht eine zentrale Informationsstelle für wichtige nicht-kommerzielle Organisationen oder einen starken, völlig neuartigen Dienst für die Internet-Gemeinde, von dem Sie finanziell profitieren. Sie tragen in jedem Fall dazu bei, das Internet attraktiver zu machen. Wenn es kein Dienst für ein Massenpublikum ist, um so besser! Einer der interessantesten Aspekte des Internet liegt darin, daß sich dort Nischen erhalten. Wenn Sie über einen Anschluß verfügen und einen Dienst ablaufen lassen können, für den sich nach Ihrer Schätzung nicht mehr als 100 Personen weltweit interessieren, dann richten Sie den Dienst unbedingt ein! Vielleicht zeigt sich, daß sich weit mehr Leute als zunächst angenommen dafür interessieren. Das Internet ermöglicht Veröffentlichungen in kleinem Rahmen, die in dieser Form auf Papier nicht realisierbar wären.
Gliederung Kapitel 1, Einführung in das World Wide Web, stellt das Konzept des World Wide Web vor, beschreibt einige Server und Browser und zeigt, wofür Sie das Web nutzen können. Kapitel 2, Einrichten eines Web-Servers , behandelt das Beschaffen, Erzeugen, Installieren und Verwalten des NCSA-Web-Servers. In Kapitel 3, Erstellen von Web-Dokumenten, erfahren Sie, wie Sie HTML-Dokumente für das Web schreiben können. Weitere Themen sind geeignete Textprogramme und Konvertierungsskripten sowie die Erstellung interaktiver Bilder. Eine Einführung in HTML 3.0 rundet das Kapitel ab. Kapitel 4, Gateways und Formulare im Web , beschreibt Gateways zwischen dem Web und anderen
http://www.oreilly.de/german/freebooks/Html_buch/wwwvor.html (3 von 6) [11.04.2001 17:14:43]
HTML und das World Wide Web
Diensten, die Erstellung interaktiver Formulare sowie von Skripten zur Verarbeitung der Ergebnisse und schließlich das Zusammenspiel mit WAIS-Servern. Kapitel 5, Zugangskontrolle und Sicherheitsaspekte im Web , behandelt die Steuerung des Zugangs zu Ihrem Web-Server und beschreibt, wie Sie den Rechner absichern können, auf dem der Server läuft. AnhangA, HTML-Kurzreferenz , enthält eine Liste aller HTML-Tags. AnhangB, Sonderzeichen in HTML , enthält eine Liste mit den möglichen Schreibweisen für Sonderzeichen in HTML. AnhangC, WWW: Anweisungen in httpd.conf , enthält eine nützliche Referenz für die Hauptkonfigurationsdatei des Web-Servers. AnhangD, WWW: Anweisungen in srm.conf , beschreibt alle Konfigurationsanweisungen, die den Inhalt eines Web-Servers steuern. AnhangE, WWW: Anweisungen in access.conf , enthält eine Referenz für die Konfigurationsdatei, die den Zugang steuert. AnhangF, WWW: Weitere Informationen , enthält eine Liste zusätzlicher Informationsquellen.
Typographische Konventionen Im vorliegenden Buch werden folgende Auszeichnungen benutzt: Fett wird zur Hervorhebung von Ausdrücken und Konzepten verwendet, wenn sie neu eingeführt werden. Kursiv wird bei Programm- und Kommandonamen, Optionen zu Kommandos sowie Datei- und Verzeichnisnamen verwendet, sofern sich diese im Fließtext befinden. Schreibmaschinenschriftwird in Beispielen verwendet, um den Inhalt von Dateien oder die Ausgabe von Kommandos zu zeigen. Außerdem wird sie zur Auszeichnung von Umgebungsvariablen, Regeltermen und Dateieinträgen verwendet. fette Schreibmaschinenschrift wird in Beispielen verwendet, um Kommandos oder anderen Text hervorzuheben, der vom Benutzer wie angegeben eingetippt werden sollte. Bei rm foo beispielsweise soll »rm foo« exakt so eingegeben werden, wie es im Text oder Beispiel vorkommt. kursive Schreibmaschinenschrift wird in Codeabschnitten und Beispielen eingesetzt, um Variablen darzustellen, die kontextabhängig ersetzt werden müssen. Die Variable filename beispielsweise wird durch den eigentlichen Dateinamen ersetzt.
Kommentare und Verbesserungsvorschläge Wenn Sie Anmerkungen zu diesem Buch haben, Verbesserungsvorschläge machen wollen oder Fehler entdecken, so wenden Sie sich bitte an den Herausgeber, indem Sie E-Mail an [email protected] oder herkömmliche Post an folgende Adresse senden:
http://www.oreilly.de/german/freebooks/Html_buch/wwwvor.html (4 von 6) [11.04.2001 17:14:43]
HTML und das World Wide Web
O'Reilly/International Thomson VerlagLektoratKönigswinterer Straße 41853227 Bonn
Danksagungen Der Herausgeber und die Autoren möchten allen, die die Originalausgabe dieses Buches zur Korrektur gelesen haben, für ihre Aufmerksamkeit und Sorgfalt danken. Dazu gehören: Dan Gillmor, Dan Appelman, Randy Diffenderfer, Robert H'obbes' Zakon, Thomas Boutell, Bryan O'Connor, Robert Martin McCool, Brewster Kahle, Jim Fullton, Billy Barron, Neophytos Iacovou, John Labovitz, M. Strata Rose, Pei Y. Wei, Andy Oram, Rick Romkey, Dale Dougherty, Tim O'Reilly, Kevin Hughes und Josh Blackman. Russ Jones Ich möchte der World Wide Web-Gemeinde und allen Leuten danken, die an der Newsgruppe comp.infosystems.www.providers mitarbeiten. Ihr »Geben und Nehmen« hat den Inhalt dieses Buchs maßgeblich mitbestimmt. Dank an meine Korrekturleser Thomas Boutell, Dale Dougherty, Kevin Hughes, John Labovitz, Rob McCool, Andy Oram, Rick Romkey, M. Strata Rose, Pei Y. Wei und Robert H'obbes' Zakon. Ihre Kritik und ihre Anregungen gaben den Kapiteln ihre endgültige Form. Den Leuten von O'Reilly & Associates möchte ich für die Gelegenheit zu meinem ersten Buch danken. Anerkennung schulde ich insbesondere meinem Lektor Adrian Nye, der dafür sorgte, daß professionell gearbeitet wurde. Und schließlich danke ich meiner Frau Linda für ihre anfänglichen Ermutigungen und ihre Geduld bei den sechs Malen, an denen ich nahe daran war aufzugeben. Adrian Nye Als Herausgeber danke ich dem Autor dafür, daß er dieses Buch als zweiten Vollzeitjob geschrieben hat. Er blieb bei guter Laune, trotz der unübersehbaren Ringe unter den Augen. Alle Beteiligten haben hart gearbeitet, um dieses Gemeinschaftsprojekt zu vollenden. Wie üblich danke ich auch Tim O'Reilly, der die Anforderungen langsam steigerte und uns ermutigte, ihnen gerecht zu werden. Dank auch an Hiroshi Kawazoe und Tony Sanders, die uns dabei halfen, die wichtigen Themen herauszuarbeiten. Michael Deutsch und Barry Herchenroder halfen in der Endphase bei den Korrekturen am Manuskript und verhinderten so, daß meine Handgelenke weiter mißbraucht wurden. Danke! Ich möchte auch meiner Frau Andrea danken, die meine Arbeit an Wochenenden tolerierte.
Fußnoten: (1) O'Reilly Associates hat mit der SSC zur Rettung der Fächertaube (Goura victoria)
http://www.oreilly.de/german/freebooks/Html_buch/wwwvor.html (5 von 6) [11.04.2001 17:14:43]
HTML und das World Wide Web
zusammengearbeitet, die auf dem Nutshell-Handbook lex and yacc abgebildet ist. SSC benötigt Ihre Spende, um dieses Projekt zu Ende zu führen. Wenn Sie spenden möchten (und ein wunderschönes T-Shirt oder Bücher von O'Reilly bekommen möchten) oder an weiteren Informationen über das Projekt interessiert sind, dann senden Sie eine Mail an [email protected]. Falls Ihnen die Illustrationen auf den Buchumschlägen gefallen, so können auch Sie dazu beitragen, die Tiere auf den Bildern zu retten. (2) Nur zu Ihrer Information: keiner von uns (Autoren, Herausgeber oder Verleger) ist in irgendeiner Weise in eines dieser kommerziellen Projekte involviert oder profitiert davon. Inhaltsverzeichnis
Kapitel 1
http://www.oreilly.de/german/freebooks/Html_buch/wwwvor.html (6 von 6) [11.04.2001 17:14:43]
1 Einführung in dasWorld Wide Web Das World Wide Web (oder kurz »das Web«) ist der am stärksten graphisch orientierte Dienst im Internet und bietet die besten Verknüpfungsmöglichkeiten. Diese Eigenschaften machten das Web zu dem Informationsdienst im Internet, der am schnellsten wächst. Im Web kann ein Dokument hervorgehobene Worte oder Bilder enthalten, die mit anderen Medien verknüpft sind. Ein solcher Querverweis kann sich z.B. auf Dokumente, Sätze, Videoclips oder Sound-Dateien beziehen. Im Web kann ein Verweis von jeder Stelle eines Dokuments auf eine beliebige Stelle eines anderen Dokuments zeigen (und nicht nur von einem Menüeintrag auf den Anfang eines Dokuments wie bei Gopher). Beim Einsatz eines Browsers mit graphischer Oberfläche kann man den Verweisen ganz einfach folgen, indem man mit der Maus darauf zeigt und klickt. Von allen Internet-Diensten sind diese graphisch orientierten Versionen wohl am einfachsten zu benutzen und machen außerdem am meisten Spaß, da sie Text und Bilder mischen können. Das Web wurde ursprünglich am Europäischen Zentrum für Hochenergiephysik CERN in Genf (Schweiz) entwickelt. Die Entwicklung begann 1989 unter Leitung von Tim Berners-Lee. Ein Schwerpunkt der ersten Arbeiten waren die Definition des Client/Server-Protokolls HTTP, die Entwicklung eines Beispielservers und eine Programmbibliothek namens wwwlib . 1992 machte das CERN eine Benutzerschnittstelle auf Basis der wwwlib als Public Domain frei verfügbar. Dies spornte Dutzende von Organisationen und Einzelpersonen im Internet zu eigenen Innovationen an: Sie entwickeln eigene Web-Browser (Programme zur Darstellung von Web-Dokumenten), unterstützen zusätzliche Plattformen und entwickeln neue Funktionen. Mittlerweile stehen Web-Browser für alle großen Rechnerarchitekturen und Betriebssysteme zur Verfügung. Die wichtigste Organisation zur Entwicklung von Web-Software ist heute das National Center for http://www.oreilly.de/german/freebooks/Html_buch/www01.html (1 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
Supercomputer Applications (NCSA) an der University of Illinois in Urbana-Champaign. Die Software Development Group entwickelte unter Leitung von Marc Andreessen (1) einen Web-Browser mit der Bezeichnung Mosaic. Dieser wurde für UNIX und das X Window System entwickelt und später auf Microsoft Windows und den Macintosh portiert. Obwohl auch viele andere Entwickler einen Web-Browser beigesteuert haben, bleibt Mosaic der einzige Web-Browser, der in gleicher Form auf den drei wichtigsten Desktop-Systemen läuft. Der enorme Erfolg des World Wide Web überstieg die Möglichkeiten des CERN hinsichtlich weiterer Entwicklung. Aus einer Kooperation des CERN mit dem Massachusetts Institute of Technology (MIT) heraus entstand daher das World Wide Web Consortium (W3C), das durch Beiträge industrieller Mitglieder finanziert wird. Das W3-Consortium fördert die Weiterentwicklung des World Wide Web durch Spezifikationen und die Entwicklung von Referenzsoftware. W3C stellt diese Software zur freien Verfügung (auch für den kommerziellen Einsatz). In Europa wird W3C vom französischen Forschungsinstitut INRIA unterstützt. (2) Falls Sie schon einen FTP- oder Gopher-Server betreiben, sind Sie bereits Teil des World Wide Web. Wenn die Web-Gemeinde Ihre nützlichen Informationen zu schätzen weiß, greift sie wahrscheinlich bereits über das Web auf Ihren Server zu. Sie müssen sich nicht der Mühe unterziehen, einen Web-Server einzurichten, wenn Sie nur Ihre persönliche Web-Visitenkarte (mit Foto) haben wollen oder mit einem URL in Ihrer Signatur in einer Newsgruppe mitreden möchten: Schreiben Sie einfach Ihre eigene HTML-Datei und legen Sie diese in Ihr FTP-Archiv. Wenn Sie jedoch ausgiebigen Gebrauch von Hypertext und Querverweisen machen wollen, sollten Sie besser einen Web-Server einrichten. Der Web-Server von NCSA und ähnliche Programme befinden sich in der Public Domain, sind also frei verfügbar. Sie können diesen Web-Server daher ohne Lizenzierung verwenden, selbst wenn Sie ihn gezielt innerhalb eines profitorientierten Unternehmens einsetzen.
1.1 Wozu dient das Web? Das Web wird für viele verschiedene Zwecke benutzt. Hier einige Beispiele: ● Im Web gibt es wissenschaftliche Museen für Kinder, die über Ausstellungsdaten, Museumspläne, Lehrgangstermine, laufende Lehrerfortbildung und anderes informieren. ● Zeitungsleser erhalten bereits vor der konventionellen Zustellung ein elektronisches Exemplar. Die Benutzer erhalten mit einem Mausklick Restaurant-Listen, können Restaurants nach Kategorien anzeigen lassen, das Menü eines Restaurants anklicken und sich schließlich die aktuelle neutrale Kritik ansehen. Die Leserschaft sitzt allerdings nicht mehr in der Nachbarschaft, sondern ist in der ganzen Welt, die Leserbriefe kommen von der anderen Seite der Erdkugel. ● Im geschäftlichen Bereich dient das World Wide Web dazu, den potentiellen Kunden auf Anforderung Produktkataloge auf den Schreibtisch zu liefern. Die Benutzer blättern durch Online-Seiten, betrachten Produktfotos und holen sich per Mausklick weitere Details; Sie überprüfen Bestellnummern und Preise, wählen über das Web Produkte aus und bestellen sie auch gleich. ● Es entstehen elektronische Magazine wie der Global Network Navigator ( GNN ). Diese neuen und innovativen Magazine werden durch Anzeigen finanziert und entsprechen genau den traditionellen Printmediennur sind sie eben elektronisch und global. Mittlerweile kann man mit Web-Bestellformularen direkt aus einer Anzeige heraus eine Bestellung aufgeben. http://www.oreilly.de/german/freebooks/Html_buch/www01.html (2 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
●
●
●
●
Universitäten gehen online. Neugierige Besucher aus Frankreich können eine Dinosaurier-Ausstellung am Honolulu Community College elektronisch besuchen. Geschichtlich Interessierte können durch die Vatikan-Ausstellung bummeln, die die University of Illinois zur Zeit elektronisch anbietet. Internationale Organisationen wie die Vereinten Nationen, die Weltbank und die NATO verteilen mit dem Web Informationen an ihre Mitglieder in aller Welt. Viele Behörden der Vereinigten Staaten sind im Netz erreichbar, ebenso viele der wichtigen Eingaben an den Kongreß und die Exekutive, etwa die Eingaben zur National Information Infrastructure oder zur Gesundheitsvorsorge. Dabei stehen nicht nur die Texte der Eingaben zur Verfügung, sondern auch relevante Fotos und Diagramme. Bei entsprechender Ausstattung Ihres Computers brauchen Sie nur auf den Audio-Knopf zu klicken, um die Rede zu hören, die die jeweilige Initiative ins Rollen brachte. Auch Kommunen sind im Netz präsent: Die Stadt Palo Alto in Kalifornien betreibt einen Web-Server, der die Stadtverwaltung, die Handelskammer, den Heimatverein sowie gemeinnützige Organisationen und örtliche Betriebe vereint. Die Bürger können dort online auf verschiedene Stadtpläne zugreifen oder einen interaktiven Zugfahrplan für Pendler benutzen. Man klickt einfach auf den gewünschten Zielort, und das World Wide Web zeigt daraufhin den täglichen Fahrplan und den nächsten Zug an. Viele Regionen und Gemeinden benutzen das World Wide Web als Grundlage für »virtuellen Tourismus«. Wenn Sie eine Reise nach Kalifornien planen, kann Ihnen das World Wide Web interessante Vorschläge machen oder Restaurants und Unterkunftsmöglichkeiten beschreiben (siehe Abbildung 1-1).
Abb. 1-1. Mosaic zeigt das Dokument »California Virtual Tourist« an. ●
Das Web läßt sich auch individuell nutzen: Viele Leute erstellen elektronische Visitenkarten mit Fotos und Querverweisen, die sie für wichtig halten. Dies sind die .signature -Dateien im Web.
Vielleicht ahnen Sie jetzt allmählich, daß die Einsatzmöglichkeiten des Web nur durch Ihre eigene Phantasie begrenzt werden. Ein Nachteil des Web besteht darin, daß zur vollen Ausnutzung der graphischen Möglichkeiten auch ein graphikfähiger Computer (im Gegensatz zu einem zeichenorientierten Terminal) nötig ist sowie eine IP-Verbindung zum Internet (simples Einwählen in einen Computer mit Internet-Verbindung genügt nicht). Diese Voraussetzungen sind nicht bei allen Benutzern erfüllt. Zudem erfordern graphische Anwendungen einen hohen Datendurchsatz, so daß bei langsamen Internet-Verbindungen (etwa bei Privatanwendern) die Geschwindigkeit leidet. Die Möglichkeiten und die Flexibilität des Web können sich auf gewisse Weise auch nachteilig auswirken. Bei anderen Diensten, etwa Gopher, formatieren Sie die Daten einfach und können sie dann vergessen. Die Dokumente, die ein Web-Server anbietet, kann man ohne Ende optimieren und damit im Vergleich zum Inhalt mehr Zeit für die Darstellung aufwenden, als eigentlich nötig wäre. Jeder, der einmal ein kompliziertes Dokument auf Papier formatiert hat, hat diesen Nachteil wohl selbst schon erlebt.
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (3 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
1.2 Grundlegende Konzepte des WWW Dieser Abschnitt enthält eine Einführung in die grundlegenden Konzepte des Web. Wenn Sie bereits viel mit WWW gearbeitet haben, brauchen Sie diesen Abschnitt nur zu überfliegen. 1.2.1 Querverweise Um richtig beurteilen zu können, was das World Wide Web eigentlich macht, sehen wir uns ein Beispiel für Querverweise (Hyperlinks) an. In Abbildung 1-1 sahen wir einen Bildschirmabzug des Web-Browsers Mosaic mit der Home Page des »California Virtual Tourist«. (Eine Home Page oder Startseite ist das zentrale Dokument auf einem Web-Server.) Diese Seite enthält viele eingebettete Querverweise, die durch Unterstreichung hervorgehoben sind. Der erste Querverweis auf dieser Seite erscheint bei den Worten »Virtual Tourist«. Um durch das Dokument »Virtual Tourist« zu navigieren, aktiviert der Benutzer den Hyperlink mit der Return-Taste oder einem Mausklick. Vom Dokument »Virtual Tourist« aus kann der Benutzer anderen Querverweisen folgen oder zu der Seite »California Virtual Tourist« zurückkehren. Dieses Navigieren oder Verfolgen von Querverweisen von einem Dokument zum nächsten bezeichnet man manchmal als »surfen« (3) . Die Stärke des Web und der Unterschied zu anderen Systemen wie Apples Hypercard liegt darin, daß Hyperlinks sowohl auf andere Dokumente im gleichen Verzeichnis oder an anderer Stelle des gleichen Web-Servers verweisen können als auch auf Dokumente, die sich auf einem beliebigen anderen Web- oder sonstigen Server auf der Welt befinden. Abbildung 1-2 zeigt zur Erläuterung dieses Konzepts der Querverweise ein Beispiel zur Verbindung von Dokumenten auf vier verschiedenen Servern durch Querverweise.
Abb. 1-2. Ein Netz von Web-Servern. Server 1 wird von Digital Equipment Corporation betrieben, Server 2 von der State University of New York in Buffalo, Server 3 von O'Reilly & Associates und Server 4 vom Exploratorium, einem Museum in San Francisco. Wenn wir uns diese Server etwas genauer ansehen, können wir die Dokumente und ihre Hyperlinks in Zusammenhang bringen: Server 1: ● Dokument A ist das Dokument »California Virtual Tourist« aus Abbildung 1-1. Darin eingebettet sind Querverweise von den Worten »California Yellow Pages« auf das Dokument B auf demselben Server, von »Exploratorium« auf das Dokument F auf Server 4 und von »Virtual Tourist« auf das Dokument C auf Server 2. ● Dokument B ist das Dokument »California Yellow Pages«. Darauf wird von Dokument A verwiesen. Server 2: ● Dokument C ist der Hauptteil des »Virtual Tourist«. Darauf wird von Dokument A auf Server 1 verwiesen. Es enthält eine Weltkarte mit eingebetteten Hyperlinks. Außerdem enthält es einen Hyperlink vom Traveler's Center des Global Network Navigator auf das Dokument D auf Server 3.
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (4 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
Server 3: ● Dokument D ist das GNN Traveler's Center. Darauf wird von Dokument C auf Server 2 verwiesen. Es enthält Querverweise auf verschiedene Reiseberichte sowie einen eingebetteten Querverweis auf das Dokument E auf dem gleichen Server. ● Dokument E ist der Index aller verfügbaren Reiseinformationen, sortiert nach Region, Land, Staat und Stadt. Darauf verweist Dokument D. Außerdem enthält es einen eingebetteten Querverweis auf das Dokument A auf Server 1, also das Dokument »California Virtual Tourist«. Server 4: ● Dokument F ist der Startpunkt für das Exploratorium, ein Museum zum Anfassen und Ausprobieren. Darauf wird von Dokument A auf Server 1 verwiesen. Es enthält Querverweise auf örtliche Zeitungen, einen Wissenschaftskurs für Anfänger und eine reichhaltige Foto-Bibliothek. Auf jedes dieser Dokumente können andere Dokumente wiederum zugreifen oder verweisen. Jedes Dokument bildet einen potentiellen Startpunkt für die Erforschung des Web. Nachdem wir jetzt im Prinzip verstehen, was das Web macht, sehen wir uns genauer an, wie es das bewerkstelligt. 1.2.2 Die Auszeichnungssprache HTML ASCII-Textdokumente werden im Web mit einer Auszeichnungssprache markiert, die als Hypertext Markup Language (HTML) bezeichnet wird. Solche Dokumente heißen HTML-Dokumente und tragen gewöhnlich die Dateinamenserweiterung .html . Sie können HTML-Dokumente mit einem beliebigen ASCII-Texteditor manuell erstellen, mit Filtern aus einem anderen Format konvertieren oder zur Laufzeit dynamisch von einem Web-Server oder Skript erstellen. Mit der Auszeichnungssprache HTML lassen sich die Struktur des Dokuments und die Hyperlink-Informationen beschreiben. HTML beschreibt zwar die Struktur eines Dokuments, nicht jedoch die genaue Formatierung. Hier sehen Sie etwas HTML-Code, um auf den Geschmack zu kommen (er wurde bearbeitet und stellt kein vollständiges HTML-Dokument dar):
NCSA Mosaic Demo Document Welcome to NCSA Mosaic, an information browser developed at the National Center for Supercomputing Applications at the University of Illinois, Urbana-Champaign.
This document is an interactive hypermedia tour of Mosaic's capabilities. Introduction
Mosaic is an Internet-based <EM>global hypermedia browser that allows you to discover, retrieve, and display documents and data from all over the Internet. <Mosaic is part of the World Wide Web project, a distributed
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (5 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
hypermedia environment originated at CERN and collaborated upon by a large, informal, and international design and development team.
Wir werden die vollständige Syntax zwar in Kapitel 3, Erstellen von Web-Dokumenten, beschreiben, aber Sie erkennen bereits jetzt Überschriften ( und ), Abschnitte (
) und eine Aufzählung (
,
und
). Beachten Sie, daß HTML nicht genau bestimmt, welche Schriftart und größe benutzt wird. Diese Dinge legt der Browser fest. Mit HTML können Sie Worte kennzeichnen, die hervorgehoben werden sollen (im obigen Beispiel mit <EM>). Ein graphischer Browser kann das durch kursive Schrift erreichen, ein zeichenorientierter Browser dagegen durch inverse Darstellung. HTML enthält auch Tags (Markierungen), die durch einfache Fragen oder beliebig komplexe Formulare eine Benutzereingabe verlangen. Zur Zeit ist die Version 2.0 von HTML aktuell. Sie basiert auf einigen Konzepten von SGML, der Standard Generalized Markup Language. SGML ist ein ISO-Standard, der zur Auszeichnung von Dokumenten dient, die gedruckt oder digital publiziert werden sollen. Mit der nächsten HTML-Version, HTML 3.0, soll HTML vollständig SGML-kompatibel werden. HTML 3.0 hieß früher HTML+. In Kapitel 3, Erstellen von Web-Dokumenten, erfahren Sie, wie Sie HTML-Dokumente erzeugen können. 1.2.3 Das Konzept der URLs Jeder Querverweis in einem HTML-Dokument besteht aus zwei Komponenten, nämlich einem Anker, bestehend aus Text oder Graphik, der nach einem Mausklick den Hyperlink auslöst, und dem Universal Resource Locator (URL). Dieser beschreibt, was beim Aktivieren des Hyperlinks zu tun ist. Aus Benutzersicht heißt das: »wenn dieser Verweis aktiviert wird, springe zu jener Ressource, um zusätzliche Informationen zu erhalten«. Der URL beschreibt das Protokoll, mit dem der Zielserver erreicht wird, das Zielsystem (oder den Servernamen), auf dem das Dokument liegt, den Verzeichnispfad zum Dokument sowie dessen Dateinamen. Das folgende Beispiel zeigt einen URL für eine Ressource auf einem entfernten Rechner, nämlich die Master-Liste aller World Wide Web-Server auf der ganzen Welt: http://www.w3.org/hypertext/DataSources/WWW/Geographical.html Dieser URL ist so zu lesen: Mit dem Protokoll HTTP (Web) erreicht man einen Server namens www.w3.org . Dort gibt es (bei Verwendung des Standard-Ports) ein Verzeichnis /hypertext/DataSources/WWW , das ein Hypertext-Dokument mit dem Titel Geographical.html enthält. Jede Datei im Internet ist durch ihren URL eindeutig adressierbar. Neben der Zugriffsmethode HTTP erstreckt sich das URL-Konzept auch auf andere wichtige Internet-Protokolle, etwa Gopher, FTP und Telnet. Mit Hilfe von Gateways oder erweiterten Clients kann das Web außerdem auf andere Servertypen wie Finger und WAIS zugreifen. Die oben beschriebenen URLs werden als absolute URLs bezeichnet, da sie vollständig angeben, wie eine Datei zu erreichen ist. Eine vereinfachte Form der URLs wird als relative URLs bezeichnet. Diese kürzere Form verweist auf andere Dokumente, die auf dem gleichen Server liegen wie das aktuelle Dokument. Mit relativen URLs kann ein Web-Browser ohne jeden Server direkt auf Dateien des Systems zugreifen, auf
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (6 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
dem der Browser läuft. Dieses einheitliche Namensschema für Ressourcen macht das World Wide Web zu einer derart reichhaltigen Informationssammlung. Aufgrund der URLs betrachten manche Leute das World Wide Web als universelle Zugriffsmethode für das Internet. 1.2.4 Was ist ein World Wide Web-Browser? In der Client/Server-Umgebung des Web steuert der Web-Browser die Abläufe. Er fordert über den anfänglichen URL ein Web-Dokument an, interpretiert die HTML-Anweisungen und präsentiert dem Benutzer das Dokument unter Ausnutzung aller Möglichkeiten, die die jeweilige Umgebung zur Verfügung stellt. Ein Browser, der speziell für eine graphikfähige Umgebung geschrieben wurde, kann die HTML-Seite wesentlich besser »aufpeppen« als ein Web-Browser, der in einer zeichenorientierten Umgebung läuft. Die Hypertext-Links sind dafür ein gutes Beispiel: Auf einer Graphik-Workstation kann der Text für den Hyperlink durch eine andere Farbe oder Unterstreichung hervorgehoben werden, auf einem zeichenorientierten Terminal wird der gleiche Text dagegen invers dargestellt. Sobald der Benutzer einen Hypertext-Link auswählt, beginnt der ganze Vorgang von vorn: Der Web-Browser fordert über den zum Link gehörenden URL das Dokument an, wartet auf dessen Zusendung, verarbeitet es dann und stellt das neue Dokument am Bildschirm dar. In Abbildung 1-3 sehen Sie den Zusammenhang zwischen dem Web-Browser und anderen Informationsdiensten des Internet, die in diesem Buch behandelt werden.
Abb. 1-3. Die Welt aus der Sicht eines Web-Browsers. Beim Zusammenspiel mit einem Gopher-Server verhält sich der Web-Browser wie ein Gopher-Client und benutzt das Gopher-Protokoll. In Kombination mit einem FTP-Server verhält sich der Web-Browser wie ein FTP-Client und benutzt das FTP-Protokoll. Mit einem Web-Server schließlich benutzt der Web-Browser das Protokoll HTTP. Einige Web-Browser (allerdings nicht alle) können über das Protokoll Z39.50 direkt auf WAIS-Server zugreifen. Web-Browser können außerdem telnet -Sitzungen starten und so den Benutzern den Zugriff auf entfernte Telnet-Dienste ermöglichen. Ein Web-Browser kann sich auch wie ein News-Reader verhalten und auf einen lokalen News-Server zugreifen. Viele Web-Browser bieten außerdem nützliche Funktionen für das aktuelle Dokument, etwa Speichern des Dokuments auf der Festplatte, Versenden per E-Mail, Ausdrucken, lokales Durchsuchen nach Zeichenketten oder sogar Anzeigen der HTML-Quellen des Dokuments. 1.2.5 Was ist ein World Wide Web-Server? Die Server-Software, die beim World Wide Web zum Einsatz kommt, wird als Web-Server bezeichnet. Der Web-Server ist standardmäßig der Portnummer 80 zugeordnet. Wenn ein Client eine bestimmte Seite anfordert, holt der Server diese Seite und schickt sie zum Client. Wie aus Abbildung 1-3 hervorgeht, können Web-Server spezielle Skripten ausführen, durch die sie zu http://www.oreilly.de/german/freebooks/Html_buch/www01.html (7 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
einem Gateway zu anderen Informationsquellen auf dem lokalen System oder im Internet werden. Viele der am häufigsten benötigten Gateway-Skripten sind bereits im Web verfügbar. Sie lassen sich unverändert installieren oder an die jeweiligen Gegebenheiten anpassen. Sie können auch Gateways entwickeln, die auf lokale Informationssysteme zugreifen, die nicht direkt über TCP/IP zugänglich sind. Eine spezielle Art von Skripten behandelt die Eingabe über Formulare. Sie können eigene Skripten schreiben, die die vom Benutzer eingegebenen Daten beliebig weiterverarbeiten. 1.2.6 HTTP Web-Browser und Web-Server benutzen das HyperText Transfer Protocol (HTTP) zur Kommunikation. HTTP ist ein »lightweight«-Protokoll, das vom Prinzip her dem Gopher-Protokoll ähnelt. Jede Anfrage eines Web-Browsers an einen Web-Server nach einem Dokument stellt eine neue Verbindung dar. Wenn ein Web-Browser ein HTML-Dokument von einem Web-Server anfordert, wird eine Verbindung hergestellt, das Dokument übertragen und die Verbindung wieder beendet. Zur Zeit werden Ihnen im Web zwei Varianten von HTTP begegnen, nämlich HTTP/0.9 und HTTP/1.0. HTTP/0.9 wird allmählich abgeschafft. Die beiden Versionen sind weitgehend kompatibel zueinander. HTTP/1.0 ermöglicht die Vereinbarung von Datentypen zwischen Web-Server und Web-Browser. Das Protokoll wird zu diesem Zweck um MIME-Informationen (Multimedia Internet Mail Extensions) erweitert. HTML benutzt den MIME-Typ »text« und den MIME-Subtyp »html«. Dies wird wie folgt notiert: text/html Web-Server und -Browser unterstützen noch viele andere Typen, etwa image/gif. Bei HTTP/1.0 sendet ein Web-Browser mit jeder Anforderung einer Seite vom Web-Server eine Liste der MIME-Typen, die er unterstützt. Anhand dieser Angaben versucht der Web-Server, nur solche MIME-Typen zu schicken, die der Client auch unterstützt. Der Web-Server sendet daraufhin zunächst den MIME-Typ der übermittelten Datei, eine Leerzeile und im Anschluß daran die eigentlichen Daten. Beim MIME-Typ text/html oder text/plain interpretiert der Web-Browser die Daten selbst und zeigt sie am Bildschirm an. Bei anderen Typen entscheidet er anhand der MIME-Informationen, zu welchem externen Darstellungs- oder Abspielprogramm die Daten jeweils weiterzuleiten sind. Erhält zum Beispiel ein Web-Browser im X Window System ein Dokument des MIME-Typs image/tiff, so könnte er das Programm xv zur Darstellung des Bilds starten.
1.3 Server und Browser für das WWW Sie werden die Konzepte, die wir in diesem Kapitel vorstellen, am besten verstehen, wenn Sie einfach mit einem Web-Browser herumspielen. Sie sehen dann, wie er funktioniert und wie andere Leute ihre Web-Server eingerichtet haben. Dabei bekommen Sie auch Anregungen zur Einrichtung Ihres eigenen Web-Servers. Mit einem Browser können Sie auch auf Dokumentation über das Web selbst zugreifen (das entsprechende Dokument ist als Bestandteil des World Wide Web verfügbar), das Software-Paket für Ihren neuen Web-Server lokalisieren und es abrufen und Ihre selbstgeschriebenen HTML-Dokumente testen. Zum Betrieb eines Web-Servers gehört außerdem, sicherzustellen, daß der Server mit all den unterschiedlichen Web-Browsern funktioniert, die die Anwender im Einsatz haben.
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (8 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
1.3.1 Web-Browser Web-Browser gibt es für alle denkbaren Plattformen, Betriebssysteme und graphischen Oberflächen ( graphical user interface , GUI). Sie fallen in zwei Kategorien, nämlich zeilenorientierte Browser und graphische Browser mit Mausbedienung. Bei der Erstellung von HTML-Dokumenten ist es für Sie nützlich, mit verschiedenen Web-Browsern zu arbeiten, damit Sie testen können, wie Ihr HTML-Dokument damit aussieht. Ihre HTML-Dokumente können schon mit der Macintosh-Version von Mosaic anders aussehen als mit der Version für Microsoft Windows. Wir werden hier die wichtigsten bereits freigegebenen Web-Browser für UNIX vorstellen und einige andere erwähnen, die verfügbar sind oder sich zur Zeit in Entwicklung befinden. Eine vollständige Liste aller verfügbaren Browser finden Sie in http://www.w3.org/hypertext/WWW/Clients.html 1.3.1.1 Lynx
Lynx ist ein zeichenorientierter Web-Browser, der den ganzen Bildschirm ausnutzt. Er wurde an der University of Kansas im Zusammenhang mit der Einrichtung eines Informationssystems für die gesamte Universität entwickelt. In Abbildung 3-5 sehen Sie einen Bildschirmabzug von Lynx. Lynx ist ein Web-Browser mit allen Funktionen, der für zeichenorientierte Umgebungen mit adressierbarem Cursor optimiert wurde (etwa VT100-Terminals, VT100-Emulationen auf einem PC oder Macintosh oder anderen zeichenorientierten Bildschirmen). Die Pfeiltasten dienen zum Navigieren zwischen eingebetteten HTML-Links, die invers dargestellt werden. Mit Lesezeichen ( bookmarks ) können Sie sich die nützlichsten URLs merken. Lynx unterstützt auch Formulare. Nützliche Funktion : Lynx bietet im interaktiven Modus die Möglichkeit, Artikel in Newsgruppen zu versenden. Im nicht interaktiven Modus kann Lynx HTML-Dokumente in formatierten ASCII-Text konvertieren. Um Lynx zu erhalten, richten Sie Ihren Web-Browser auf ftp://ftp2.cc.ukans.edu/pub/lynx/ Dieser URL zeigt auf das FTP-Archiv, das alle vorgefertigten Binärversionen von Lynx enthält. Sie finden dort ablauffähige Programme für IBM RS/6000, DEC Alpha AXP (unter OSF/1), SunOS und DEC (Ultrix). Autor : Lynx wurde von Lou Montulli, Charles Rezac und Michael Grobe von Academic Computing Services an der University of Kansas entworfen. Implementiert wurde Lynx von Lou Montulli, [email protected] . Sie können Fragen zu Lynx an [email protected] senden, Fehlermeldungen an [email protected] . 1.3.1.2 MidasWWW
MidasWWW wurde für das X Window System geschrieben und arbeitet mit der Oberfläche von OSF/Motif. Es wurde am Stanford Linear Accelerator Center (SLAC) entwikkelt. MidasWWW ähnelt Mosaic, enthält aber bessere Unterstützung für eingebettete Graphiken. Es kann zum Beispiel http://www.oreilly.de/german/freebooks/Html_buch/www01.html (9 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
PostScript-Dokumente und GIF-, JPEG- oder TIFF-Dateien ohne externen Viewer darstellen. MidasWWW hat außerdem einige Navigationsfunktionen, etwa einen Merkbaum, der alle bisher angeforderten Dokumente anzeigt. Nützliche Funktion : MidasWWW verwischt den Unterschied zwischen PostScript und HTML. Weitere Informationen finden Sie in http://www-midas.slac.stanford.edu/midasv22/introduction.html Autor : Tony Johnson, [email protected] . Fragen zu MidasWWW können Sie an [email protected] senden. 1.3.1.3 Mosaic
Mosaic ist der bekannteste aller Web-Browser. Er wurde am National Center for Supercomputer Applications der University of Illinois entwickelt. Vorgefertigte Binärversionen stehen für alle wichtigen UNIX-Plattformen sowie Apple Macintosh und Microsoft Windows zur Verfügung. In Abbildung 1-1 sehen Sie einen Bildschirmabzug von Mosaic im X Window System. Die UNIX-Version von Mosaic wurde für das X Window System und OSF/Motif geschrieben. Sie unterstützt eingebettete Graphiken in den Formaten GIF und XBM. Dateitypen, die Mosaic nicht selbst behandeln kann, etwa MPEG-Filme, Sound-Dateien, PostScript-Dokumente oder JPEG-Bilder, werden automatisch an externe Media-Player weitergereicht. Nützliche Funktion : NCSA Mosaic unterstützt die Formulareingabe, die wir in Abschnitt 4.2 behandeln werden. Um Mosaic zu erhalten, richten Sie Ihren Web-Browser auf ftp://ftp.ncsa.uiuc.edu/Web/Mosaic/ Dieser URL zeigt auf eine HTML-Seite, die Sie zu allen vorgefertigen Binärversionen bringt. Sie finden dort ausführbare Programme für Linux, DEC (OSF/1 V1.3), DEC (MIPS/ULTRIX), HP-UX für Workstations der Serie 700, IBM AIX, SGI IRIX, Solaris und SunOS. Für SunOS gibt es zwei Versionen. Welche Sie brauchen, hängt davon ab, wie Sie DNS und NIS konfiguriert haben. Autoren : NCSA Software Development Group insgesamt, insbesondere jedoch Eric Bina, [email protected] und Marc Andreessen, [email protected] . Fragen zu Mosaic sollten Sie an [email protected] richten. 1.3.1.4 Netscape Navigator
Netscape Navigator ist ein kommerzieller Browser, der per FTP erhältlich ist. Netscape darf innerhalb einer Testphase von 90 Tagen kostenlos benutzt werden, danach ist eine Lizenzgebühr fällig. Für Studenten und gemeinnützige Organisationen ist der Einsatz kostenlos. Es gibt Binärversionen für die verschiedenen Windows-Varianten, Macintosh und die UNIX-Systeme OSF/1 2.0, HPUX 700, SGI IRIX, IBM AIX, SunOS, Solaris und Linux. Netscape Navigator ist der modernste Browser und ermöglicht auch über langsame Modemverbindungen
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (10 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
schnelles Arbeiten. Man kann z.B. bereits im Dokument navigieren, während es noch geladen wird, Text und Graphiken werden simultan übertragen. Dadurch erscheint Netscape subjektiv wesentlich schneller als andere Browser. Die Entwickler von Netscape integrierten HTML-Erweiterungen in den Browser, die allerdings nicht standardisiert sind. Netscape wird von Netscape Communications vertrieben. Weitere Informationen erhalten Sie unter der E-Mail-Adresse [email protected] , Binärversionen von Netscape können Sie unter folgendem URL laden: ftp://ftp.netscape.com Nützliche Funktionen : Netscape zeigt JPEG-Bilder ohne externen Viewer an, kann auf allen Plattformen Mail verschicken und fungiert auch als Newsreader. Netscape kann History-Dateien von NCSA Mosaic einlesen. 1.3.1.5 Arena
Arena wurde vom W3-Consortium als frei verfügbarer Refererenzbrowser für HTML 3.0 entwickelt. Der Browser basiert auf der Common Code Library des CERN, einer Bibliothek mit Standardroutinen für WWW-Anwendungen. Arena soll zwar auf alle wichtigen Plattformen portiert werden, zur Zeit gibt es aber nur eine Version für das X Window System. Da bei der Entwicklung des Browsers das Hauptaugenmerk auf HTML 3.0 gelegt wurde, fehlen einige nützliche Funktionen, mit denen andere Browser die Arbeit erleichtern (z.B. Hotlists). Binärversionen von Arena für die wichtigsten Unix-Plattformen und weitere Informationen finden Sie unter folgendem URL: http://www.w3.org/hypertext/WWW/Arena Autoren : Dave Raggett, Håkon W. Lie, Henrik Frystyk und Phil Hallam-Baker. 1.3.1.6 Der World Wide Web-Browser für Emacs
Für Emacs gibt es einen World Wide Web-Browser unter der Bezeichnung w3-mode extension . Diese Erweiterung ist extrem portierbar: Jede Plattform, die Emacs-Erweiterungen unterstützt, unterstützt auch die w3-mode extension. Diese Erweiterung ermöglicht verschiedene Schriftarten, fette und kursive Schrift sowie Eingabe über die Maus, falls Sie Lemacs oder Epoch im X Window System verwenden. Sie unterstützt außerdem Formulare gemäß der Spezifikation von HTML 3.0. Nützliche Funktion : Aufgrund der Kompatibilität zu Mosaic können Sie für Emacs und Mosaic mit der gleichen hotlist - und history -Datei sowie dem gleichen Verzeichnis für persönliche Anmerkungen arbeiten. Dies ist vielleicht der beste Web-Browser für Leute, die am Arbeitsplatz Mosaic verwenden und zu Hause beim Zugang über langsame Leitungen einen ähnlichen Web-Zugang benötigen. Um die w3-mode extension zu erhalten, richten Sie Ihren Web-Browser auf ftp://moose.cs.indiana.edu/pub/elisp/w3/ Dort finden Sie Quellen und Dokumentation für die w3-mode extension .
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (11 von 20) [11.04.2001 17:14:49]
Der Web-Browser für NeXT gehört zu den Original-Browsern, die am CERN entwickelt wurden, um die grundlegenden Konzepte des World Wide Web zu testen. Der Web-Browser für NeXT (Version 2.x) ist nur für NeXT-Workstations auf 68000-Basis verfügbar. Eine neuere Version, die NeXTstep auch auf anderen Plattformen unterstützt, ist jedoch bereits in Entwicklung. Nützliche Funktion : Die Möglichkeit, HTML-Dokumente zu erstellen und mit dem gleichen Web-Browser zu testen. Weitere Informationen zum Web-Browser für NeXT finden Sie in http://www.w3.org/pub/www/bin/next-fat Autor : Tim Berners-Lee, [email protected] 1.3.1.8 perlWWW
perlWWW ist ein zeichenorientierter Web-Browser, der in Perl geschrieben ist. Er benutzt termcap für alle Bildschirmausgaben. Sie können mittels Tastatureingaben den Bildschirminhalt verschieben sowie Knöpfe auswählen und drücken. Die Tastaturbelegung kann dabei kompatibel zu Emacs oder vi gewählt werden. Nützliche Funktion : perlWWW läßt sich gut erweitern, da es in Perl geschrieben ist. Um perlWWW zu erhalten, richten Sie Ihren Web-Browser auf ftp://archive.cis.ohio-state.edu/pub/w3browser/ Dieser URL zeigt auf das FTP-Archiv mit dem Browser perlWWW. Autor : Thomas A. Fine von der Ohio State University, [email protected] . 1.3.1.9 ViolaWWW
ViolaWWW ist ein erweiterbarer graphischer Web-Browser für das X Window System. Er basiert auf der Skriptsprache Visual Interactive Object-oriented Language and Applications (Viola) und dem zugehörigen Toolkit. ViolaWWW ermöglicht relativ komplexe Hypertext-Anwendungen, deren Fähigkeiten über den aktuellen HTML-Standard hinausgehen. Nützliche Funktion : Die Unterstützung für HTML 3.0 umfaßt Container-Absätze, verschachtelte Listen, Eingabeformulare und Tabellen. Zusätzliche Erweiterungen ermöglichen mehrere Spalten, Einfügen von Dokumenten auf Seite des Clients und Listen, die sich dynamisch verkleinern oder vergrößern lassen. Um ViolaWWW zu erhalten, richten Sie Ihren Web-Browser auf ftp://ftp.ora.com/pub/www/viola/ Dieser URL zeigt auf ein Verzeichnis, das die ablauffähige Binärversion für SPARCstation sowie den http://www.oreilly.de/german/freebooks/Html_buch/www01.html (12 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
Quellcode für andere UNIX-Plattformen enthält. Autor : Die Grundlagen stammen vom Experimental Computing Facility (XCF) an der Universität Berkeley. Zur Zeit treibt Pei Y. Wei, [email protected] , bei O'Reilly & Associates die Entwicklung dieses Web-Browsers voran. Sie erreichen ihn auch über viola@ora .com . 1.3.1.10 Weitere Web-Browser
Mit der Zeit erscheinen immer neue Web-Browser, die Sie beachten sollten. Line Mode Browser von CERN : Der Line Mode Browser ist der ursprüngliche Web-Browser, der am CERN entwickelt wurde. Er eignet sich ganz allgemein zur Beschaffung von Informationen über ein einfaches Terminal. Der Browser kann im nicht interaktiven Modus Dokumente anfordern und konvertieren und fungiert so als Filter. Im interaktiven Modus ähnelt er Lynx, nutzt jedoch die fortgeschrittenen Videofunktionen der meisten Terminals nicht aus. Hyperlinks werden durch eine eingeklammerte Zahl am Anfang dargestellt. Weitere Informationen finden Sie in http://www.w3.org/hypertext/WWW/LineMode/Status.html Chimera : Chimera ist ein Web-Browser mit der graphischen Oberfläche X/Athena. Chimera kann sowohl auf Web-Server, FTP-Archive und Gopher-Server als auch auf lokale Dateien zugreifen. Er unterstützt außerdem Formulare und eingebettete Bilder. Chimera ist bei Benutzerinnen beliebt, die nicht mit OSF/Motif arbeiten wollen. Weitere Informationen finden Sie in ftp://ftp.cs.unlv.edu/pub/chimera Der Browser/Editor TkWWW für X11 : Die gesamte Benutzeroberfläche dieses Browsers ist in tk geschrieben, also dem X-Toolkit, das auf tcl basiert. TkWWW ist der erste Browser für das X Window System, der in der Lage ist, HTML-Dateien zu editieren. Weitere Informationen finden Sie in http://www.w3.org/hypertext/WWW/TkWWW/Status.html Zusätzlich zu diesen zehn Browsern gibt es noch etliche für PC und Macintosh, von Browsern für unbekanntere Systeme ganz zu schweigen. Wenn Sie alle kennenlernen wollen, haben Sie viel zu tun! 1.3.2 Web-Server Sie haben die Wahl zwischen drei frei verfügbaren Web-Servern für UNIX, von denen jeder seine Stärken und Schwächen hat. Um die neuesten Funktionen und Erweiterungen festzustellen, besorgen Sie sich die aktuellste Version. Web-Server für UNIX dominieren zur Zeit noch, in jüngster Zeit wurden jedoch auch Web-Server für andere Betriebssysteme entwickelt. Wir beschreiben in diesem Buch die Einrichtung des NCSA Web-Servers, da dieser am weitesten verbreitet ist. 1.3.2.1 NCSA
Der NCSA Web-Server ist ein frei verfügbarer Web-Server, der in der Programmiersprache C geschrieben und auf geringe Größe und hohe Geschwindigkeit optimiert ist. Sein Einsatz wird durch keinerlei Lizenzbedingungen beschränkt.
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (13 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
Der NCSA-Server ist zu den meisten Web-Browsern für HTTP/0.9 und HTTP/1.0 kompatibel. Er ermöglicht Verweise auf Verzeichnisse, so daß Dokumente aus einer beliebigen physikalischen Verzeichnisstruktur zur Verfügung gestellt werden können. Sie können den Server so einrichten, daß Sie Suchfunktionen ausführen, HTML-Formulare behandeln, interaktive Bilder anbieten und den Zugang der Benutzer steuern können. Mit dem NCSA-Server können Sie auch die Ausgabe von Kommandos oder andere Dateien in Ihre HTML-Dokumente integrieren. Nützliche Funktion : Über Verzeichnisse, die von den einzelnen Benutzern gepflegt werden, können diese HTML-Dokumente aus ihren Stammverzeichnissen zur Verfügung stellen. Um den NCSA Web-Browser zu erhalten, richten Sie Ihren Web-Browser auf http://hoohoo.ncsa.uiuc.edu/docs/setup/PreCompiled.html Dieser URL zeigt auf eine Web-Seite, die auf vorkompilierte Binärversionen von httpd für alle wichtigen UNIX-Plattformen verweist. Autor : Rob McCool, [email protected] . Über [email protected] können Sie Fragen oder Bemerkungen an die augenblicklichen Entwickler des NCSA Web-Servers schicken. 1.3.2.2 CERN
Der CERN Web-Server ist ein frei verfügbarer Hypertext-Server, der in der Programmiersprache C geschrieben ist. Sein Einsatz wird durch keinerlei Lizenzbedingungen beschränkt. Der CERN-Server unterstützt Formulare, interaktive Bilder, ausführbare Skripten, mit denen der Server bei Bedarf Dokumente erstellen kann sowie die Möglichkeit, über CGI Indexsuchprogramme einzuhängen. Er bietet außerdem eine Zugangskontrolle und kann für die URLs von langlebigen Dokumenten auch Dokumentnamen auf Dateinamen abbilden. Nützliche Funktion : Die größte Stärke des CERN-Servers ist die Unterstützung von Proxy und Caching. Ein Proxy-Server läuft in der Regel auf einem Firewall-Rechner und bietet den Benutzern innerhalb des Firewall Zugang zur Außenwelt. Er kann außerdem Dokumente innerhalb des Firewall zwischenspeichern (Caching), was kürzere Antwortzeiten für die internen Benutzer zur Folge hat. Für weitere Informationen über den CERN Web-Server richten Sie Ihren Web-Browser auf http://www.w3.org/hypertext/WWW/Daemon/Status.html Autor : Tim Berners-Lee, [email protected], und Ari Luotonen, [email protected] . 1.3.2.3 Plexus
Plexus ist ein frei verfügbarer Web-Server, der in Perl geschrieben ist. Sein Einsatz wird durch keinerlei Lizenzbedingungen beschränkt. Plexus ist erweiterbar, einfach zu benutzen und schnell. Er unterstützt zur Zeit die Protokolle HTTP/0.9 und HTTP/1.0. Um den Web-Server Plexus 2.2.1 zu erhalten, richten Sie Ihren Web-Server auf ftp://austin.bsdi.com/plexus/2.2.1/dist/Plexus-2.2.1.tar.Z
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (14 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
Nützliche Funktion : Da Plexus in Perl geschrieben ist, kann man ihn leicht modifizieren. Da Perl jedoch nicht gerade wenig Speicherplatz benötigt, ist Plexus für einen stark belasteten Server vielleicht nicht die erste Wahl. Die neuesten Informationen zu Plexus finden Sie unter http://www.bsdi.com/server/doc/plexus.html Autor : Plexus basiert auf dem Perl-Server, der an der University of Indiana von Marc VanHeyningen, [email protected] , entwickelt wurde. Gewartet wird Plexus von Tony Sanders, [email protected] . Tony legt großen Wert auf die Feststellung, daß dieses Projekt nichts mit seinem Arbeitgeber BSDI zu tun hat. 1.3.2.4 WebSite
WebSite ist ein kommerzieller Web-Server für Windows NT und Windows 95, der von O'Reilly & Associates vertrieben wird. WebSite ist so leistungsfähig wie Web-Server unter UNIX, bietet aber die einfache Benutzeroberfläche von Windows. Über eine CGI-Schnittstelle ist es möglich, aus Web-Dokumenten heraus Excel- und Visual-Basic-Programme aufzurufen. Mit WebSite läßt sich der Zugang zu einzelnen Dokumenten über Paßwörter steuern. Erweiterungen für sichere Transaktionen mittels SHTTP und SSL (siehe Abschnitt 1.4.2) sind angekündigt. Weitere Informationen zu WebSite finden Sie unter folgendem URL: http://clubweb.ora.com Ebenso wie auch Web-Browser sind weitere kommerzielle Web-Server bei verschiedenen neu gegründeten Firmen in Entwicklung. Das soll nicht heißen, daß mit den vorgestellten Public-Domain Web-Servern etwas nicht in Ordnung ist. Wie auf vielen Gebieten, so gibt es auch hier einen Bedarf für Software, die kommerziell unterstützt wird, leichter erweiterbar und sicherer ist.
1.4 Weiterentwicklung des Web Was bringt die Zukunft für das World Wide Web? Das Web entwickelt sich auf verschiedenen Gebieten weiter: HTML-Erweiterungen, sichere Transaktionen, dreidimensionales Navigieren in virtuellen Räumen, Internationalisierung und einheitliche Namensgebung für Ressourcen. Außerdem nimmt die Kommerzialisierung des Web zu. Ohne Erfahrung mit dem Betrieb eines Web-Servers (oder der Erstellung von Dokumenten) können Sie die Bedeutung einiger Punkte vielleicht nicht richtig einschätzen. Sie können zu diesem Abschnitt zurückkehren, nachdem Sie einige der späteren Kapitel gelesen haben. Am wichtigsten ist dabei, daß sich das Web rasant weiterentwickelt. An den Entwicklungsrichtungen sehen Sie außerdem, wozu sich das Web heute noch nicht besonders gut eignet. 1.4.1 HTML 3.0 Noch bevor HTML 2.0 als formaler Standard festgeschrieben war, lief die Arbeit an der Nachfolgeversion HTML 3.0 auf Hochtouren. Die Standardisierung dieser Erweiterung ist zwar noch nicht abgeschlossen, es gibt aber schon die ersten Server und Browser dafür. HTML 3.0 ist SGML-konform und wird gemäß
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (15 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
SGML durch eine Document Type Definition (DTD) beschrieben. Wir wollen HTML 3.0 hier nur kurz vorstellen. In Abschnitt 3.5 werden wir ausführlicher auf die wichtigsten Erweiterungen eingehen. HTML 3.0 bietet eine reichhaltige Umgebung zur Beschreibung von Formularen, Tabellen, mathematischen Formeln, Formatvorgaben und anderen Auszeichnungsmöglichkeiten, die in HTML 2.0 fehlen. Der Umstieg auf HTML 3.0 ist für jene Web-Teilnehmer besonders wichtig, die Dokumente erstellen. Die wichtigsten Erweiterungen in HTML 3.0 umfassen: Neue Tags Damit können Autoren Text als Fußnote, Rand, Zusammenfassung oder Bemerkung auszeichnen. Eingebettete Graphiken Damit können Autoren Abbildungen kennzeichnen und optional Beschriftungen oberhalb oder unterhalb der Abbildung anbringen. Der Text kann die Graphik auf beiden Seiten umfließen. Tabellen Damit können Autoren Tabellen mit mehreren Spalten und Zeilen erstellen. Eingebettete Graphiken und Text können dabei innerhalb einer Tabelle gemischt werden. Formulare Über die Funktionen hinaus, die wir in diesem Buch beschreiben, werden Autoren die Möglichkeit haben, mehrere Aktivierungsknöpfe in ein Formular zu integrieren. Werkzeugleisten für Dokumente Damit können Autoren graphische Navigationshilfen in lange Dokumente integrieren. Mathematische Formeln In HTML 2.0 müssen Formeln in graphischer Darstellung als GIF-Datei eingebettet werden. HTML 3.0 enthält eine TEX-ähnliche Beschreibungssprache für Formeln, die vom Browser umgesetzt wird. Validierung HTML-Dokumente können mit SGML-Tools validiert werden. Damit läßt sich die Korrektheit eines Dokuments überprüfen, ohne es in verschiedenen Browsern auszuprobieren. Interaktive Bilder ( clickable image maps ) wurden so überarbeitet, daß die Image-Map jetzt als Teil des HTML-Dokuments unterstützt wird. Dadurch wird die Verarbeitung der Map bewußt vom Web-Server zum Web-Browser verlagert. Diese Umstellung beschleunigt die Verarbeitung der Image-Maps und ermöglicht schnellere Reaktionen auf Benutzereingaben: Es ist keine Übertragung zum Web-Server und zurück nötig, um festzustellen, ob der Benutzer eine bestimmte Stelle angeklickt hat. Graphische Web-Browser werden bei HTML 3.0 in der Lage sein, die Hotspots (à la HyperCard) optional zu markieren und den Mauszeiger zu verändern, wenn er sich über aktiven Hotspots oder einer eingebetteten Graphik befindet. Web-Browser ohne Graphikmöglichkeiten werden eine geordnete Liste von Optionen ausgeben, selbst wenn sie die Graphik selbst nicht anzeigen können. Für HTML-Autoren bedeutet dies, daß Image-Maps auch relative URLs enthalten können. Sie können außerdem ganz einfach als Teil eines HTML-Dokuments verschoben werden, ohne daß sich der Autor mit
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (16 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
aufwendigen Details der Server-Konfiguration beschäftigen muß. Vereinfacht ausgedrückt bringt HTML 3.0 die Auszeichnungsmöglichkeiten, die nötig sind, um aufwendigere »echte« Dokumente vollständig zu implementieren. HTML 3.0 wird jedoch erst dann so wichtig sein, daß viele Leute anfangen, Dokumente zu schreiben, wenn mehr als ein Web-Browser HTML 3.0 vollständig implementiert ist. Um die neuesten Informationen über HTML-Erweiterungen zu erhalten, richten Sie Ihren Web-Browser auf http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html 1.4.2 Sichere Transaktionen Der zweite wichtige Trend betrifft höhere Sicherheitsstufen auf der Transaktionsebene. Die aktuelle Web-Technik genügt zwar, um Produktkataloge auf den Schreibtisch des Anwenders zu bringen. Sie enthält aber keine Sicherheitsmechanismen, die es zuließen, über das Web Bestellungen mit Kreditkartennummer, elektronischer Unterschrift und rechtlich bindendem Zeitstempel aufzugeben. Durch verschiedene Bemühungen ist zwar einiges davon mit Tools der aktuellen Generation (oder Zusatzkomponenten) möglich, auf lange Sicht werden diese Fragen jedoch erst durch die Spezifikation von Secure HTTP gelöst werden. Secure HTTP (SHTTP) soll die Authentizität von Transaktionen und die Vertraulichkeit der über HTTP ausgetauschten Informationen garantieren. Mit einer Applikation, die Secure HTTP beherrscht, kann ein Benutzer digitale Unterschriften anfügen, die nicht gefälscht werden können. Dies ermöglicht digitale Verträge, die rechtlich bindend und nachvollziehbar sind. Darüber hinaus können vertrauliche Informationen wie Kreditkartennummern und Auktionsgebote verschlüsselt und dann sicher übermittelt werden. Viele Informationen zu sicheren Transaktionen und weitere Verweise finden Sie unter folgendem URL: http://www.w3.org/hypertext/WWW/Security/Overview.html Enterprise Integration Technologies (EIT), das National Center for Supercomputing Applications (NCSA) an der University of Illinois und RSA Data Security haben angekündigt, daß sie gemeinsam sichere Versionen von NCSA Mosaic und dem NCSA HTTP Web-Server entwickeln und vertreiben wollen, die auf die Verschlüsselungsmethoden mittels Public-Key-Methoden von RSA und der Secure HTTP Software von EIT basieren. Die Erweiterungen werden dem NCSA zum kostenlosen Vertrieb in nichtkommerziellen Anwendungen zur Verfügung gestellt. Netscape implementierte unter der Bezeichnung Secure Sockets Layer (SSL) eine Verschlüsselungsmethode, die ebenfalls auf Algorithmen von RSA basiert. Anders als SHTTP eignet sich SSL nicht nur zum Einsatz mit HTTP, sondern auch für andere Protokolle. Bei SSL werden alle Daten verschlüsselt übertragen, auch Benutzereingaben in Formularen. Dies ermöglicht z.B. die sichere Übertragung von Kreditkartendaten vom Browser zum Server. Aber auch alle Daten des Servers können in verschlüsselter Form zum Browser übertragen werden. Die Kombination von HTTP und SSL erhielt die spezielle Protokollkennung https . Damit ist bereits aus den URLs ersichtlich, daß ein Server verschlüsselte Daten anbietet. Clients, in denen SSL nicht implementiert ist, lehnen solche URLs sofort als unbekannt ab. 1.4.3 VRML
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (17 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
VRML steht für Virtual Reality Modeling Language und bezeichnet eine Beschreibungssprache für dreidimensionale Szenen. Im Gegensatz zu den Multimedia-Formaten, die in MIME definiert werden, fungiert VRML nicht nur als externes Datenformat für einen Web-Browser, sondern ermöglicht durch sogenannte WWW-Inlines und WWW-Anker eine nahtlose Integration in das Web. Dies ermöglicht den verteilten Aufbau virtueller Szenen. VRML benötigt einen speziellen Viewer, der eng mit dem Web-Browser zusammenarbeitet. Die Beschreibungen dreidimensionaler Räume können einerseits reale Szenen wie Gebäude und andere geographische Einheiten simulieren, andererseits können VRML-Dokumente auch abstrakte Räume visualisieren, z.B. das Dateisystem eines Web-Servers. Dabei werden alle Verzeichnisse als geometrische Körper dargestellt. Dies kann die Orientierung im Web wesentlich erleichtern, da man sich keine komplizierten URLs mehr merken muß. Statt dessen hilft das räumliche Orientierungsvermögen des Menschen bei der Suche nach Informationen. VRML basiert auf dem Dateiformat von SGI Inventor, das um einige WWW-Konstrukte erweitert wurde. Die Spezifikation von VRML und einige Demoszenen finden Sie unter folgendem URL: http://www.tnt.uni-hannover.de/data/info/www/tnt/subj/sci/com/virtreal/ vrml/overview.html 1.4.4 Einheitliche Namensgebung Eine weitere Hauptrichtung betrifft die einheitliche Namensgebung für Ressourcen. Das URL-Konzept ist zwar sehr wichtig für das Web, hat jedoch auch seine Grenzen. Am wichtigsten ist dabei, daß der URL ein Dokument selbst nicht eindeutig beschreibt, sondern nur eine Instanz des Dokuments. Probleme durch Dokumente, die auf einem anderen Server gespiegelt werden, oder veraltete Versionen werden dabei nicht berücksichtigt. Die Namensfrage ist zwar noch nicht endgültig geklärt, die Hauptidee ist jedoch die Einführung einer weiteren Identifikation namens Universal Resource Name (URN). Ähnlich der Internationalen Standardbuchnummer ISBN soll der URN ein Dokument eindeutig identifizieren. Jedes Buch, das irgendwo auf der Welt veröffentlich wird, erhält eine ISBN, die eindeutig den Titel des Buchs, Autor, Verlag, Publikationsdatum etc. identifiziert. Die ISBN sagt zwar nichts darüber aus, welche Buchläden oder Bibliotheken das Buch haben, enthält aber definitive Meta-Informationen über das Buch. Der URN würde den gleichen Zweck für elektronische Dokumente erfüllen. Die Grundidee ist die Einrichtung von URN-Servern, die zu einem gegebenen URN eine Liste aller bekannten URLs zurückliefern, die Instanzen des Dokuments beschreiben. Sie könnten vielleicht sogar den URL derjenigen Instanz zurückgeben, die Ihrem Web-Browser im Internet elektronisch am nächsten liegt. Das Konzept der URNs ist nicht auf das World Wide Web beschränkt, bietet im Web jedoch naheliegende Vorteile. All dies basiert auf der Beobachtung, daß Informationen im Internet nicht völlig zentral vorliegen, sondern (aus guten Gründen) in Wirklichkeit vervielfältigt und über die ganze Welt verteilt werden. 1.4.5 Internationalisierung Die Entwicklung des Web berücksichtigte nur Englisch und einige europäische Sprachen. HTML 2.0 benutzt den Zeichensatz ISO 8859-1 (Latin 1), der alle Sonderzeichen für die westeuropäischen Sprachen enthält. Mit zunehmnender Vernetzung und Globalisierung von Wirtschaft, Wissenschaft und Technik
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (18 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
werden Forderungen laut, auch andere Sprachen und Schriftsysteme, z.B. Griechisch oder Japanisch, im Web zu ermöglichen. Bisher ist dies nur auf dem Umweg der Einbettung von Graphikdateien möglich. Für den Einsatz fremder Zeichensätze oder Schriftsysteme gibt es mehrere Ansätze: Bei der Code-Umschaltung wird zwischen verschiedenen Zeichensätzen umgeschaltet. So gibt es z.B. eine angepaßte Version der WWW-Bibliothek des CERN für den Einsatz mit Japanisch. Wesentlich besser ist jedoch die Verwendung eines 16-Bit-Zeichensatzes, der alle benutzten Sprachen und Schriftsysteme der Welt abdeckt. Ein solcher Zeichensatz wurde unter der Bezeichnung Unicode bereits standardisiert. Zur Zeit gibt es allerdings noch keine konkrete Spezifikation für die Einbettung von Unicode in HTML. Nähere Informationen zur Internationalisierung des Web finden Sie unter folgendem URL: http://www.w3.org/hypertext/WWW/International/Overview.html 1.4.6 Kommerzialisierung Diese technischen Trends bilden zusammen die Triebfeder für eine weitere Verschiebung im World Wide Web, nämlich die zunehmende Kommerzialisierung: ● Viele führende UNIX-Hersteller bündeln mittlerweile Web-Browser mit ihren Standardsystemen. Santa Cruz Operation (SCO), Quarterdeck und Digital Equipment Corporation haben bereits Lizenzvereinbarungen mit NCSA getroffen, um Mosaic zusammen mit ihren Produkten zu vertreiben. ● Andere Firmen, etwa SPRY, InfoSeek Corp., Quadralay Corp., Spyglass und California Software Inc. beginnen damit, Web-Browser zu lizenzieren und werden sie als Vollprodukte mit Unterstützung im kommerziellen Markt anbieten. ● NETCOM hat NetCruiser angekündigt, einen eigenen Web-Browser für Privatanwender. Zur Zeit verhandelt NETCOM mit Modemherstellern über die Bündelung der NetCruiser-Software mit deren Produkten. All diese Marketing-Vorstöße werden den Einsatz des Web auf immer mehr Arbeitsplätze vorantreiben. Dies wiederum macht das World Wide Web für Informationsanbieter und Verleger immer attraktiver. Die Entwicklung sicherer Web-Browser und Web-Server wird die Grundlage für elektronischen Handel darstellen. Diese Verschiebung in Richtung sicherer Client/Server-Transaktionen und die Möglichkeit, elektronisch Geld über das Web auszutauschen, bildet den Grundstein für eine Reihe von Initiativen: Global Network Navigator (GNN) GNN wurde von O'Reilly & Associates entwickelt und gehört nun u.a. zur Angebotspalette von America Online. Es war das erste elektronische Online-Magazin, das von Werbung getragen wurde. Um eine Vorstellung von der sich entwickelnden kommerziellen Umgebung zu bekommen, richten Sie Ihren Web-Browser auf den URL http://gnn.com/ CommerceNet CommerceNet hat Smart Valley Inc. im Bereich der San Francisco Bay Area zum Sponsor und soll der Elektronikindustrie im Silicon Valley den Start in das World Wide Web ermöglichen: http://www.commerce.net NetWorth
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (19 von 20) [11.04.2001 17:14:49]
HTML und das World Wide Web
NetWorth hat Galt Technologies in Pittsburgh zum Sponsor und soll als Handelsplatz für Geldmarktfonds und Finanzdienste dienen: http://networh.galt.com MecklerWeb MecklerWeb hat Mecklermedia in Connecticut zum Sponsor und soll den Fortune 1000-Firmen (4) dabei helfen, über das World Wide Web im Internet aktiv zu werden: http://www.mecklerweb.com/demo.html Jedes dieser Beispiele ist etwas anders ausgerichtet, jedoch sollen alle den kommerziellen Einsatz des World Wide Web vorbereiten. Es gibt noch Dutzende weiterer Beispiele.
1.5 Übersicht über die weiteren Kapitel In den folgenden Kapiteln erfahren Sie, wie Sie einen World Wide Web-Server einrichten, Informationen für das Web aufbereiten, Gateways zu anderen Informationsdiensten einrichten, die nicht direkt über Browser zugänglich sind, Formulare erzeugen, Skripten zur Verarbeitung der Formulareingabe schreiben und den Zugang zu Ihrem Web-Server steuern. Falls Sie kein Systemverwalter sind, sollten Sie sich auf Kapitel 3, Erstellen von Web-Dokumenten , konzentrieren.
Fußnoten: (1) Marc Andreessen arbeitet heute bei Mosaic Communications, Inc. Diese Firma entwickelt eine kommerzielle Version von Mosaic. (2) In vielen Büchern stehen Verweise auf den CERN-Server http://www.cern.ch. Der Inhalt dieses Servers wird jedoch mittlerweile von W3C unter http://www.w3.org angeboten. Für eine Übergangszeit enthält die alte Adresse noch Verweise auf den neuen W3-Server. In diesem Buch haben wir bereits alle Adressen entsprechend geändert. (3) »Kriechen« wäre vielleicht eine bessere Metapher für die Fortbewegung in einem Netz (Web). Dabei ginge jedoch das Gefühl von Geschwindigkeit und Abenteuer verloren! (4) Anmerkung des Übersetzers: Die Fortune-Liste enthält die umsatzstärksten Firmen der USA. Inhaltsverzeichnis
Einleitung
Kapitel 2
http://www.oreilly.de/german/freebooks/Html_buch/www01.html (20 von 20) [11.04.2001 17:14:49]
2 Einrichten eines Web-Servers Wenn Sie sich mit UNIX-Systemverwaltung auskennen, wird es Ihnen nicht schwerfallen, einen Web-Server einzurichten. Wir behandeln in diesem Kapitel die Installation der Software, die grundlegende Konfiguration sowie die Pflege des Servers. In Abschnitt 2.3 beschreiben wir die vielen Funktionen, die sich zusätzlich aktivieren lassen, sobald der Server läuft. Zusätzlich sollten Sie auch Kapitel 5, Zugangssteuerung und Sicherheitsaspekte im Web, lesen.
2.1 Einrichten der Basisdienste Wir beschreiben im folgenden, wie Sie eine Basiskonfiguration für den Betrieb des NCSA-Web-Servers einrichten. 2.1.1 Installation eines vorkompilierten Servers NCSA nennt seinen Web-Server httpd (HTTP daemon). Die aktuelle Versionsnummer lautet 1.3. Zur Zeit gibt es Binärversionen von http für die folgenden Plattformen: ● IRIS Crimson VGXT unter IRIX 4.0.5C ● SPARCserver 690MP unter SunOS 4.1.3 ● DECstation 5000 unter Ultrix 4.2 Rev. 96 ● DEC 3000 Modell 500 unter DEC OSF/1 V1.3 ● IBM RS/6000 Modell 550 unter AIX 3.2.4 ● HP 9000 Modell 730 unter HP-UX 9.01 Beim Einsatz anderer Plattformen mit der gleichen Architektur oder einer aufwärtskompatiblen Version des Betriebssystems sollten Sie keine Schwierigkeiten haben. Sie erhalten die Binärversion am einfachsten, indem Sie Ihren Web-Browser auf http://hoohoo.ncsa.uiuc.edu/docs/setup/PreCompiled.html http://www.oreilly.de/german/freebooks/Html_buch/www02.html (1 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
richten. Dieser URL enthält eine Liste aller zur Zeit unterstützten Systeme. Von dort aus können Sie die gewünschte Version mit Hilfe Ihres Web-Browsers beziehen. Das jeweilige Paket enthält eine übersetzte Version von httpd, vorbereitete Konfigurationsdateien, Gateway-Skripten, verschiedene Zusatzskripten und eine Reihe von Icons für die Indizierung von Verzeichnissen. Wenn Sie das Paket mit einer vorkompilierten Version benutzen, stellen Sie es in das Verzeichnis /usr/local/src und nennen es httpd.tar.Z. Dann entpacken Sie das Paket aus der Shell heraus mit folgenden Anweisungen: % cd /usr/local/src % zcat httpd.tar.Z | tar xvf Wenn Sie das Tar-Paket auf diese Weise dekomprimieren und entpacken, wird ein Unterverzeichnis namens httpd_1.3 angelegt. Es enthält die Datei README, einen vorkompilierten NCSA-Web-Server namens httpd und einige Unterverzeichnisse: cgi-bin Dieses Verzeichnis enthält einige Gateway-Skripten als Beispiele und vorkompilierte Gateway-Binärversionen. Wenn Sie eigene Gateways erzeugen, stellen Sie sie normalerweise in dieses Verzeichnis. Das Verzeichnis ist nach der Standard-Schnittstelle zum Web-Server benannt, die als Common Gateway Interface (CGI) bezeichnet wird. conf Dieses Verzeichnis enthält alle Konfigurationsdateien, die den Betrieb Ihres Web-Servers steuern. icons Dieses Verzeichnis enthält eine Reihe von Icons, die zur Indizierung von Verzeichnissen dienen. logs In diesem Verzeichnis befinden sich normalerweise die Dateien, in denen Zugriffe und Fehlermeldungen protokolliert werden. support In diesem Verzeichnis befinden sich Programme zur globalen und verzeichnisspezifischen Zugangskontrolle. Falls keines der vorkompilierten Pakete für Sie in Frage kommt, müssen Sie sich das HTTP-Kit von NCSA besorgen und die Source selbst übersetzen. Die Web-Seite mit der Liste der vorkompilierten Binärversionen enthält auch einen Verweis auf die Seite, von der aus Sie die Quelltexte downloaden können. 2.1.2 Übersetzen von NCSA-HTTP Wenn Sie eines der oben erwähnten vorgefertigten Pakete verwenden, können Sie diesen Abschnitt vollständig überspringen und in Abschnitt 2.1.3. weiterlesen. Um die Source zu erhalten, richten Sie Ihren Web-Browser auf ftp://ftp.ncsa.uiuc.edu/Web/httpd/Unix/ncsa_httpd/current/httpd_source.tar.Z Sie können sich an den folgenden Beispielen orientieren, sollten jedoch immer daran denken, daß Kommandos und Verzeichnisse auf Ihrem System möglicherweise anders heißen.
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (2 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
Nachdem Sie sich das Source-Paket von NCSA-HTTP besorgt haben, legen Sie es in das Verzeichnis /usr/local/src und nennen es ncsa_source.tar.Z. Dann geben Sie folgende Anweisungen in der Shell ein: % cd /usr/local/src % zcat ncsa_source.tar.Z | tar xvf Wenn Sie das Source-Paket auf diese Weise dekomprimieren und entpacken, wird ein Unterverzeichnis namens httpd_1.3 angelegt. Das Source-Paket enthält die gleichen Verzeichnisse wie das im vorigen Abschnitt beschriebene Binärpaket sowie das zusätzliche Verzeichnis src. Zur Erzeugung von NCSA-HTTP müssen Sie zwei Teile getrennt übersetzen, nämlich den httpd-Server und die Gateways. Wir erzeugen zunächst den httpd-Server. Wechseln Sie in das Source-Verzeichnis und legen Sie mit folgenden Anweisungen eine Sicherungskopie der Datei Makefile an: % cd http_1.3/src % cp Makefile Makefile-dist Jetzt editieren Sie das Original-Makefile und tragen die folgenden Änderungen ein. Dabei sollten Sie nur Makefile-Variablen ändern, deren Bedeutung Sie auch kennen. Mit einem Texteditor ● ändern Sie die Variable CC auf den Namen des Compilers, den Sie auf Ihrem System benutzen; ● ändern Sie die Variable CFLAGS, falls Sie nicht mit den vorgegebenen Compiler-Optionen arbeiten wollen. Die Standardeinstellung funktioniert höchstwahrscheinlich unverändert; ● fügen Sie in der Variablen EXTRA_LIBS zusätzliche Bibliotheken hinzu, die auf Ihrem System nötig sind. Falls Sie für SunOS 4.1.x übersetzen (dies ist die Voreinstellung), können Sie Ihre Änderungen sichern und den Editor verlassen. Andernfalls ● kommentieren Sie die Variable AUX_CFLAGS für SunOS 4.1.x aus; ● entfernen Sie das Kommentarzeichen vor der für Ihr System vorgesehenen Variablen AUX_CFLAGS . ● Falls Sie keinen Eintrag für Ihr System entdecken, wurde der NCSA-Web-Server noch nicht auf Ihre Plattform portiert. Wählen Sie in diesem Fall die Systemvariante, die Ihrem System am nächsten kommt. ● Sichern Sie Ihre Änderungen und beenden Sie den Editor. Jetzt können Sie das Programm httpd erzeugen und an der richtigen Stelle installieren: % make Falls das nicht funktioniert, müssen Sie src/httpd.h bearbeiten und erneut make aufrufen. In diesem Fall müssen Sie auch darauf achten, das Flag BSD je nach Betriebssystem auf TRUE oder FALSE zu setzen. War der make-Vorgang erfolgreich, verschieben Sie Ihren Web-Server in das darüberliegende Verzeichnis: % mv httpd .. Als nächstes betrachten wir die CGI-Skripten. Wechseln Sie in das Verzeichnis cgi-src: % cd ../cgi-src Hier können Sie das Makefile genauso anpassen wie das von httpd. Dann erzeugen Sie die Skripten: % make
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (3 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
Dieser Aufruf übersetzt und bindet alle CGI-Skripten und verschiebt sie nach ../cgi-bin. Das CGI-Skript für Image-Maps ist besonders wichtig. Behalten Sie diesen Schritt im Hinterkopf, denn Sie müssen die Quelldatei imagemap.c verändern, wenn Sie nicht mit den Standard-Verzeichnissen arbeiten wollen. 2.1.3 Lokale Änderungen der Konfiguration Nachdem Sie jetzt die Binärprogramme erzeugt haben, können Sie den NCSA-Web-Server an Ihre Umgebung anpassen. Sie bearbeiten dazu drei Konfigurationsdateien.(1) Sie lauten: httpd.conf Hauptkonfigurationsdatei für den Server srm.conf Konfigurationsdatei für die Ressourcen des Servers access.conf Globale Zugangsdatei (access control file, ACF) Sie müssen hauptsächlich die Konfigurationsdateien httpd.conf und srm.conf anpassen. Außerdem sind Sie die Konfigurationsdatei access.conf entsprechend den Angaben in httpd.conf zu ändern. Darüber hinaus gibt es noch eine kleinere Konfigurationsdatei namens mime.types, die die Zuordnung von Dateinamenerweiterungen auf MIME-Datentypen steuert. Diese Datei müssen Sie nur dann bearbeiten, wenn Sie Zuordnungen zwischen Dateitypen und Anwendungsprogrammen verwenden wollen, die von der Standardeinstellung abweichen. Zunächst können Sie die Konfigurationsdatei mime.types ignorieren. Die drei Hauptkonfigurationsdateien werden im Verzeichnis conf abgelegt und erhalten die Erweiterung .conf-dist. Diese Dateien können Sie als Referenz stehenlassen und für den lokalen Einsatz Kopien mit der Endung .conf anlegen: % cp httpd.conf-dist httpd.conf % cp srm.conf-dist srm.conf % cp access.conf-dist access.conf Beachten Sie bei allen Änderungen in diesen .conf-Dateien folgende Punkte: ● Außer bei Pfadnamen und URLs wird immer zwischen Groß- und Kleinschreibung unterschieden. ● Kommentarzeilen beginnen mit dem Zeichen #. ● Jede Zeile darf höchstens eine Anweisung enthalten. ● Leerzeichen werden ignoriert. Zunächst wollen wir zeigen, wie Sie die Konfigurationsdateien ändern müssen, um Ihren NCSA-Web-Server schnell für unbeschränkten öffentlichen Zugang einzurichten. Wir gehen dabei davon aus, daß es sich um Ihren eigenen Web-Server handelt und Sie dessen Betrieb allein steuern. Wir werden die relevanten Einstellungen hervorheben und nur die Änderungen behandeln, die zum Start des NCSA-Web-Servers nötig sind. Später beschreiben wir dann, wie Sie die Konfiguration anpassen können. 2.1.3.1 Grundeinstellungen für httpd.conf
Die Datei httdp.conf steuert den Betrieb Ihres Servers, nicht jedoch Einzelheiten zu den angebotenen Dateien (dafür ist srm.conf zuständig).
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (4 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
Um Ihren NCSA-Web-Server als eigenständigen Dämon (ohne inetd) für allgemeinen und unbeschränkten öffentlichen Zugang einzurichten, sollten Sie ● In User und Group die gewünschten Namen eintragen. Diese Werte legen die Benutzer- und Gruppenkennungen (UID bzw. GID) fest, die der Server während des Betriebs benutzt. Wir empfehlen
●
●
●
●
●
User http Group www Tragen Sie diese Namen in /etc/passwd bzw. /etc/group ein. Standardmäßig werden UID nobody und GID -1 benutzt.) Ändern Sie ServerAdmin auf [email protected] und richten Sie einen Mail-Alias ein, damit Sie E-Mail an diese Adresse erhalten. Diese E-Mail-Adresse sehen die Benutzer, damit sie Probleme beim Betrieb Ihres Web-Servers melden können. Tragen Sie in ServerRoot den absoluten Pfadnamen des Verzeichnisses ein, in dem Sie die Programmdatei von httpd ablegen wollen. Da hier auch andere Hilfsdateien landen, sollte das Verzeichnis noch keine Dateien enthalten. Die Standardeinstellung lautet /usr/local/etc/httpd. Belegen Sie ServerName mit www.your.domain. Wir werden später den CNAME-Datensatz einrichten, der diesen Hostnamen festlegt. Ändern Sie ServerType, falls Sie den Server nicht eigenständig, sondern unter inetd betreiben wollen. Die Voreinstellung ist eigenständig.
Wir werden einige dieser Anweisungen in httpd.conf später zusammen mit den jeweiligen Funktionen ausführlicher behandeln. Eine Zusammenstellung aller Anweisungen in httpd.conf finden Sie in Anhang C, Anweisungen in httpd.conf. 2.1.3.2 Grundeinstellungen für srm.conf
Die Konfigurationsdatei srm.conf legt fest, wo der httpd-Server Ihre Dokumente und Skripten findet. Um Ihren NCSA-Web-Server anfangs für uneingeschränkten öffentlichen Zugang einzurichten, sollten Sie folgendes tun: ● Tragen Sie in der Anweisung DocumentRoot das Verzeichnis am Anfang Ihres Dokumentenbaums ein. Das ist das Hauptverzeichnis, aus dem heraus httpd die Dateien anbietet. Die Standardeinstellung lautet /usr/local/etc/httpd/htdocs. ● Belegen Sie die Anweisung UserDir mit DISABLED, solange Sie Ihren Server noch einrichten. Dadurch verhindern Sie, daß Benutzer Dateien aus ihren HOME-Verzeichnissen öffentlich anbieten (was ein mögliches Sicherheitsrisiko darstellt). Die Standardeinstellung lautet public_html. ● Passen Sie die Anweisungen Alias oder ScriptAlias an, wenn Sie die Unterverzeichnisse icon oder cgi-bin nicht an den Standardorten anlegen wollen. Die Standardeinstellungen lauten /usr/local/etc/httpd/icons und /usr/local/etc/httpd/cgi-bin. Über zusätzliche Anweisungen Alias und ScriptAlias können Sie den Benutzern vorgaukeln, daß einige Dokumente oder Skripten in einem bestimmten Verzeichnis liegen, während sie in Wirklichkeit in einem anderen liegen. Dies bezeichnet man auch als virtuelle Verzeichnisse. Viele der Anweisungen in der Konfigurationsdatei srm.conf brauchen Sie nur dann, wenn Sie weitergehende Funktionen Ihres Web-Servers nutzen wollen. Wir werden diese Anweisungen später zusammen mit den jeweiligen Funktionen behandeln. Eine Zusammenstellung aller Anweisungen in srm.conf finden Sie in Anhang D, Anweisungen in srm.conf. In Abschnitt 2.2.3 finden Sie weitere Hinweise zur Anweisung Alias. 2.1.3.3 Grundeinstellungen für access.conf
Die globale Zugangsdatei (access control file, ACF) heißt access.conf. Diese Datei legt fest, wie Web-Browser
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (5 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
auf den ganzen Web-Server oder auf bestimmte Verzeichnisse zugreifen dürfen. access.conf enthält standardmäßig die folgenden Einträge: Options Indexes FollowSymLinks Options Indexes FollowSymLinks AllowOverride All order allow,deny allow from all Diese Standardeinstellungen ermöglichen ohne Berücksichtigung von Sicherheitsaspekten alle Funktionen für alle Web-Browser. Da diesem Thema ein ganzes Kapitel gewidmet ist (Kapitel 5, Zugangssteuerung und Sicherheitsaspekte im Web), werden wir hier nicht näher darauf eingehen. Im Augenblick sollten Sie nur die folgenden Änderungen vornehmen, um Ihren NCSA-Web-Server für unbeschränkten öffentlichen Zugang einzurichten: ● Passen Sie die erste Directory-Anweisung an, wenn Ihr Verzeichnis cgi-bin an einer anderen Stelle liegt. ● Entfernen Sie die Option Indexes in der Anweisung Options, die zum Verzeichnis cgi-bin gehört. Die Web-Benutzer sollten nicht in der Lage sein, das Verzeichnis mit Ihren httpd-Skripten beliebig zu durchsuchen. ● Passen Sie die zweite Directory-Anweisung an den Pfad an, den Sie in der Anweisung DocumentRoot in der Konfigurationsdatei srm.conf eingetragen haben. ● Ändern Sie AllowOverride von All auf None. Damit verhindern Sie, daß andere Benutzer auf Ihrem System oder Ihre HTML-Autoren Ihre globale ACF-Datei ohne Berücksichtigung von Sicherheitsaspekten überschreiben. 2.1.4 Installation des Servers Vor dem Start des Web-Servers können Sie jetzt den httpd-Server und die zugehörigen Dateien und Verzeichnisse in das Verzeichnis ServerRoot verschieben. Falls Sie das Verzeichnis ServerRoot nicht verändert und das Server-Paket im gleichen Verzeichnis wie wir entpackt haben, bringen Sie den httpd-Server mit folgenden Anweisungen an die richtige Stelle: % cd /usr/local/src/httpd_1.3 % mkdir /usr/local/etc/httpd % cp -r httpd conf logs icons cgi-bin /usr/local/etc/httpd Vergessen Sie nicht, daß die Benutzerkennung, unter der Ihr Server laufen wird, Schreibberechtigung für das Verzeichnis logs benötigt. (Die Kennung wird durch die Anweisung User in der Konfigurationsdatei httpd.conf festgelegt). Dies erreichen Sie am einfachsten wie folgt: % cd /usr/local/etc/httpd % chown http logs
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (6 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
2.1.5 Start des Servers Für den Start des Servers gibt es verschiedene Möglichkeiten, je nachdem, ob Sie ihn eigenständig oder unter inetd betreiben wollen. Grundsätzlich ist der Betrieb unter inetd während der Testphase sinnvoll, während sich der Einzelbetrieb für schweren Einsatz besser eignet. Bevor wir anfangen, wollen wir jedoch die drei Aufrufoptionen des NCSA-httpd zusammenfassen. Im Gegensatz zu den meisten anderen in diesem Buch beschriebenen Diensten hat httpd sehr wenige Optionen, da fast alles über Konfigurationsdateien eingestellt wird. Beim Start von httpd gibt es drei Aufrufoptionen: -d Verzeichnis Falls Sie in httpd.conf den Eintrag ServerRoot geändert haben, müssen Sie das gleiche Verzeichnis auch bei -d angeben. Dieser Eintrag legt das Verzeichnis fest, in dem httpd seine Konfigurationsdateien sucht. -f Datei Damit können Sie eine andere Konfigurationsdatei angeben, die httpd anstelle von httpd.conf einlesen soll. -v Diese Option gibt nur die aktuelle Versionsnummer des httpd-Servers aus. Sie können dies ausführen, während der httpd-Server läuft. 2.1.5.1 Start im Einzelbetrieb
Wenn Sie in den Konfigurationsdateien alle Standardeinstellungen benutzen, müssen Sie zum Start des Servers das Programm lediglich unter der Kennung root aufrufen: # httpd & httpd sollte aus der root-Kennung heraus gestartet werden, damit er sich an den reservierten Port 80 binden und die drei Protokolldateien öffnen kann. Aus Sicherheitsgründen wechselt der Server daraufhin zu der Benutzerund Gruppenkennung, die in der Konfigurationsdatei httpd.conf bei den Anweisungen User und Group angegeben sind. Falls Sie bei ServerRoot etwas anderes als /usr/local/etc/httpd angegeben haben, müssen Sie den Dämon wie folgt starten: # httpd -d /your/server/root & /your/server/root ist dabei das Verzeichnis in der Anweisung ServerRoot. Vermutlich wollen Sie den Server gleich beim Hochfahren des Systems automatisch starten. Dazu müssen Sie je nach System eine Datei in /etc/rc* modifizieren. 2.1.5.2 Neustart im Einzelbetrieb
Solange Sie Daten und Skripten noch nicht vollständig eingerichtet haben, müssen Sie die Konfigurationsdateien vermutlich mehrmals ändern. Mit dem folgenden Kommando können Sie httpd nach einer Änderung in den Konfigurationsdateien neu starten:(2) % kill -HUP `cat logs/httpd.pid` Eine andere Möglichkeit besteht darin, mit den Kommandos ps und grep die Prozeßnummer des httpd-Servers zu ermitteln. Damit Sie den Vaterprozeß von httpd auch sicher erwischen, sollten Sie den Prozeß httpd killen, der die http://www.oreilly.de/german/freebooks/Html_buch/www02.html (7 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
niedrigste Prozeßnummer und einen Vaterprozeß mit der Prozeßnummer 1 hat. Um zu überprüfen, ob der httpd-Server erfolgreich neu gestartet wurde, sollten Sie sich die letzte Zeile der Fehlerprotokolldatei des httpd-Servers ansehen (standardmäßig logs/error_log, siehe Abschnitt 2.2.2). Sie sollte wie folgt lauten: httpd: Successful restart. 2.1.6 Start unter inetd Wenn Sie in der Konfigurationsdatei httpd.conf die Anweisung ServerType geändert haben, müssen Sie zum Betrieb Ihres Web-Servers inetd einrichten: ● Fügen Sie in der Datei /etc/services eine Zeile folgender Art ein:
●
●
http port-number/tcp port-number muß dabei dem Wert der Anweisung Port in der Konfigurationsdatei httpd.conf entsprechen. Normalerweise wird die Portnummer 80 benutzt. Fügen Sie in /etc/inetd.conf eine Zeile der folgenden Form ein: http stream tcp nowait nobody /usr/local/etc/httpd/httpd httpd Ersetzen Sie dabei /usr/local/etc/httpd/httpd durch den Pfad Ihres Servers und nobody durch den Benutzernamen, unter dem die Anfragen erledigt werden sollen (wir empfehlen http). Der letzte Verweis auf httpd benötigt nur dann die Option -d ServerRoot, wenn Sie in der Konfigurationsdatei httpd.conf den Eintrag ServerRoot verändert haben. Starten Sie inetd neu, indem Sie mit ps seine Prozeßnummer ermitteln und ihm mit dem Kommando kill -HUP ein Signal schicken.
Bei dieser Methode müssen Sie den httpd-Server nie neu starten, da der Prozeß inetd dies bei Bedarf erledigt. Der Nachteil besteht in Performance-Einbußen bei jeder Anfrage an Ihren Web-Server, da httpd beim Start alle Konfigurationsdateien liest. Um den Dienst zu beenden, müssen Sie die Zeile, die Sie in inetd.conf eingefügt haben, wieder auskommentieren und inetd neu starten. Sie sollten auf alle Fälle den Einsatz von xinetd in Betracht ziehen: Das ist eine erweiterte Version von inetd, die Sicherheitsfunktionen und Möglichkeiten zur Zugriffskontrolle bietet. Weitere Informationen zu xinetd finden Sie in Kapitel 28 des Buchs Internet-Server Einrichten und Verwalten. 2.1.7 Zuordnung der URLs auf Dokumente Um ein HTML-Dokument auf Ihrem Web-Server zu öffnen, müssen Sie verstehen, wie URLs auf Ihren Dokumentbaum abgebildet werden. Wir betrachten zunächst den minimalen URL, der Ihren Web-Server anspricht: http://server-name Enthält ein URL keinen Verzeichnis- oder Dateinamen, so liefert der Web-Server entweder den Inhalt der Datei index.html im Verzeichnis ServerRoot zurück oder er erzeugt ein Verzeichnis-Listing entsprechend ls -1 (hier steht die Ziffer Eins, kein kleines L), falls diese Datei nicht existiert.(3) Falls Sie Ihren httpd-Server nicht am Standardport betreiben, müssen Sie die benutzte Portnummer mit in den
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (8 von 22) [11.04.2001 17:14:59]
HTML und das World Wide Web
minimalen URL aufnehmen. Wenn Sie httpd z.B. auf Port 8001 betreiben, lautet der minimale URL zu Ihrem Web-Server http://server-name:8001 Um etwas anderes als den Index für das Stammverzeichnis zu erhalten, müssen Sie auch den virtuellen Namen des Dokuments an den URL anhängen. Der virtuelle Name gibt den Pfad zu dem Dokument aus der Sicht des Web-Servers an. Er ist nicht mit dem absoluten Pfadnamen des Dokuments auf Ihrem System identisch. Ein virtueller Name setzt sich aus einem virtuellen Verzeichnisnamen und einem realen Dateinamen zusammen. Der httpd-Server übersetzt URLs wie folgt in echte Verzeichnisnamen: ● Er überprüft, ob am Anfang des URL-Pfads virtuelle Verzeichnisnamen stehen, die in den Anweisungen Alias oder ScriptAlias in srm.conf definiert werden. Ist das der Fall, ersetzt er den virtuellen durch den echten Verzeichnisnamen und bearbeitet die Anfrage. Mit virtuellen Verzeichnissen können Sie für unterschiedliche Informationen getrennte Dateibäume einrichten. ● Er überprüft, ob der URL mit /~user-name beginnt (Schrägstrich und Tilde, gefolgt von einem auf Ihrem System gültigen Benutzernamen). Ist dies der Fall, sucht er die Datei im öffentlichen HTML-Unterverzeichnis des angegebenen Benutzers (public_ html). Falls dieses Verzeichnis nicht existiert, liefert er eine Fehlermeldung zurück. Dieser Schritt entfällt, wenn UserDir in srm.conf auf den Wert DISABLED gesetzt ist. ● Andernfalls fügt er DocumentRoot am Anfang des Pfads ein und bearbeitet die Anfrage. Die Anweisungen Alias, ScriptAlias und UserDir befinden sich in der Konfigurationsdatei srm.conf. Jede Zeile Alias oder ScriptAlias definiert ein virtuelles Verzeichnis. Die Alias-Zeile Alias
/icons/
/usr/local/etc/httpd/icons/
definiert z.B. das virtuelle Verzeichnis /icons/. Erscheint es in einem URL, so wird es vom Web-Server auf /usr/local/etc/httpd/icons/ abgebildet. Der URL http://server-name/icons/mybitmap.xbm wird beispielsweise auf die Datei /usr/local/etc/httpd/icons/mybitmap.xbm abgebildet. 2.1.8 Testen Ihres Web-Servers Als nächstes überprüfen Sie, ob Ihr Web-Server ordnungsgemäß läuft. Öffnen Sie mit Ihrem Web-Browser den minimalen URL für Ihren Web-Server und beobachten Sie, was passiert. Wenn die Datei index.html existiert (bzw. eine Datei, die der Anweisung DirectoryIndex entspricht), so sollte diese zurückgeliefert werden. Existiert die Datei nicht, sollten Sie eine Liste der Dateinamen an der Spitze Ihres Dokumentbaums sehen. Wenn Sie die Indexdatei (bzw. die Liste) erhalten, bedeutet das, daß Ihr Server bereits funktioniert. Sie können Ihren Web-Server auch direkt testen, indem Sie mit telnet eine Verbindung zu dem Port aufbauen, an dem httpd wartet. Dann verhalten Sie sich wie ein Web-Browser und simulieren das Protokoll HTTP: % telnet www.ora.com 80 Trying 198.112.208.13... Connected to amber.ora.com. Escape character is '^]'. HEAD / HTTP/1.0
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (9 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
HTTP/1.0 200 OK Date: Saturday, 20-Aug-94 20:33:28 GMT Server: NCSA/1.1 MIME-version: 1.0 Content-type: text/html Last-modified: Tuesday, 02-Aug-94 15:32:19 GMT Connection closed by foreign host. Daran sehen Sie, daß der Web-Server läuft, und erkennen zudem die Versionsnummer. telnet ist auch dann sehr hilfreich, wenn Sie Problemen mit MIME-Typen auf den Grund gehen wollen. Wenn Ihr Web-Server nicht auf die Anfrage des Web-Browsers antwortet und ein direkter telnet-Aufruf zum Server nicht die oben gezeigten Resultate liefert, sollten Sie sich die Zugangs- und Fehlerprotokolldateien ansehen (siehe Abschnitt 2.2.2). 2.1.9 Einrichten von Home-Pages Jedes Dokument auf Ihrem Web-Server kann das erste sein, das ein Benutzer des Servers zu sehen bekommt. Meist wird jedoch die Home-Page als Startpunkt dienen. Diese Datei heißt per Konvention home.html oder index.html. Sie können entweder ein einziges Dokument home.html einrichten oder auch mehrere (in verschiedenen Verzeichnissen) anlegen, je nachdem, ob Ihr Web-Server nur einen Zweck erfüllen soll oder von mehreren unabhängigen Personen oder Organisationen benutzt wird. Im nächsten Kapitel erfahren Sie ganz allgemein, wie Sie HTML-Dokumente erstellen können. Im folgenden wollen wir nur kurz die Konventionen für Home-Pages erwähnen. Beim Erstellen einer Home-Page sollten Sie ● Ihren Namen angeben. Dazu betten die meisten Leute am Ende ihrer Home-Page einen Querverweis auf ihre persönliche Web-Seite ein. Wir werden das in unserem HTML-Beispieldokument in Kapitel 3, Erstellen von Web-Dokumenten, und bei allen anderen HTML-Dokumenten ebenfalls tun. Damit können die Benutzer Fehler und Hinweise melden. ● Geben Sie auf Ihrer Home-Page das Erstellungs- oder Änderungsdatum an. Dies ist nicht nur für die Home-Page eine gute Idee, sondern für alle HTML-Dokumente. ● Beschreiben Sie den Zustand des Web-Servers: Ist er noch im Aufbau oder bereits stabil? Demgemäß können die Benutzer entscheiden, ob sie Ihnen E-Mail senden wollen, wenn Sie einen blinden Querverweis entdecken. Zu Beginn sollte der Web-Server als »Baustelle« gekennzeichnet sein. An der Spitze Ihres Dokumentbaums sollte sich eine einzige Home-Page befinden, damit der URL für Ihre Home-Page so kurz wie möglich wird. Der URL für die Home-Page von Digital Equipment Corporation lautet zum Beispiel http://www.digital.com/home.html Um diesen URL weiter so zu kürzen, daß man home.html nicht mehr angeben muß, können Sie entweder home.html auf index.html kopieren oder DirectoryIndex auf home.html setzen. Wenn Ihr Web-Server für mehrere Zwecke eingesetzt wird, werden Sie wahrscheinlich auch mehrere Home-Pages in verschiedenen Teilen des Dokumentbaums einrichten. In diesem Fall hängen die URLs der einzelnen Home-Pages davon ab, wo sie sich im Dokumentbaum befinden. Sie können die Datei index.html im Root-Verzeichnis auch manuell als HTML-Dokument erstellen, das eine strukturierte Beschreibung aller http://www.oreilly.de/german/freebooks/Html_buch/www02.html (10 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Home-Pages auf Ihrem System enthält. 2.1.10 Verwaltung des Dokumentbaums Wir gingen bisher davon aus, daß ausschließlich Sie den Dokumentbaum und seinen Inhalt verwalten. Jetzt wollen wir untersuchen, wie Sie Ihren HTML-Autoren die Pflege des Inhalts überlassen können. Dies kann entweder ein Projektteam oder auch eine Einzelperson erledigen. Wenn Ihr Web-Server von verschiedenen Organisationen benutzt wird oder mehrere Ziele verfolgt, können Sie jeder Organisation einen Teilbaum zuweisen, den diese selbst verwaltet. Sie müssen dazu keine der Anweisungen in den Konfigurationsdateien verändern. Um festzulegen, welche Benutzer des lokalen Systems die verschiedenen Teile des Dokumentbaums schreiben und verändern dürfen, vergeben Sie die UNIX-üblichen Berechtigungen für Dateien und Verzeichnisse. Falls eine der Organisationen mit Image-Maps, Gateways oder Zugangskontrolle arbeiten möchte, muß sie das mit Ihnen abstimmen. Sie können bestimmte Funktionen des Servers auch nur für eine einzelne Organisation aktivieren. Manchmal soll ein Web-Server Dokumente anbieten, die aus dem allgemeinen Benutzerkreis des Systems stammen. In solchen Fällen können einzelne Benutzer HTML-Dokumente aus einem speziellen Unterverzeichnis ihres Home-Verzeichnisses anbieten. Dies wird durch die Anweisung UserDir in der Konfigurationsdatei srm.conf gesteuert. Hat UserDir den Wert public_html, so bedient httpd Anfragen der Form http://server-name/~user-name/blah.html mit der Datei ~user-name/public_html/blah.html user-name ist dabei der Name eines Benutzers in /etc/passwd. Falls ~user-name/public_html nicht existiert, erhält die Person, die diesen URL anfordert, eine Fehlermeldung. Wenn Sie in der Anweisung UserDir den Wert DISABLE angeben, wird die Umsetzung von ~user-name nicht mehr durchgeführt. Der obige URL funktioniert dann nur, wenn es in DocumentRoot ein Verzeichnis mit dem Namen ~user-name (einschließlich Tilde) gibt. Bevor Sie diese Funktion des Web-Servers aktivieren, sollten Sie Kapitel 5, Zugangssteuerung und Sicherheitsaspekte im Web, lesen. Sie müssen die potentiellen Sicherheitslücken kennen und die Wahrscheinlichkeit minimieren, daß Ihre Benutzer unwissentlich Schlupflöcher öffnen. 2.1.11 Konventionen für den öffentlichen Zugang Wenn Sie Ihren Word Wide Web-Server für den öffentlichen Zugang einrichten, sollten Sie einige Konventionen beachten. Eine davon betrifft den Namen des Servers, den Sie bereits eingerichtet haben. Der Name des Servers entspricht standardmäßig zwar dem Ihres Rechners, dies ist jedoch nicht empfehlenswert. Gemäß Web-Konvention sollte der Name des Servers mit www beginnen. Wenn Ihr Rechner zeus.fredonia.edu heißt, sollten Sie Ihren Server www.fredonia.edu nennen. Es ist nützlich, einen CNAME-Alias einzurichten, der den Namen des Web-Servers auf einen tatsächlichen Rechnernamen umsetzt. Dies gibt Ihnen die Möglichkeit, mit Ihrem Web-Server auf ein anderes System umzuziehen, wenn sich Ihre Hardware-Ausstattung ändert oder die Systembelastung wächst. Bevor Sie Ihren Web-Server öffentlich zugänglich machen, sollten Sie einen E-Mail-Alias einrichten, damit die
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (11 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Benutzer Ihnen Kommentare, Hinweise auf blinde Verweise oder Anfragen zu neuen Verweisen senden können. Dieser Alias heißt laut Konvention Webmaster-Alias. Dieses Konzept entspricht dem postmaster oder newsmaster. Es ist sinnvoll, in der Home-Page des Servers einen Verweis auf webmaster@domain-name einzubetten. Der Webmaster ist in der Regel die Person, die sich um Installation, Konfiguration und Pflege des Servers kümmert. Manchmal fällt dies mit dem HTML-Anbieter zusammen, dies muß aber nicht so sein. Wenn es um den Inhalt geht, senden die Benutzer normalerweise E-Mail an die Person, die am Ende jeder HTML-Seite durch ihre Signatur als Eigentümer des Dokuments ausgewiesen wird. 2.1.12 Ankündigen Ihres Servers Sobald Ihr Server (hoffentlich mit nützlichen Inhalten) online verfügbar ist, sollten Sie Ihren Server in der Gemeinschaft der Web-Benutzer ankündigen. Es gibt zwar keine formale Registrierung, es haben sich jedoch einige Normen eingebürgert. Ihre Ankündigung sollte angeben, welche Organisation, Person oder Einrichtung den Web-Server betreibt, welche Inhalte er enthält, ob er bereits vollständig oder noch eine »Baustelle« ist. Außerdem sollten Sie den URL der Home-Page angeben. Sie können ● die Nachricht mit der Ankündigung an die Mailing-Liste www-announce@www0 .cern.ch senden; ● die Nachricht in der moderierten News-Gruppe comp.infosystems.announce veröffentlichen; ● die Nachricht an [email protected] senden. Damit erscheint Ihre Ankündigung auf der Liste des CERN mit World Wide Web-Servern und Ihr Server wird alphabetisch nach Kontinent, Land und Staat aufgeführt. ● die Nachricht im HTML-Format (geschrieben in der dritten Person) an whats-new@ ncsa.uiuc.edu senden. Damit erscheint Ihre Ankündigung auf der »What's New«-Seite von NCSA Mosaic. Achten Sie in den ersten drei Fällen darauf, daß sich Ihr URL optisch vom Rest der Nachricht abhebt. Meist steht er auf einer eigenen Zeile und wird nach oben und unten durch eine Leerzeile hervorgehoben. Betten Sie ihn nicht zusammen mit Satzzeichen in den Text der Ankündigung ein. Der Punkt am Ende eines Satzes könnte den URL verändern, wenn ihn die Benutzer mittels Markieren und Bearbeiten kopieren, um Ihren Web-Server auszuprobieren. Bevor Sie die Nachricht absenden, sollten Sie noch einmal überprüfen, daß Ihre Ankündigung den URL Ihrer Home-Page enthält und ganz sichergehen, daß dieser URL auch stimmt. Es ist sehr lästig, die Ankündigung zu ändern, sobald sie einmal im Internet unterwegs ist.
2.2 Betrieb eines Web-Servers Wenn Ihr Web-Server einmal zuverlässig läuft, benötigt er nur noch wenig Pflege. Die wichtigsten Dinge, die Sie regelmäßig erledigen werden, sind die Aktualisierung der HTML-Dokumente und das Austauschen der Protokolldateien. Außerdem werden Sie gelegentlich die zugrundeliegende Platten- und Verzeichnisstruktur verändern. Dabei sollten Sie darauf achten, existierende Verweise auf Ihren Web-Server nicht zu zerstören. 2.2.1 Aktualisierung von HTML-Dokumenten Wenn Sie HTML-Dokumente im Dokumentbaum aktualisieren wollen, müssen Sie Ihren httpd-Server nicht anhalten oder neu starten. Sie legen die neuen oder veränderten HTML-Dokumente einfach über den existierenden Online-Dokumentbaum. Manche Anbieter editieren ihre HTML-Dokumente, während der Web-Server im Internet online ist. Andere halten (abhängig von der verfügbaren Plattenkapazität) zwei Versionen parallel, jeweils eine zur Entwicklung und eine, auf die online zugegriffen werden kann. Wir bevorzugen eine Kopie mit relativen URLs (siehe nächsten Abschnitt), auf die nicht von außen zugegriffen werden kann. Diese Version können wir nach Belieben bearbeiten. Durch die relativen URLs können wir sie nach http://www.oreilly.de/german/freebooks/Html_buch/www02.html (12 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Belieben auf einer lokalen Festplatte (ohne Web-Server) testen. Sobald sich diese Offline-Version zur Veröffentlichung eignet, schnüren wir ein tar-Paket und kopieren dieses über die Online-Version. Eine andere Möglichkeit besteht darin, die Verzeichnisse einfach zu verschieben. Dazu müssen allerdings beide Versionen im gleichen Dateisystem liegen: % cd /usr/local/etc/httpd % mv htdocs htdocs.old && mv htdocs.new htdocs Der Verzeichnisname htdocs ist standardmäßig als DocumentRoot eingetragen. 2.2.2 Verwaltung der Protokolldateien Um zu verhindern, daß die Protokolldateien zu groß werden, und um die Auswertung der HTTP-Protokolle zu erleichtern, sollten Sie diese täglich oder wöchentlich verschieben oder archivieren. Es ist sinnvoll, diesen Vorgang zu automatisieren. Wenn Sie httpd unter inetd betreiben, ist das sehr einfach. Sie verschieben einfach die Protokolldateien mit mv, ohne daß dies Auswirkungen auf den Server hätte. Die nächste Anfrage eines Client öffnet dann einfach eine neue TransferLog-Datei. Wenn Sie httpd eigenständig betreiben, öffnet der Dämon httpd die Protokolldateien einmal beim Start und schließt sie erst, wenn httpd beendet wird. Zum Verschieben einer Protokolldatei sind folgende Schritte erforderlich: 1. Geben Sie der Protokolldatei mit mv einen neuen Namen. Der httpd-Server wird weiterhin in die gleiche Protokolldatei schreiben, obwohl sie jetzt anders heißt. 2. Starten Sie den httpd-Server neu (siehe Abschnitt 2.1.5.2). Schritt 2 bewirkt, daß alle httpd-Prozesse in die neue Protokolldatei schreiben. Die alte Protokolldatei können Sie jetzt wie gewünscht weiterverarbeiten. 2.2.3 Ändern der Verzeichnisstruktur Bei Problemen mit der Plattenkapazität oder einer veränderten Systemumgebung kann es passieren, daß Sie Teile Ihres Dokumentbaums verschieben müssen. In diesem Fall ist die Anweisung Alias sehr nützlich. Wir betrachten ein Beispiel zum Verteilen des Dokumentbaums auf zwei Festplatten. Wenn Ihr ursprünglicher Dokumentbaum den Standardpfad enthielt und drei verschiedene Organisationen Ihren Web-Server benutzen, sieht Ihre physikalische Verzeichnisstruktur vielleicht wie folgt aus: % ls /usr/local/etc/httpd/htdocs chemistry/ physics/ biology/ Um die Biologie-Fakultät auf eine neue Platte zu verschieben, die als /archive/1 eingehängt ist, sind folgende Schritte nötig: 1. Legen Sie das Verzeichnis biology auf /archive/1 an. 2. Kopieren Sie den aktuellen Verzeichnisbaum biology/ nach /archive/1/biology. 3. Fügen Sie in der Konfigurationsdatei srm.conf die Anweisung Alias ein:
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (13 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Alias /biology/ /archive/1/biology/ Starten Sie Ihren httpd-Server neu, falls Sie ihn eigenständig betreiben, damit die neue Alias-Anweisung wirksam werden kann. 4. Löschen Sie das Verzeichnis /biology. Dieses Vorgehen bewirkt, daß URLs der Form http://www.fredonia.edu/biology nach wie vor transparent funktionieren, obwohl sich die zugrundeliegende Verzeichnisstruktur geändert hat. 2.2.4 Spiegeln von Dokumenten und Servern Das Perl-Skript htget überträgt im nicht interaktiven Betrieb HTML-Dokumente von einem Web-Server. Damit können Sie ein einzelnes Dokument holen oder den Verzeichnisbaum eines anderen Rechners teilweise oder vollständig spiegeln (duplizieren). Doch weshalb sollten Sie den Baum duplizieren wollen? ● Arbeiten Sie sehr häufig mit einem fernen Server, der viele Graphiken enthält oder auf den Sie über eine langsame Verbindung zugreifen? Es beschleunigt Ihren Server, wenn Sie das HTML-Dokument und die darin enthaltenen Graphiken vorab holen (möglichst im Hintergrund oder nachts, wenn das Netz schneller ist). ● Wenn Ihr Server stark belastet ist, können andere Server dessen HTML-Dokumente spiegeln und damit die Belastung gleichmäßiger verteilen. ● Vielleicht brauchen Sie eine einfache und schnelle Möglichkeit, von der UNIX-Kommandozeile oder einem nicht interaktiven Programm (z.B. einem Shell-Skript oder einem cron-Auftrag) auf ein HTML-Dokument zuzugreifen. htget kann das Dokument auf eine Datei oder auf die Standardausgabe schreiben. htget stammt von Oscar Nierstrasz und ist im Archiv zu diesem Buch (siehe Vorwort) enthalten. In http://cui_www.unige.ch/ftp/PUBLIC/oscar/scripts/README.html finden Sie unter Umständen eine neuere Version. htget erkennt mehrere Optionen. Da diese sehr unterschiedliche Funktionen auslösen, müssen Sie wissen, welche Option Sie benötigen: ● Ohne Option kopiert htget die angegebene HTML-Datei in das aktuelle Verzeichnis:
●
●
% htget http://nearget.gnn.com/mkt/travel/center.html htget: created center.html (2203 bytes) Die Option -s schreibt die Datei auf die Standardausgabe. Mit folgendem Aufruf können Sie z.B. ein HTML-Dokument durchsuchen: % htget -s http://nearget.gnn.com/mkt/travel/center.html | grep Thailand Die Option -abs wandelt alle relativen URLs in absolute URLs um. Wenn Sie eine Datei holen, die relative Verweise enthält, bewirkt diese Option, daß Sie auch in Ihrer lokalen Kopie alle Querverweise benutzen können. Die folgenden beiden Beispiele zeigen das gleiche HTML-Dokument, nämlich http://tbl.com/tbl/TBLhome.html. Diese Zeilen kopiert htget beim Aufruf ohne Optionen:
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (14 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Hier sehen Sie die gleichen Zeilen beim Aufruf mit der Option -abs: ● Die Option -r schließlich kopiert rekursiv. htget -r legt Unterverzeichnisse im aktuellen Verzeichnis an und holt auch Graphiken und andere Dateien. Dadurch wird der Dokumentbaum auf dem fernen Server neu angelegt, so daß Sie ihn lokal benutzen können (entweder direkt mit einem Web-Browser oder als Dokumentbaum eines Servers). Das Skript benutzt einige interessante Tricks, um sicherzustellen, daß Ihre lokale Kopie des Dokumentbaums korrekt ist: ❍ Es holt die Datei und alle Dateien, die von diesem URL aus erreichbar sind, nur dann, wenn alle Dateien in der gleichen Verzeichnishierarchie auf dem gleichen Rechner liegen. Dadurch wird vermieden, daß Sie einen viel größeren Baum kopieren, als Sie eigentlich erwarten. ❍ htget konvertiert bei der Übertragung einer Datei alle absoluten URLs in anderen Dokumenten, die auf diese Datei zeigen, in relative URLs. Dadurch ist gewährleistet, daß Sie immer die lokale Kopie einer Datei benutzen, sofern dies möglich ist. ❍ Wenn htget eine Datei nicht holt (weil sie in einem anderen Baum liegt), konvertiert es relative URLs in anderen Dokumenten, die auf diese Datei zeigen, in absolute URLs (einschließlich Name des fernen Rechners und Portnummer). Dadurch ist gewährleistet, daß Sie immer auf Dateien zugreifen können, die nicht kopiert wurden. htget arbeitet nur mit http-URLs. Es gibt zwar Vorbereitungen für den ftp- und gopher-Code, diese Funktionalität ist jedoch nicht implementiert. Bevor Sie jetzt alle erreichbaren HTML-Dateien kopieren und benutzen :-), sollten Sie an die Copyright-Fragen denken, die mit dem Kopieren fremder Arbeiten verbunden sind. Sie sollten das Material anderer Leute nur mit deren Zustimmung holen, selbst wenn sie es kostenlos zur Verfügung stellen. 2.2.5 HTTP-Protokolldateien und deren Auswertung Der Web-Server legt zwei Protokolldateien an, nämlich das Fehlerprotokoll Error und das Übertragungsprotokoll Transfer. Sie befinden sich standardmäßig in den Dateien logs/error_log und logs/access_log im Verzeichnis ServerRoot. Mit den Anweisungen ErrorLog und TransferLog in httpd.conf können Sie das Verzeichnis oder den Dateinamen ändern (siehe Anhang C, Anweisungen in httpd.conf). Nach der Ankündigung Ihres Web-Servers wollen Sie sicher wissen, von wem und zu welchen Zwecken er benutzt wird. Bei der Auswertung der verschiedenen Aktivitäten auf Ihrem Web-Server helfen Ihnen einige Tools. Jedesmal, wenn jemand eine Datei von Ihrem Web-Server anfordert, protokolliert httpd Rechnernamen, Zeit und Datum sowie den angeforderten URL. Eine typische Protokolldatei sieht wie folgt aus: topcat.ug.eds.com - - [29/Jul/1994:04:07:11 -0700] "GET /Update/940620.html HTTP/1.0" 200 4327 cathy.ijs.si - - [29/Jul/1994:04:07:19 -0700] "GET/info.home.html HTTP/1.0" 200 2241 cathy.ijs.si - - [29/Jul/1994:04:07:45 -0700] "GET/master-subject.html HTTP/1.0" 200 9348 topcat.ug.eds.com - - [29/Jul/1994:04:07:47 -0700] "GET/whats-new.html HTTP/1.0" 200 28123
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (15 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
144.122.171.70 - - [29/Jul/1994:04:08:36 -0700] "GET / HTTP/1.0" 200 2153 cathy.ijs.si - - [29/Jul/1994:04:08:40 -0700] "GET /key-vax-index.html HTTP/1.0" 200 77847 ceng.metu.edu.tr - - [29/Jul/1994:04:08:55 -0700] "GET/pics/dec-logo.gif HTTP/1.0" 200 15 36 silver.fe.msk.ru - - [29/Jul/1994:04:10:06 -0700] "GET /demo.html HTTP/1.0" 200 786 Das Format der Ausgaben in dieser Protokolldatei heißt Standard-Protokollformat, weil es von den meisten Web-Servern erzeugt wird. Das Zugangsprotokoll besteht aus folgenden Teilen: host rfc931 authuser date-time request status bytes Die einzelnen Einträge haben dabei folgende Bedeutung: host Name des Rechners RFC931 Falls Benutzernamen nach RFC 931 aktiviert sind, enthält es diesen Namen, andernfalls ein Minuszeichen »-«. Der Eintrag lautet normalerweise »-«, falls httpd ohne IdentityCheck konfiguriert ist (was standardmäßig der Fall ist). Ist IdentityCheck eingeschaltet, versucht httpd über das Protokoll RFC 931, Verbindung zu einem RFC 931-kompatiblen Dämon auf dem Rechner aufzunehmen, auf dem der Web-Browser läuft, um den Namen des jeweiligen Benutzers zu ermitteln. Das ganze Verfahren hängt davon ab, ob auf den Rechnern der Benutzer ein Identitätsdämon konfiguriert ist (was meistens nicht der Fall ist). authuser Falls aktiviert, steht hier der gemäß HTTP/1.0 authentisierte Benutzername, andernfalls ein Minuszeichen »-«. Normalerweise steht hier »-«, es sei denn, das Verzeichnis mit der Datei, auf die zugegriffen wird, ist durch Benutzer-Authentisierung geschützt. In diesem Fall enthält authuser den autorisierten Benutzernamen, mit dem auf die Datei zugegriffen wurde. date-time Ortszeit der Anfrage. Am Ende steht die Verschiebung bezüglich GMT. request Die Anfrage, die vom Client geschickt wurde. status Der Statuscode dieser Transaktion gemäß HTTP/1.0. bytes Die Anzahl der in dieser Transaktion übertragenen Bytes (ohne Header). Trifft dies nicht zu, steht hier ein Minuszeichen »-«. Die aktuellen CERN- und Plexus-Web-Server unterstützen das Standard-Protokollformat, ebenso viele Gopher-Server. Das erleichtert die Entwicklung von Auswertungsprogrammen wie getstats, wwwstat oder wusage. Da diese Programme nicht im NCSA-HTTP-Paket enthalten sind, müssen Sie sich selbst eines besorgen. Im folgenden finden Sie eine Zusammenfassung dieser Werkzeuge: 2.2.5.1 getstats
getstats ist ein C-Programm, das von einer Monatsübersicht bis zu stündlichen Listings verschiedene Arten von http://www.oreilly.de/german/freebooks/Html_buch/www02.html (16 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Statistiken über einen Web-Server erzeugt. Sie können das Protokoll auf Domänen, Anforderung bestimmter Seiten oder einen Verzeichnisbaum einschränken. Es funktioniert bei jedem Web-Server, der das Standard-Protokollformat erzeugt. Es gibt sogar eine HTML-Formularschnittstelle für getstats. Richten Sie Ihren Web-Browser auf http://www.eit.com/software/getstats/getstats.html Autor: getstats wurde von Kevin Hughes, [email protected], bei Enterprise Information Technology entwickelt. 2.2.5.2 wwwstat
wwwstat wurde in Perl geschrieben. wwwstat ändert keine Dateien und legt in den Server-Verzeichnissen auch keine Dateien an. Sie können die Protokollauswertung daher jemandem ohne Root-Berechtigung übertragen. Richten Sie Ihren Web-Browser einfach auf http://www.ics.uci.edu/WebSoft/wwwstat Autor: wwwstat wurde von Roy Fielding, [email protected], am Department of Information and Computer Science der University of California, Irvine entwickelt. Ein Beispiel für die Fähigkeiten von wwwstat finden Sie unter folgendem URL: http://www.ics.uci.edu/Admin/wwwstats.html wwwstat enthält ein Zusatzprogramm namens gwstat, das die Übersichten von wwwstat in eine graphische Darstellung umwandelt. In Abbildung 2-1 sehen Sie, wie diese Tools den Verkehr auf einem Web-Server visualieren. Da diese graphischen Zusammenfassungen im GIF-Format erzeugt werden, können sie in HTML-Dokumente eingebettet werden.
Abb. 2-1. Zusammenfassung des stündlichen Verkehrs durch gwstat. 2.2.5.3 wusage
wusage ist ein C-Programm, das wöchentliche Statistiken über einen Web-Server erstellt und eine graphische Darstellung der Ergebnisse im GIF-Format erzeugt. Tortendiagramme mit den einzelnen Domänen spiegeln die geographische Verteilung der Benutzer wider. Ein Diagramm, das die Zahl der Zugriffe an einer Zeitachse aufträgt, zeigt die Auslastung des Servers. Es gibt auch eine kleinere Variante dieses Diagramms, die für den Einsatz als Icon auf der Home-Page gedacht ist und mit der Statistik-Seite verknüpft wird. Zusätzlich erzeugt das Programm Textversionen mit den gleichen Informationen sowie Listen mit den zehn häufigsten Rechnern und zehn URLs, die am häufigsten angefordert wurden. Diese Angaben werden für jede Woche einzeln im HTML-Format ausgegeben. Richten Sie Ihren Web-Browser auf http://siva.cshl.org/wusage.html Autor: wusage wurde von Thomas Boutell, [email protected], an den Cold Spring Harbor Labs in Cold Spring Harbor, New York entwickelt. In Abbildung 2-2 sehen Sie ein Beispiel für die Fähigkeiten von wusage. http://www.oreilly.de/german/freebooks/Html_buch/www02.html (17 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Abb. 2-2. Ein von wusage erstelltes Auslastungsdiagramm.
2.3 Aktivieren zusätzlicher Funktionen Sobald Ihr Web-Server im Prinzip läuft, können Sie bei Bedarf einige zusätzliche Funktionen aktivieren. So können Sie z.B. Unterstützung für neue MIME-Typen hinzufügen oder die Art und Weise erweitern, auf die der Web-Server existierende Typen erkennt. Es sind auch include-Anweisungen möglich, bei denen der Web-Server automatisch das Datum der letzten Änderung oder den Inhalt einer Datei in das HTML-Dokument einfügt, bevor er es an den Benutzer sendet. Sie können auch die Darstellung von Verzeichnissen anpassen. 2.3.1 Zusätzliche MIME-Typen Beim Betrieb Ihres Web-Servers stellen Sie vielleicht fest, daß einige Dateitypen nicht unterstützt werden. Wie wir bereits erwähnten, senden sich Web-Browser und -Server gegenseitig MIME-Typen gemäß HTTP/1.0. Sie können die Unterstützung neuer MIME-Typen (oder neue Möglichkeiten zur Erkennung existierender Typen) in Ihren Server integrieren. Sie sollten sich dabei aber darüber im klaren sein, daß das Hinzufügen neuer Typen auch die entsprechende Unterstützung auf Seite der Benutzer voraussetzt. Auf der Client-Seite wissen HTTP V1.0-kompatible Web-Browser, wie sie die MIME-Typen verwenden müssen, die der Web-Server zurückschickt: Sie entscheiden anhand der Konfigurationsdatei .mailcap, welche externen Abspiel- und Anzeigeprogramme sie für die empfangenen Datentypen aufrufen müssen. In der Praxis läuft das wie folgt ab: Wenn der Benutzer eine Datei anfordert, deren Name auf .ps endet, sendet der Web-Server die Datei an den Web-Browser und teilt mit MIME-Methoden mit, daß es sich dabei um eine PostScript-Datei handelt. Der Web-Browser speichert die PostScript-Datei in einem lokalen Temporärverzeichnis und sucht dann in der Datei .mailcap das Kommando zur Darstellung von PostScript-Dateien. Diesen PostScript-Viewer ruft er auf und übergibt ihm die lokale Kopie der PostScript-Datei. Genauso verfährt der Web-Browser mit Video- und Audiodateien und verschiedenen Bildtypen. Auf der Server-Seite weiß der Web-Server, wie er Dateitypen und Namensendungen auf die Standard-Datentypen von MIME abbilden muß. Dies wird über die Konfigurationsdatei mime.types gesteuert. Diese Datei genügt für die meisten Anwendungen. Wenn Sie jedoch für Ihren Web-Server spezielle MIME-Erweiterungen hinzufügen wollen, können Sie das mit den folgenden Anweisungen in der Konfigurationsdatei srm.conf tun: AddType Damit können Sie die Definitionen für MIME-Typen in der Konfigurationsdatei mime.types überschreiben. AddEncoding Diese Anweisung fügt MIME-Encoding-Anweisungen für das Client/Server-Protokoll hinzu. DefaultType Diese Anweisung definiert den MIME-Typ, der standardmäßig an den Web-Browser zurückgeliefert werden soll. Vollständige Definitionen dieser Anweisungen finden Sie in Anhang D, Anweisungen in srm.conf. Ein gutes Beispiel für den Einsatz der Anweisung AddType ist die Erweiterung der Fähigkeiten von httpd zur
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (18 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Erkennung von HTML-Dokumenten. httpd entscheidet anhand der folgenden beiden Bedingungen, ob es sich um eine HTML-Datei handelt: ❍ In der ersten Zeile der Datei steht der Tag . ❍ Der Dateiname endet auf .html. Die Erweiterung .html wird deshalb benutzt, weil die Konfigurationsdatei mime.types standardmäßig folgenden Eintrag enthält: text/html html Angenommen, Sie wollen HTML-Dokumente anbieten, die auf einem PC mit MS-DOS erstellt wurden. Die Namen solcher Dateien enden wegen der 8+3-Einschränkung für Dateinamen meist auf .htm. Sie können httpd beibringen, daß alle Dateien mit der Erweiterung .htm als HTML klassifiziert werden sollen, indem Sie die Definition eines neuen MIME-Typs einfügen: AddType text/html htm Mit MIME-Typinformationen können Sie auch die Liste der Dokumenttypen erweitern, die Web-Browser verarbeiten können. Wenn Sie zum Beispiel MIME-Typinformationen für WordPerfect-Dokumente hinzufügen, können Sie WordPerfect-Dokumente (im Original-Format) anbieten und Web-Browser unter Windows so konfigurieren, daß sie WordPerfect starten, wenn über einen URL WordPerfect-Dokumente geladen werden. 2.3.2 Einbetten durch den Server Das Einbetten durch den Server ähnelt den include-Anweisungen, die es in allen Programmiersprachen gibt. Damit können Sie jedoch nicht nur den Inhalt von Dateien einbinden, sondern auch Umgebungsvariablen. Dies ist eine einfache Möglichkeit, Datum, Dokumentgröße, Name der Autorin oder beliebige HTML-Anweisungen konsistent in mehrere HTML-Dokumente einzubetten. In Abschnitt 3.1.10 finden Sie ein Beispiel dafür. Dort erfahren Sie auch, wie die Einbettung in HTML funktioniert. Abschnitt 5.2.5 enthält Hinweise zu den Auswirkungen von include-Anweisungen auf die Systemsicherheit. Die Fähigkeit zur Einbindung (server-side includes) ist standardmäßig im NCSA httpd-Server nicht aktiviert. Sie können sie für den gesamten Server oder für einzelne Verzeichnisse aktivieren, indem Sie in access.conf oder .htaccess bei der Anweisung Options entweder Includes oder IncludesNoExec angeben (in Kapitel 5, Zugangssteuerung und Sicherheitsaspekte im Web, erfahren Sie mehr über diese Dateien): Options IncludesNoExec Die Option IncludesNoExec ist sicherer als Includes (weshalb, erfahren Sie in Abschnitt 5.2.5). Sie müssen außerdem angeben, in welche Dateien die includes eingefügt werden sollen. Wie Sie das tun, hängt davon ab, wie viele Dateien Sie verarbeiten wollen. Wenn Sie die server-side includes in fast allen Dateien benutzen wollen, fügen Sie in der Konfigurationsdatei srm.conf eine einzige Anweisung ein: AddType text/x-server-parsed-html .html Da die Einbettungen CPU-Zeit kosten, werden Sie sie vermutlich nicht für alle Dateien nutzen. Wenn Sie die Einbettungen nur selten verwenden möchten, sollten Sie (statt obiger Zeile) eine neue Dateinamenerweiterung definieren. Diese kennzeichnet Dateien, die bearbeitet werden müssen. Ändern Sie die Konfigurationsdatei srm.conf wie folgt:
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (19 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
AddType text/html shtml AddType text/x-server-parsed-html .shtml Per Konvention erhalten Dateien, die vom Server bearbeitet werden müssen, die Erweiterung .shtml. Durch die erste Anweisung erfährt httpd, daß Dateien mit der Erweiterung .shtml als HTML-Dokumente behandelt werden sollen. Die zweite Anweisung bewirkt, daß nur Dateien mit der Erweiterung .shtml bezüglich möglicher Einbettungen verarbeitet werden. Beim Einrichten von Verweisen müssen Sie darauf achten, welche Dateien anstelle von .html die Endung .shtml haben. 2.3.3 Automatisches Indizieren von Verzeichnissen Zeigt ein URL nicht auf eine Datei, sondern auf ein Verzeichnis, so versucht der Web-Server zuerst, die Datei index.html im angegebenen Verzeichnis zurückzuliefern.(4) Falls index.html nicht existiert, kann der Web-Server automatisch HTML-Text erzeugen, der den Inhalt des Verzeichnisses beschreibt. Dieser Vorgang heißt automatic directory indexing. Abbildung 2-3 zeigt die Darstellung eines solchen automatisch erzeugten Verzeichnisindex in Mosaic.
Abb. 2-3. Mosaic mit einem automatisch erzeugten Verzeichnisindex. Sie können das automatische Erzeugen von Verzeichnisindizes in der globalen ACF (access.conf) oder in den verzeichnisspezifischen ACFs mit der Anweisung Options steuern. Standardmäßig ist dies für den gesamten Server aktiviert. Ist diese Funktion für ein bestimmtes Verzeichnis deaktiviert und existiert in diesem Verzeichnis keine Datei index.html, so liefert der Web-Server eine Fehlermeldung zurück, sobald ein Benutzer auf den entsprechenden URL zugreifen will. Es gibt zwei Arten automatisch generierter Verzeichnisindizes, nämlich normale und aufwendige (plain bzw. fancy). Der jeweils benutzte Typ kann für den gesamten Server oder für einzelne Verzeichnisse in srm.conf eingestellt werden. Standardmäßig ist in srm.conf die aufwendige Variante mittels FancyIndexing für den gesamten Server aktiviert. Bei der normalen Indizierung werden die Dateinamen in einer einzigen Spalte aufgelistet entsprechend dem Shell-Kommando ls -1 (hier steht die Ziffer Eins, kein kleines L). Der Benutzer kann auf den Dateinamen klicken, um die Datei zu holen. Bei der aufwendigen Indizierung werden neben jedem Dateinamen das zugehörige Icon, die Größe der Datei und optional eine Beschreibung des Dateityps angezeigt. Sie können festlegen, welches Symbol für die einzelnen Dateitypen angezeigt werden soll. Sound-Dateien (die durch den MIME-Typ audio/ identifiziert werden) erhalten standardmäßig das Sound-Icon. Das werden Sie vermutlich auch nicht ändern, Sie könnten aber ein anderes Sound-Icon definieren oder ein Icon für einen Typ ohne Standard-Icon festlegen. Gibt es zu einem Dateinamen ein zugehöriges Icon, so wird eine Referenz auf dieses Icon als Inline-Graphik in den HTML-Code eingebettet, den der Web-Server automatisch erzeugt. Die Icons sind weder Bestandteil der Web-Browser noch in diese eingebettet. Sie werden wie jedes andere Bild behandelt, das Ihr Web-Server anbietet. Die optionale Beschreibung des Dateityps beim aufwendigen Verzeichnisindex ist bei Web-Browsern ohne graphische Fähigkeiten sehr nützlich.
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (20 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Bei der aufwendigen Indizierung können Sie auch festlegen, welche Informationen vor und nach einem Verzeichnisindex ausgegeben werden (header bzw. trailer). Vor dem eigentlichen Verzeichniseintrag wird standardmäßig die Datei HEADER angezeigt. Nach dem Listing erscheint standardmäßig der Inhalt der Datei README. Diese Dateien können einfachen Text oder HTML-Anweisungen enthalten. Sie können dem Web-Server (mit der Anweisung IndexIgnore) auch mitteilen, daß er bestimmte Dateinamen bei der automatischen Erzeugung eines Verzeichnisindex ignorieren soll. Standardmäßig werden HEADER und README ignoriert und erscheinen daher nicht in den automatischen Listings. Die automatische Indizierung von Verzeichnissen ist sehr nützlich, wenn Ihr Web-Dokumentbaum gleichzeitig auch die Verzeichnishierarchie für Ihr FTP-Archiv darstellt. Web-Browser können die Verzeichnisstruktur Ihres FTP-Archivs durchlaufen und mittels FTP Dateien holen. Ist die aufwendige Indizierung aktiviert, so können Sie die Informationen Ihres FTP-Archivs optisch aufpeppen, obwohl Ihr FTP-Archiv gar keine HTML-Dokumente enthält. Diese Bereicherung funktioniert nur, wenn Ihr FTP-Archiv mit einem Web-Server betrachtet wird, und nicht, wenn ein Web-Client mit FTP direkt auf das FTP-Archiv zugreift. Die automatische Indizierung von Verzeichnissen wird durch Anweisungen in der Konfigurationsdatei srm.conf gesteuert. In der folgenden Zusammenfassung finden Sie die entsprechenden Anweisungen: AddIconType Legt die Zuordnung von Icons zu Dokumenten entsprechend der Zuordnung von MIME-Typen fest. AddIcon Legt die Zuordnung von Icons zu Dokumenten entsprechend Dateitypen und -namen fest. DefaultIcon Legt fest, welches Icon benutzt wird, wenn einer Datei kein Icon automatisch zugeordnet werden kann. AddDescription Legt die Beschreibung fest, die einem bestimmten Dateityp zugeordnet wird. IndexOptions Legt fest, ob Icons als Querverweise behandelt werden; ob HTML-Dokumente nach Dokumenttiteln durchsucht werden, die als beschreibender Text dienen und wie weit Dateieigenschaften unterdrückt werden. Eine ausführliche Beschreibung aller Anweisungen in srm.conf finden Sie in Anhang D, Anweisungen in srm.conf. Die Standardeinstellungen für die automatische Indizierung von Verzeichnissen lauten: AddIconByType (TXT,/icons/text.xbm) text/* AddIconByType (IMG,/icons/image.xbm) image/* AddIconByType (SND,/icons/sound.xbm) audio/* AddIcon /icons/movie.xbm .mpg .qt AddIcon /icons/binary.xbm .bin AddIcon /icons/back.xbm .. AddIcon /icons/menu.xbm ^^DIRECTORY^^ AddIcon /icons/blank.xbm ^^BLANKICON^^ DefaultIcon /icons/unknown.xbm ReadmeName README HeaderName HEADER IndexIgnore */.??* *~ *# */HEADER* */README*
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (21 von 22) [11.04.2001 17:15:00]
HTML und das World Wide Web
Die AddIcon-Zeile mit ^^Directory^^ definiert das Icon, das Verzeichnisse in einem Verzeichnis-Listing kennzeichnet. Das Icon ^^BLANKICON^^ dient nur dazu, Platz im Verzeichnis-Listing einzunehmen, damit der Rest der Ausgabe tabellenartig ausgerichtet ist, wenn der Browser den HTML-Code verarbeitet.
2.4 Zusammenfassung der Installation Sie betreiben jetzt einen funktionierenden Web-Server. Sie haben sich das Paket mit dem NCSA-Web-Server besorgt, es für Ihre Umgebung konfiguriert, installiert, gestartet und getestet. Sie verfügen über eine Home-Page mit genügend Lesestoff, so daß Ihre Ankündigung in der Web-Gemeinschaft gerechtfertigt war. Die Benutzer greifen auf Ihren Server zu, während Sie Protokolldateien erzeugen und diese auswerten, um Auslastung und Zugriffstrends zu ermitteln. Herzlichen Glückwunsch Sie sind jetzt Webmaster!
Fußnoten: (1) Falls Sie httpd aus der Source erzeugt haben, können Sie die Konfiguration des HTTP-Servers auch über die Quelldatei src/httpd.h steuern und anschließend neu kompilieren. Bequemer ist es jedoch, wenn Sie Ihren NCSA-Web-Server über die Konfigurationsdateien steuern. (2) logs/httpd.pid ist dabei die Standardeinstellung für Pfad und Dateinamen und wird über PidFile in httpd.conf festgelegt. Der Pfad wird relativ zum Verzeichnis ServerRoot angegeben. (3) index.html ist der standardmäßig benutzte Dateiname. Der tatsächlich benutzte Name kann über die Anweisung DirectoryIndex in der Konfigurationsdatei httpd.conf festgelegt werden. (4) bzw. den Dateinamen, der in der Konfigurationsdatei srm.conf in der Anweisung DirectoryIndex angegeben ist. Inhaltsverzeichnis
Kapitel 1
Kapitel 3
http://www.oreilly.de/german/freebooks/Html_buch/www02.html (22 von 22) [11.04.2001 17:15:00]
3 Erstellen von Web-Dokumenten Jeder kann Web-Dokumente schreiben, Kenntnisse über die Verwaltung des Servers sind dazu nicht erforderlich. Im Normalfall werden Web-Dokumente nicht von den Leuten erstellt, die den Web-Server installieren und betreiben. Web-Dokumente werden in HTML geschrieben, der HyperText Markup Language. Die meisten Web-Browser können HTML-Anweisungen ohne Server direkt aus einer Datei einlesen. Das bedeutet, daß Sie HTML-Code schreiben und testen können, ohne das Dokument während der Entwicklungszeit öffentlich verfügbar machen oder einen eigenen Server einrichten zu müssen. In diesem Kapitel behandeln wir HTML 2.0 einschließlich der Einrichtung von Querverweisen auf andere Dokumente und Dienste. Anschließend beschreiben wir dann einige der verfügbaren Werkzeuge, die das Anlegen von Web-Dokumenten erleichtern. Außerdem zeigen wir in diesem Kapitel, wie Sie mit clickable image maps interaktive Bilder erstellen. Damit können Sie Querverweise erzeugen, die nicht durch die Wörter eines Dokuments ausgelöst werden, sondern durch bestimmte Teilbereiche in einem Bild. Im letzten Abschnitt gehen wir schließlich noch auf die Erweiterungen in HTML 3.0 ein.
3.1 Überblick über HTML Ein HTML-Dokument besteht aus einer Textdatei im ASCII-Format, die eingebettete HTML-Tags enthält. Auf einem UNIX-Server erhalten die Dokumente üblicherweise die Namensendung .html. HTML-Tags kennzeichnen die Struktur des Dokuments sowie die (hervorgehobenen) Querverweise mit den zugehörigen URLs. HTML legt die Struktur des Dokuments fest und macht Vorschläge für dessen Layout. Die Darstellung des Dokuments am Bildschirm wird durch die Möglichkeiten des Web-Browsers festgelegt. Mit HTML können Sie folgende Bestandteile des Dokuments kennzeichnen: ● Titel des Dokuments ● Die hierarchische Struktur des Dokuments mit Überschriften und Abschnitten ● (Verschachtelte) Listen mit Aufzählungszeichen oder Nummern ● Ankerpunkte für eingefügte Graphiken ● Betonung einzelner Schlüsselwörter oder Sätze
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (1 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web ● ●
Vorformatierte Bereiche des Dokuments Querverweise und die zugehörigen URLs
Die folgenden Eigenschaften können Sie mit HTML nicht steuern: ● Die Schriftart für bestimmte Dokumentteile ● Die Größe einer bestimmten Schrift ● Höhe oder Breite der Bildschirmdarstellung ● Zentrierte Darstellung, Wortabstände oder Zeilenumbrüche (Ausnahme: vorformatierter Text) ● Farben für Vorder- und Hintergrund oder Hervorhebungen Diese Elemente werden vom Browser bestimmt, der wiederum dem Benutzer Einstellungsmöglichkeiten bieten kann. 3.1.1 Automatischer Textfluß und automatischer Umbruch Der Absatz ist das einfachste Element eines HTML-Dokuments. Der Web-Browser ordnet den gesamten Inhalt eines Absatzes von links nach rechts und von oben nach unten innerhalb des jeweiligen Fensters oder Bildschirms an. Dieser Vorgang heißt automatischer Textfluß (autoflowing). Die Zeilenumbrüche des Absatzes im HTML-Dokument haben keinen Einfluß auf die Darstellung im Web-Browser. Der Web-Browser bricht alles in die nächste Zeile um, was nicht mehr in die aktuelle Zeile paßt. Ein Absatz, der z.B. in einem 20 cm breiten Fenster sechs Zeilen lang ist, wird plötzlich in 12 Zeilen umbrochen, wenn der Benutzer die Breite des Fensters für den Web-Browser halbiert. Dieser Vorgang heißt automatischer Umbruch (autowrapping). Ihr Dokument wird sowohl von graphischen als auch von zeichenorientierten Web-Browsern dargestellt werden. Bei graphischen Browsern gibt es zudem unterschiedliche Bildschirmauflösungen. Es ist daher nicht gesagt, daß zwei Browser eine bestimmte Zeile an der gleichen Stelle umbrechen werden. Sie sollten immer daran denken, daß im Web alles linksbündig ist und von oben nach unten fließt. 3.1.2 Syntax der HTML-Tags HTML-Tags werden mit Kleiner- () geklammert. Manche Tags können einzeln stehen. Solche Tags heißen Standalone-Tags. Die Syntax ist einfach: Das häufigste standalone-Tag ist
am Ende eines Absatzes. Andere Tags werden paarweise benutzt. Das erste Tag weist den Web-Browser an, die Tag-Funktion einzuschalten, mit dem zweiten Tag wird sie wieder beendet. Das Tag am Ende sieht aus wie der am Anfang, erhält jedoch zusätzlich einen führenden Schrägstrich. Die Syntax lautet: object Das Tag legt die Funktion fest, die auf das Objekt angewandt wird. Wenn Sie z.B. einen Satz besonders betonen wollen, klammern sie ihn einfach mit dem Tag-Paar <EM> ein: <EM>betonter Text Viele der standalone-Tags und der Anfangs-Tags in einem Paar können Optionen enthalten. Die vollständige Syntax lautet daher: Wenn Sie HTML-Dokumente manuell mit einem Texteditor erstellen, wird es Ihnen sicher passieren, daß Sie das http://www.oreilly.de/german/freebooks/Html_buch/www03.html (2 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
End-Tag weglassen oder den Schrägstrich darin vergessen. Machen Sie sich darum jedoch keine Sorgen: Sie merken sofort, wenn das passiert, außerdem ist es schnell korrigiert. 3.1.3 Richtlinien für den Aufbau eines Dokuments Wir betrachten jetzt die drei Tag-Paare, die die höchste Strukturierungsstufe in einem HTML-Dokument festlegen: komplettes HTML-Dokument Header-Informationen des Dokuments Rumpf des HTML-Dokuments Im folgenden sehen Sie das Gerüst eines HTML-Dokuments mit der vorgeschriebenen Verschachtelung dieser drei Tag-Paare: Header Rumpf und Inhalt Vergessen Sie nicht, daß Anordnung und Layout (Einrückungen und Zeilenumbrüche) für Web-Browser keine Bedeutung haben. Sie können Ihr HTML-Dokument daher nach eigenem Geschmack formatieren. 3.1.4 Beispiel für ein HTML-Dokument Im folgenden sehen Sie ein Beispiel für ein HTML-Gerüst, das in meinem Home-Verzeichnis liegt. Ich öffne es beim Erzeugen eines neuen HTML-Dokuments als Ausgangspunkt mit einem Texteditor. Dieses Gerüst könnte zwar noch etwas einfacher sein, aber löschen kann ich ja immer noch. Das Beispiel für ein HTML-Dokument sieht wie folgt aus: <TITLE>Sample HTML Document Sample HTML Document <EM>To demonstrate HTML style
Hello World.
Creation Date: <EM>Sat Apr 9, 1994
DRJ http://www.oreilly.de/german/freebooks/Html_buch/www03.html (3 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
In Abbildung 3-1 sehen Sie, wie dieses HTML-Beispiel in Mosaic dargestellt wird.
Abb. 3-1. Mosaic mit der Darstellung des HTML-Beispieldokuments. Wir wollen uns der Reihe nach die darin benutzten neuen Tags ansehen: <TITLE>text-phrase Das Tag-Paar <TITLE> kommt einmal im Dokument vor und enthält den Namen des Dokuments. Es sollte am Anfang des Dokuments innerhalb des -Abschnitts erscheinen. Viele Web-Browser zeigen den Dokumentnamen in einem eigenen Bereich an. Dieser Dokumentname erscheint auch, wenn eine Benutzerin das Dokument in ihre »Hotlist« oder die Liste der Lesezeichen (bookmarks) einträgt. Der Dokumentname ist zwar nicht zwingend erforderlich, sollte jedoch in jedem HTML-Dokument stehen. Dies ist eine spezielle Anwendung des Standalone-Tags zur Kennzeichnung der E-Mail-Adresse des Eigentümers dieses Dokuments. Ein Web-Browser zeigt diese Angaben zwar nicht an, kann sie aber verwenden, wenn der Benutzer dem Eigentümer des Dokuments E-Mail senden will. Später werden wir noch andere Einsatzmöglichkeiten des Tags beschreiben. Das Standalone-Tag fügt in den aktuellen Textfluß eine Graphik ein. Die Graphik wird über ihren URL gekennzeichnet. In Abschnitt 3.1.7 finden Sie weitere Hinweise über URLs, in Abschnitt 3.1.9 mehr über das Einfügen von Bildern. text-phrase Das Tag-Paar für Überschriften gibt eine Strukturebene Ihres Dokuments an. Es gibt sechs verschiedene Stufen von Überschriften, nämlich H1 bis H6. Überschriften werden genauso wie Absätze automatisch umbrochen, wenn der Text nicht in eine Zeile paßt. Tags für Überschriften wirken außerdem als Absatzgrenzen vor und nach der Überschrift. <EM>text Das Tag-Paar <EM> kennzeichnet eine Textstelle, die hervorgehoben darzustellen ist. Auf einem graphikfähigen Bildschirm kann der Text z.B. kursiv ausgegeben werden, auf einem zeichenorientierten Display dagegen unterstrichen.
Das Tag
beendet einen Absatz und bewirkt am Bildschirm eine Leerzeile nach dem Absatz. Zwei solcher Absatz-Tags bewirken nur eine einzelne Leerzeile. Das Tag (horizontal rule, waagrechte Linie) bewirkt, daß der Browser eine waagrechte Linie über den Bildschirm zieht. Damit lassen sich Seiten logisch untergliedern oder Formulare erzeugen. Es gibt kein Gegenstück für senkrechte Linien. text Das Tag-Paar kennzeichnet Adressen. Je nach verwendetem Web-Browser wird der Text in einer besonderen Größe, Schriftart oder speziellen Schriftausprägung dargestellt. 3.1.5 Querverweise Eines der wichtigsten Tag-Paare in HTML erzeugt einen Querverweis (Hyperlink) auf ein anderes Dokument oder eine Internet-Ressource. Das Tag-Paar zur Verankerung wird allgemein wie folgt benutzt:
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (4 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
anchor-text Dieses Paar wird auch als Anker-Paar bezeichnet, das in Ihrem HTML-Dokument den Anker für einen Verweis auf eine bestimmte Stelle definiert. Bei einer anderen Verwendungsmöglichkeit markiert das Anker-Tag eine Stelle innerhalb des Dokuments, auf die ein Querverweis zeigt (dies ist optional, da ein Verweis standardmäßig immer auf den Anfang eines Dokuments zeigt). Die beiden Varianten werden manchmal als Quell- und Ziel-Tags (link-from bzw. link-to) bezeichnet. Das öffnende Anker-Tag benötigt immer mindestens eine Option. Es gibt zwar mehrere Optionen, die beiden wichtigsten sind jedoch HREF zur Definition eines Hyperlinks und NAME zur Kennzeichnung eines Verweisziels innerhalb einer Datei. Wir betrachten zuerst die Option HREF. Ihre Syntax lautet: anchor-text anchor-text wird im Browser dargestellt. Wenn der Benutzer den Verweis aktiviert, fordert der Browser den angegebenen URL an. URLs werden in Abschnitt 3.1.7 beschrieben. Wenn Sie noch einmal unser HTML-Beispieldokument betrachten, entdecken Sie am Ende einen Querverweis: DRJ Ich unterschreibe mit diesem Verweis alle meine Seiten. Meine Initialen DRJ werden zum Ankertext für einen Querverweis auf eine andere HTML-Seite im gleichen Verzeichnis, die die Bezeichnung rjones.html hat. Der Hyperlink, der als meine Unterschrift dient, ist außerdem mit dem Tag-Paar geklammert: DRJ Daran erkennen Sie, daß Querverweise in andere Tag-Konstrukte eingebettet sein können. Überall, wo im Hauptteil des HTML-Dokuments Text erscheinen kann, können Sie einen Hyperlink anlegen. Der Text kann in einem Absatz, einer Überschrift oder einem Zitat stehen oder Teil einer Adresse sein. Die Umkehrung gilt jedoch nicht immer: Sie können zwar ein Ankerpaar in eine Überschrift stellen, sollten jedoch eine Überschrift nie innerhalb eines Ankerpaars einbetten. Statt Text können Sie als Quelle für den Verweis auch ein Bild verwenden. Dazu umrahmen Sie das Tag mit Anker-Tags: Durch das Anzeigen einer eingebetteten Graphik wird diese »scharf gemacht«: Sobald sie vom Benutzer aktiviert wird, fordert der Browser das Dokument an, das im zugehörigen URL beschrieben wird (in diesem Fall eine Datei namens org-overview.html). 3.1.6 Verweise auf Stellen im Dokument Verweise zeigen standardmäßig immer auf den Anfang eines Dokuments. Sie können aber auch Querverweise anlegen, die sich auf andere Stellen in einem HTML-Dokument beziehen. Dazu müssen Sie zunächst mit der Option NAME des Anker-Tags das Sprungziel identifizieren: anchor-text Dieses Tag-Paar kennzeichnet ein Verweisziel im HTML-Dokument und weist ihm einen Namen zu. Das Paar bietet einen zusätzlichen Einstiegspunkt in das HTML-Dokument. Sie können den Ankertext auch weglassen. Auf diesen Zielpunkt verweisen Sie dann mittels #anchor-name. Angenommen, Sie haben ein Dokument, das in der gleichen Datei einen Anhang enthält und wollen sich auf den Anhang beziehen. Dazu nehmen Sie die Überschrift am Beginn des Anhangs als Verweisziel. Der HTML-Code zu Beginn des Anhangs könnte etwa so lauten:
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (5 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
Appendix A Jetzt können Sie innerhalb des Dokuments wie folgt Hyperlinks auf den Anhang anlegen: Details finden Sie inAppendix A Sie können auch aus einem externen Dokument heraus direkt auf den Anhang verweisen. In einem anderen HTML-Dokument sähe das so aus: Appendix A Der URL kann entweder vollständig oder relativ sein. Wird die Syntax des Ankers nicht eingehalten, sind die meisten Web-Browser nachsichtig und zeigen den Ankertext oder das eingefügte Bild an, machen es jedoch nicht als Hyperlink »scharf«. Diese Möglichkeit können Sie auch bewußt einsetzen, um Verweise zeitweilig außer Kraft zu setzen, ohne den HTML-Code zur Definition des Links zu entfernen. 3.1.7 URLs Ein URL zeigt auf eine Datei oder ein Verzeichnis.(1) Es gibt drei Arten von URLs, nämlich absolute, relative und lokale. Manche Browser unterstützen darüber hinaus noch eine Reihe spezieller URLs. Absolute URLs definieren eine Datei im Internet vollständig. Relative und lokale URLs bieten die Möglichkeit, eine Datei auf dem gleichen Server zu identifizieren, auf dem auch das Dokument liegt, in dem sie enthalten sind. In den folgenden Abschnitten beschreiben wir die verschiedenen Arten von URLs ausführlicher. 3.1.7.1 Absolute URLs
Absolute URLs können sich auf jede Ressource im Internet einschließlich lokaler Ressourcen beziehen. Aus Gründen, die wir im nächsten Abschnitt darlegen, eignen sich die relativen URLs für lokale Ressourcen jedoch besser. Die vollständige Syntax für absolute URLs lautet: access-method://server-name[:port]/directory/file Fehlt die Portnummer, so wird der Standardport für die jeweilige Zugriffsmethode benutzt. Der URL eines Dokuments auf einem Web-Server hat als Zugriffsmethode http:. Auf die Master List aller öffentlichen World Wide Web-Server auf der ganzen Welt können Sie z.B. über den folgenden URL zugreifen: http://www.w3.org/hypertext/DataSources/WWW/Geographical.html Sie erreichen mit dem HTTP-Protokoll (und dem Standardport) einen Server namens www.w3.org. Dort gibt es ein Verzeichnis /hypertext/DataSources/WWW, das ein Hypertext-Dokument mit dem Namen Geographical.html enthält. Jede Datei im Internet läßt sich über ihren URL eindeutig adressieren, unabhängig vom jeweiligen Dateityp oder der Art des Servers, auf der sie liegt. Neben der Zugriffsmethode http: unterstützt das URL-Konzept auch andere Zugriffsprotokolle, etwa Gopher, FTP und Telnet. Der URL für den Zugriff auf eine Datei auf einem Gopher-Server entspricht der üblichen URL-Spezifikation. Der URL für den Server der University of Minnesota sieht wie folgt aus: gopher://gopher.micro.umn.edu Wenn Sie sich das FTP-Archiv von O'Reilly & Associates ansehen wollen, öffnen Sie den folgenden URL:
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (6 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
ftp://ftp.ora.com/pub/ Manchmal finden Sie vielleicht sowohl Verweise auf die Zugriffsmethode ftp: als auch auf file:. Die Schreibweise ftp: hat die ältere Schreibweise file: ersetzt, da sie das benutzte Protokoll genauer beschreibt. Wenn Sie mit der Zugriffsmethode ftp: auf den Inhalt eines Verzeichnisses verweisen, sollten Sie darauf achten, daß der URL mit einem Schrägstrich »/« endet. Bei Verweisen auf eine Datei innerhalb eines Verzeichnisses ist dies nicht nötig. Der URL einer Telnet-Ressource wird Sie jetzt nicht mehr überraschen: telnet://www.w3.org/ Enthält eines Ihrer Dokumente einen URL, geht der Web-Browser direkt zur angegebenen Ressource und nicht über Ihren Web-Server. Das hat zur Folge, daß Benutzer, die einen Rechner nicht direkt mit telnet aus der Shell erreichen können (weil sie durch einen Firewall blockiert sind oder das Paßwort nicht kennen), auch nicht über einen Web-Browser auf diesen Rechner zugreifen können, selbst wenn dies vom Web-Server aus möglich wäre. Wenn Sie einen Server an einer ungewöhnlichen Portnummer betreiben, müssen Sie die Portnummer als Teil des URLs angeben. Die Standard-Portnummern lauten:
Portnummer Dienst 21
FTP
23
Telnet
70
Gopher
80
HTTP
Der folgende URL beschreibt einen Gopher-Server, der an Port 1250 betrieben wird: gopher://garnet.berkeley.edu:1250/ Viele Organisationen im Web haben öffentlich zugängliche Gateways zu anderen verbreiteten Internet-Diensten eingerichtet. Die URLs für diese Gateways basieren auf URLs für Dateien, können jedoch auch spezielle Syntaxvarianten verwenden. Abschnitt 4.3 enthält eine Beschreibung verschiedener WAIS-Gateways. 3.1.7.2 Absolute und relative URLs
Ein relativer URL impliziert die gleiche Zugriffsmethode, den gleichen Servernamen und den gleichen Verzeichnispfad wie das Dokument, das den URL enthält. Es beschreibt die relative Position des Ziel-URLs, bezogen auf den aktuellen URL. Der folgende URL beschreibt z.B. eine Datei, die im gleichen Verzeichnis liegt wie das Dokument, das den URL enthält: Next Page Relative URLs werden manchmal auch als partielle URLs bezeichnet. Sie zeigen auf Informationsressourcen im gleichen Verzeichnis oder auf dem gleichen Server. Absolute URLs zeigen dagegen meist auf Informationsressourcen auf anderen Servern. In der Praxis bedeutet das, daß Sie mit relativen URLs auf Ihre eigenen Dokumente verweisen und mit absoluten URLs auf Ressourcen, die sich irgendwo im Internet befinden. Für den Web-Server spielt die Unterscheidung zwischen absoluten und relativen URLs keine Rolle. Aktiviert der Benutzer einen relativen Querverweis, so ermittelt der Web-Browser anhand des aktuellen URLs die Zugriffsmethode, den Namen des Servers, die Portnummer und das Verzeichnis und sendet nur den absoluten URL an den Server. http://www.oreilly.de/german/freebooks/Html_buch/www03.html (7 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
Mit relativen URLs brauchen Sie bei der Erstellung von HTML-Dokumenten überhaupt keine Rücksicht darauf zu nehmen, in welcher Verzeichnisstruktur die Dokumente schließlich landen oder auf welchem System der Server läuft. Sie können relative Sprünge zwischen HTML-Dokumenten mit den gleichen Verzeichniskonstrukten angeben, mit denen Sie sich auch im UNIX-Verzeichnisbaum bewegen. Ein Hyperlink, der in der Verzeichnisstruktur zwei Stufen nach oben zu Ihrer Home-Page springt, läßt sich z.B. mit folgendem HTML-Code realisieren: Return to Home Page Relative URLs erlauben Ihnen auch, Ihre HTML-Verzeichnisstruktur an eine beliebige Stelle im Web zu verschieben. Ihr Systemverwalter ist vielleicht (aus unterschiedlichen Gründen) daran interessiert, daß andere Organisationen eine lokale Kopie Ihrer HTML-Verzeichnissstruktur bekommen. Relative URLs funktionieren auch, wenn ein Web-Browser ohne Beteiligung eines Web-Servers Dateien direkt aus dem Dateisystem liest. Dies ist bei der Erstellung von Web-Dokumenten sehr hilfreich. Benutzen Sie in Ihrem Dokumentbaum keine symbolischen Verweise, da sie dem Zweck der relativen URLs zuwiderlaufen und eine Übertragung des Baums auf andere Rechner verhindern. Wenn Sie in Versuchung kommen, einen symbolischen Verweis einzusetzen, sollten Sie statt dessen die Anweisung Alias in srm.conf verwenden. (In Abschnitt 2.2.3 finden Sie mehr zu diesem Thema.) Ein relativer URL muß sich nicht unbedingt auf das Verzeichnis des aktuellen Dokuments beziehen, sondern kann auch eine Angabe relativ zum Stammverzeichnis der Dokumente enthalten. Diese Variante der relativen URLs wird mit einem Schrägstrich eingeleitet. Sie sieht also aus wie ein absoluter URL, enthält aber weder die Zugriffsmethode noch den Namen des Servers. 3.1.7.3 Spezielle URLs
Manche Browser unterstützen noch eine Reihe besonderer URLs. Sie greifen damit auf die Artikel eines lokalen News-Servers zu oder senden E-Mail an den Eigentümer eines Dokuments. Um z.B. die News-Gruppe comp.infosystems.www.providers statt mit einem News-Reader mit Ihrem Web-Browser zu lesen, können Sie folgenden URL öffnen: news:comp.infosystems.www.providers Manche Web-Browser, etwa Lynx, ermöglichen das Versenden von E-Mail an den Eigentümer einer Seite. Zur Festlegung des Eigentümers können Sie den folgenden lokalen URL verwenden, der auch im HTML-Beispieldokument in Abschnitt 3.1.4 vorkommt: mailto:internet-address mailto: wird bisher allerdings noch nicht sehr häufig unterstützt. 3.1.8 Listen Listen bilden eine weitere Schlüsselkonstruktion in HTML. Es gibt drei Arten von Listen: ● Einfache Listen (mit Aufzählungssymbol):
Liste
● Numerierte Listen (mit Nummern): Liste ● Glossare (definition lists): Liste Bei den ersten beiden Listenarten werden die Elemente der Liste mit dem Tag
(list item) gekennzeichnet. Eine einfache Liste mit Aufzählungssymbolen, die drei Einträge enthält, wird z.B. wie folgt gekennzeichnet:
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (8 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
First bullet
Second bullet
Third bullet
Wie Sie vielleicht schon vermuten, bricht der Web-Browser Einträge automatisch um und rückt die nächste Zeile entsprechend ein, wenn ein Eintrag nicht in eine Zeile paßt. Listen können auch verschachtelt werden:
First bullet
First sub-bullet
Second sub-bullet
Third sub-bullet
Second bullet
Third bullet
Abbildung 3-2 zeigt die Darstellung dieser verschachtelten Listen in Mosaic.
Abb. 3-2. Darstellung verschachtelter Listen mit Aufzählungssymbolen in Mosaic. Die dritte Variante der Listen, das Glossar (definition list), kommt zum Einsatz, wenn weder Aufzählungszeichen noch Numerierung nötig sind und die Aufzählungselemente allein stehen können. Ein gutes Beispiel hierfür ist ein Glossar mit einer Liste von Ausdrücken und zugehörigen Definitionen. In einem Glossar werden die Listeneinträge nicht mit dem
-Tag gekennzeichnet, sondern mit dem Tag-Paar und . Das Tag-Paar kennzeichnet den Ausdruck selbst, das Tag-Paar den zugehörigen Text. Dieser wird unter dem -Eintrag eingerückt. Ein Glossar mit drei Einträgen könnte z.B. so aussehen: Action Plan for African Primate Conservation Compiled by J.F. Oates and the IUCN/SSC Primate Specialist Group, 1986, 41 pp.
Dolphins, Porpoises and Whales. An Action Plan for the Conservation of Biological Diversity Second Edition. Compiled by W.F. Perrin and the IUCN/SSC Cetacean Specialist Group, 1989, 27 pp.
Otters. An Action Plan for their Conservation Compiled by P. Foster-Turley, S. Macdonald, C. Mason and the IUCN/SSC Otter Specialist Group, 1990, 126 pp. Abbildung 3-3 zeigt die Darstellung dieses Glossars in Mosaic.
Abb. 3-3. Darstellung eines Glossars in Mosaic. 3.1.9 Graphiken Wir erwähnten Graphiken bereits kurz bei der Einführung des HTML-Tags . Für die Verwendung von Graphiken stehen grundsätzlich zwei Möglichkeiten zur Verfügung, nämlich Inline-Graphiken und externe Graphiken. http://www.oreilly.de/german/freebooks/Html_buch/www03.html (9 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
Inline-Graphiken werden vom Web-Browser als Bestandteil des Dokuments angezeigt und automatisch zusammen mit dem Dokument übertragen. Externe Graphiken werden von einem separaten Programm (Viewer) dargestellt, das der Web-Browser bei Bedarf startet. Der Benutzer muß externe Graphiken durch Aktivieren eines Hyperlinks explizit anfordern. Die Übertragung von Inline-Graphiken kann sehr langsam ablaufen, da sie viele Daten enthalten. Viele Web-Browser bieten daher die Möglichkeit, den Download von Inline-Graphiken auszuschalten. Sie müssen dann explizit mit einem Hyperlink angefordert werden, bevor der Browser sie vom Server holt. Nach dem Aktivieren der Inline-Graphiken werden sie direkt im Dokument angezeigt und nicht in einem externen Viewer. Wenn Sie den Einsatz von Graphik in einem HTML-Dokument erwägen, sollten Sie berücksichtigen, welche Benutzer auf Ihren Web-Server zugreifen. Arbeiten sie mit einem graphikfähigen Web-Browser wie z.B. Mosaic oder mit einem zeilenorientierten Browser wie Lynx? Falls eine Art von Web-Browsern dominiert, wird Ihnen die Entscheidung leichter falle, als wenn beide Arten zum Einsatz kommen. 3.1.9.1 Inline-Graphiken
Inline-Graphiken unterliegen dem automatischen Textfluß und dem automatischen Umbruch des Web-Browsers. Ein Bild wird also einfach wie ein Wort behandelt und kann daher mitten in einem Absatz stehen. Soll eine Inline-Graphik allein stehen, so müssen Sie es im HTML-Dokument mit den Tags
oder umgeben. Bei Inline-Graphiken werden die beiden Graphikformate Graphics Interchange Format (GIF) und X Bitmap (XBM) unterstützt. Das Format GIF ermöglicht bis zu 256 Farben und ist weiter verbreitet als das Schwarzweißformat XBM. Beim automatischen Umbruch von Inline-Graphiken innerhalb eines Absatzes können Sie die Ausrichtung des Bildes mit der Textzeile explizit angeben, wenn Sie die optionale Angabe ALIGN im -Tag verwenden. ALIGN kann drei Werte annehmen: TOP richtet die Oberkante des Bildes mit der Oberkante der aktuellen Textzeile aus, bei MIDDLE steht der Text in der Mitte des Bildes und bei BOTTOM an der Unterkante der Graphik. Fehlt die Angabe ALIGN, gilt der Standardwert BOTTOM. Bei der Positionierung des Bildes und dem automatischen Umbruch werden beide Bildformate normalerweise mit rechteckigem Umriß berücksichtigt. In beiden Formaten sind aber auch Bilder mit durchsichtigem Hintergrund möglich, die keinen rechteckigen Umriß mehr haben. Bei durchsichtigem Hintergrund scheint die Hintergrundfarbe des Hauptfensters durch die transparenten Bildteile. Diese Technik wird vor allem bei »manuellen« Unterschriften am Ende eines HTML-Dokuments verwendet, oder um ein rundes Universitätssiegel wirklich rund erscheinen zu lassen und nicht nur als runde Graphik in einem rechteckigen Bild. Der folgende URL zeigt auf ein Dokument, das die Erstellung von transparentem Hintergrund erklärt: http://melmac.corp.harris.com/transparent_images.html Bei Browsern, die auf einem Farbgraphiksystem laufen, müssen sich Ihre Bilder die Colormap (Farbtabelle) unter Umständen mit anderen Applikationen teilen. Mosaic belegt z.B. nur eine Colormap mit 50 Einträgen. Enthält eine Inline-Graphik mehr Farben als dargestellt werden können, so wird sie mit den verfügbaren Farben angezeigt und wird daher nicht so gut aussehen wie das vollfarbige Bild. Sie sollten unter Umständen die Anzahl der Farben in Ihren GIF-Bildern auf weniger als 50 reduzieren. Enthält ein einzelnes HTML-Dokument mehrere GIF-Bilder, so sollten Sie mit dem Programm ppmquantall aus dem Paket pbmplus eine gemeinsame Colormap für alle Bilder erzwingen.(2) Das Colormap-Problem beeinflußt auch die Entscheidung, ob Sie Ihre HTML-Dokumente mit Photographien anreichern (die http://www.oreilly.de/german/freebooks/Html_buch/www03.html (10 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
viele Farben erfordern) oder mit Zeichnungen, die mit einer begrenzten Farbpalette auskommen. Sie dürfen auch die Geschwindigkeit nicht außer acht lassen: Der Download eines HTML-Dokuments mit Inline-Graphiken dauert wesentlich länger als ohne Graphiken (es sei denn, der Benutzer hat den Download von Graphiken ausgeschaltet). Je größer die Inline-Graphik, um so länger dauert die Übertragung. Die Zeit erhöht sich sogar proportional zum Quadrat der Bildgröße (ein Bild mit der Kantenlänge vier Zentimeter dauert fast doppelt so lang wie ein Bild der Kantenlänge drei Zentimeter). Dabei profitieren Sie allerdings von der Tatsache, daß die meisten graphischen Web-Browser Inline-Graphiken in einem Cache zwischenspeichern. Eine Inline-Graphik, die bereits in HTML-Dokumenten enthalten war, die sich der Benutzer vorher angesehen hat, kann sich daher noch im Cache befinden. Das Caching-Verfahren kommt auch zum Tragen, wenn eine Inline-Graphik mehrfach im gleichen HTML-Dokument vorkommt. Sie wird dann nur einmal geholt. Ein Trick zur Lösung des Geschwindigkeitsproblems bei großen Bildern besteht im Einsatz von Thumbnails. Ein Thumbnail ist eine kleine Inline-Version eines Bildes, die als Verweis auf das große Bild dient. Dieses wird dann extern dargestellt. Mit Bildbearbeitungsprogrammen, etwa jenen aus dem pbmplus-Paket, können Sie sehr einfach eine verkleinerte Version eines Bildes anlegen. Der HTML-Code hierfür sieht so aus: Wir benutzen dabei die Syntax für externe Bilder, die wir im nächsten Abschnitt beschreiben. Die dargestellten Probleme sollten Sie jedoch nicht davon abhalten, Ihre HTML-Dokumente mit Graphiken anzureichern. Graphiken können die Informationen in Ihrem HTML-Dokument verdeutlichen und dessen Einsatzbereich erweitern. In Abschnitt 3.4 werden wir außerdem sehen, daß einzelne Bereiche von Inline-Graphiken als Anker für Verweise dienen können (ein Mausklick auf verschiedene Teile des Bildes kann unterschiedliche Verweise auslösen). 3.1.9.2 Externe Graphiken
Externe Graphiken werden nicht inline als Bestandteil des Dokuments angezeigt, sondern in einem eigenen Fenster von einem externen Programm dargestellt. Diese Technik sollten Sie verwenden, wenn Sie mit Bildern in den Formaten TIFF, JPEG, RGB oder HDF zu tun haben und diese nicht in GIF-Bilder umwandeln wollen. Sie eignet sich auch zur Darstellung sehr großer GIF-Bilder. Anstelle des bereits beschriebenen HTML-Tags betten Sie den URL der externen Graphik einfach als Teil eines Verweises ein. Um z.B. ein JPEG-Bild in einem externen Fenster darzustellen, können Sie den folgenden HTML-Code verwenden: anchor-text Dabei können Sie filename.jpg durch einen beliebigen URL ersetzen, es muß keine lokale Datei sein. In Abschnitt 2.3.1 finden Sie eine Beschreibung des Protokolls zwischen Web-Server und -Browser, das dies ermöglicht. Im Augenblick begnügen wir uns mit der Feststellung, daß der Benutzer einen externen Viewer installiert haben muß, der die übertragene externe Bilddatei verarbeiten kann. Außerdem muß der Web-Browser den Typ der eingehenden Daten erkennen und den zugehörigen Viewer starten können. Externe Graphiken in einem HTML-Dokument schränken dessen Einsatzbereich ein: Genauso, wie manche Benutzer keine Inline-Graphiken anzeigen können, haben andere keine Unterstützung für die Darstellung externer Graphiken konfiguriert. 3.1.9.3 Inline-Graphiken in zeichenorientierten Web-Browsern
Inline-Graphiken lassen sich auf zeichenorientierten Terminals nicht dargestellen. Zeichenorientierte Web-Browser deuten in den Textfluß eingebettete Bilder durch folgenden Hinweis an: [IMAGE] Diese Einstellung können Sie jedoch verändern und mit der Option ALT dafür sorgen, daß Ihre Inline-Graphiken auch in http://www.oreilly.de/german/freebooks/Html_buch/www03.html (11 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
zeichenorientierten Web-Browsern mehr Bedeutung erhalten: Bei Angabe der Option ALT zeigen zeichenorientierte Web-Browser die Beschreibung des Bildes (image-description) anstelle von [IMAGE] an. Durch eine leere ALT-Option können Sie auch bewirken, daß der Browser ein Bild ignoriert: Erkennt ein zeichenorientierter Web-Browser eine leere ALT-Option, so ignoriert er das Image-Tag. Bei der Erstellung von HTML-Dokumenten gilt die Konvention, daß Sie Inline-Graphiken mit Rücksicht auf Benutzer eines zeichenorientierten Web-Browsers mindestens durch ein Wort oder einen Satz beschreiben sollten. 3.1.10 Einbettung Der NCSA-Web-Server ist in der Lage, Informationen aus Dateien und Umgebungsvariablen in eine HTML-Datei einzubetten, bevor diese an den Benutzer gesendet wird. Er kann außerdem das Datum der letzten Änderung, das aktuelle Datum, die Größe des Dokuments und andere nützliche Angaben einbetten. Diese Möglichkeiten werden zusammen als Einbettung durch den Server (server-side includes) bezeichnet. Wir sehen uns dazu ein kurzes Beispiel an. Wir verändern das Ende unserer HTML-Schablone wie folgt: Creation Date: <EM> Wir legen zusätzlich die Datei owner.txt an, die nur folgende Zeile enthält: DRJ Jetzt erhalten alle HTML-Dokumente, die auf unserem Beispieldokument basieren, beim Abruf automatisch das Datum der letzten Änderung (aus dem Dateisystem) und den Eigentümer der Datei. Dadurch ist sichergestellt, daß das Änderungsdatum des Dokuments stimmt, ohne daß wir es manuell eingeben müssen. Zudem haben wir jetzt die Möglichkeit, mit einer einfachen Änderung von owner.txt den Eigentümer aller HTML-Dokumente zu ändern. Je nach Konfiguration Ihres Web-Servers müssen Sie unter Umständen die HTML-Dateien umbenennen, bei denen der Server Daten einbetten soll (meist wird die Endung .shtml benutzt). Fragen Sie hierzu den Verwalter Ihres Web-Servers, oder lesen Sie Abschnitt 2.3.2. Möglicherweise ist Ihr Server gar nicht für Einbettungen konfiguriert, oder diese Funktion wurde aus Sicherheitsgründen abgeschaltet (siehe Abschnitt 5.2.5). Vielleicht ist Ihnen aufgefallen, daß die ASCII-Textdatei owner.txt HTML-Anweisungen enthält. owner.txt heißt aber nicht owner.html, weil die Datei keinen vollständig strukturierten zulässigen HTML-Code enthält und weil sie nicht für die einzelne Darstellung gedacht ist. (Daher sollten Sie den Web-Server so einrichten, daß er Include-Dateien wie owner.txt bei der automatischen Indizierung von Verzeichnissen ignoriert, da eingebettete Dateien nicht allein dargestellt werden können, siehe Abschnitt 2.3.3.) Das Format der Include-Anweisung lautet: Im obigen Beispiel benutzten wir die beiden Kommandos #echo und #include. Zwei weitere Kommandos lauten #fsize und #flastmod, die die Größe einer Datei und das Datum der letzten Änderung einbetten. Das Tag file= beim Kommando #include verweist auf ein Dokument im gleichen physikalischen Verzeichnis wie das HTML-Dokument (oder ein http://www.oreilly.de/german/freebooks/Html_buch/www03.html (12 von 31) [11.04.2001 17:15:14]
HTML und das World Wide Web
Verzeichnis, das relativ zu diesem angegeben wird). Das Tag var= beim Kommando #echo liest den Wert einer Umgebungsvariablen und zeigt diesen an. Dabei kann es sich um eine der Variablen handeln, die im CGI definiert sind (siehe Abschnitt 4.1.1), oder um eine der sechs unten aufgeführten. Ein anderes (nicht aufgeführtes) Tag bei #include lautet virtual=. Er beschreibt eine Datei relativ zur Dokumentenwurzel. Sie können das Tag virtual= anstelle des Tags file= verwenden, wenn alle Dokumente auf Ihrem Web-Server unabhängig von der Struktur des Dokumentbaums eine Standardschablone enthalten sollen, etwa einen Copyright-Hinweis. Alle bei #include möglichen Tags können Sie auch bei #fsize und #flastmod verwenden. Die sechs Umgebungsvariablen (ohne die CGI-Variablen), die Sie bei #echo verwenden können, sind das Datum der letzten Änderung (LAST_MODIFIED) sowie: DOCUMENT_NAME aktueller Dateiname DOCUMENT_URI virtueller Pfad dieses Dokuments DATE_LOCAL Ortszeit und aktuelles Datum DATE_GMT wie DATE_LOCAL, nur für Greenwich Mean Time QUERY_STRING_UNESCAPED Suchanfrage, die gegebenenfalls vom Client gesendet wurde Es gibt noch zwei weitere Kommandos, die wir hier nicht behandeln: #exec führt ein Skript aus und bettet dessen Ausgabe ein, #config steuert das Format der Größen- und Datumsangaben. Eine vollständige Beschreibung hierzu finden Sie unter folgendem URL: http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html 3.1.11 Textformatierung Dieser Abschnitt beschreibt zusätzliche Tags, die die Formatierung und Anordnung von Text in HTML-Dokumenten beeinflussen, sowie ein Tag zum Einfügen von Kommentaren. Zeilenumbruch (break): Dieses Tag unterbricht den automatischen Umbruch innerhalb eines Absatzes und bewirkt, daß die nächste Zeile wieder am linken Rand beginnt. Die Wirkung dieses Tags ähnelt
, allerdings ohne Leerzeile. Dies ist für Zitate, Spezifikationen oder Adressen nützlich, bei denen keine Leerzeile erscheinen soll. Vorformatiert (preformatted): Textzeilen Dieses Tag-Paar weist den Web-Browser an, automatischen Umbruch und automatischen Textfluß zwischen den beiden Tags auszuschalten. In HTML 2.0 gibt es keine Tags für die Formatierung von Tabellen. Daher werden Tabellen gewöhnlich vorformatiert und mit -Tags geklammert. Vorformatierter Text kann eingebettete Querverweise enthalten. Zitat: Zitat Mit diesem Tag-Paar werden Zitate oder Zusammenfassungen gekennzeichnet. Die Darstellung erfolgt eingerückt vom linken und rechten Rand des Bildschirms bzw. Fensters. Kursiv (italics): Text Dieses Tag kennzeichnet Text, der auf einem graphikfähigen Bildschirm kursiv dargestellt werden soll. Auf einem zeichenorientierten Bildschirm erscheint der Text unterstrichen. Für Hervorhebungen ist im allgemeinen das Tag <EM> vorzuziehen.
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (13 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Besondere Hervorhebung (strong emphasis): <STRONG>Text Dieses Tag kennzeichnet Text, der besonders hervorgehoben werden soll. <STRONG> wird zusammen mit dem Tag <EM> für allgemeine Hervorhebungen benutzt. Fett (bold): Text Mit gekennzeichneter Text wird auf einem graphikfähigen Bildschirm fett bzw. auf einem zeichenorientierten Bildschirm invers dargestellt. Für allgemeine Hervorhebung ist das Tag <STRONG> vorzuziehen. Kommentar: Mit diesem Tag kann man Kommentare in HTML-Dokumente einfügen. Kommentare werden vom Web-Browser ignoriert. Der Kommentar kann beliebigen Text mit Ausnahme anderer HTML-Tags enthalten. 3.1.12 Weitere Informationen zu HTML In Abschnitt 4.2 beschreiben wir, wie Sie in HTML Formulare erstellen (und die darin eingegebenen Daten behandeln). Anhang A, HTML-Kurzreferenz, enthält eine Übersicht über alle HTML-Tags, jedoch keine Beispiele. Es wird Sie kaum noch überraschen, daß die definitive Einführung in HTML, A Beginner's Guide to HTML, im Web angeboten wird. Richten Sie Ihren Web-Browser dazu auf folgenden URL: http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html Sie sollten sich dieses Dokument ansehen, da es alle anderen verfügbaren HTML-Tags beschreibt. Es enthält außerdem weitere Optionen zu den hier vorgestellten HTML-Tags. Vergessen Sie nicht, daß Sie bei vielen Web-Browsern die Möglichkeit haben, den HTML-Quellcode des dargestellten Dokuments anzusehen oder das Dokument sogar lokal auf Ihrem Rechner zu speichern. Wenn Sie einen netten Trick in einem HTML-Dokument entdecken, können Sie sich einfach im HTML-Code ansehen, wie der Trick funktioniert. In einem graphischen Web-Browser können Sie mittels Markieren und Bearbeiten Teile des HTML-Codes existierender Dokumente kopieren, damit Sie die Tags nicht neu eintippen müssen.
3.2 Aufbereitung der Informationen Sie verstehen jetzt die Grundlagen von HTML und sollten sich nun mit einigen anderen Fragen beschäftigen, die bei der Strukturierung von HTML-Code auftreten. Dazu gehören die Aufteilung großer Dokumente, die Anzahl der eingebetteten Verweise, die Einrichtung dieser Verweise sowie allgemeine Richtlinien zur Gestaltung. 3.2.1 Modulare Dokumente Bei allen Dokumenten, die Sie auf Ihrem Web-Server anbieten wollen, müssen Sie einige Fragen bezüglich der Modularität der Dokumente berücksichtigen. Sollen Sie die Dokumente einfach unverändert in HTML konvertieren? Nun, das hängt von der Länge der Dokumente ab: drei Seiten (sicher), neun Seiten (vielleicht) oder achtzehn Seiten (eher nicht). Bei umfangreichen Dokumenten kann die Übertragung sehr lange dauern, vor allem wenn sie Inline-Graphiken enthalten. Erwarten Sie, daß ein Dokument in eine logische Hierarchie aufgegliedert wird? Fünf Hierarchiestufen im ursprünglichen Dokument müssen nicht unbedingt auf fünf Modulebenen mit Querverweisen abgebildet werden. Sie dürfen nicht vergessen, daß nicht jeder Benutzer die Gelegenheit wahrnimmt, einen Hyperlink zu aktivieren: Er muß wieder klicken und einige Sekunden warten (je nach Bandbreite zwischen Web-Server und Web-Browser auch länger); außerdem besteht immer die Möglichkeit, daß die Verbindung nicht zustandekommt. Ist Ihr Dokument andererseits logisch in größere Kapitel untergliedert, so ist es sicher sinnvoll, es auch in mehrere HTML-Dokumente aufzuteilen (eines pro Kapitel oder eines pro größerem Abschnitt). Wenn Sie mit Randbemerkungen arbeiten, werden Sie sie vielleicht aus dem Haupttextfluß lösen.
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (14 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Sie sollten sich auch fragen, ob jedes HTML-Dokument für sich allein stehen kann oder ob es den Kontext eines anderen Dokuments benötigt. Denken Sie daran, daß jedes Dokument auf Ihrem Server unter Umständen das erste ist, das ein Benutzer zu sehen bekommt. Sobald Sie ein HTML-Dokument im Web veröffentlichen, können andere Benutzer Querverweise auf diesen URL einbetten. Andererseits sind aber die Personen, die Verweise auf Ihre Dokumente in ihren HTML-Code einbetten, auch dafür verantwortlich, keine »blinden« Verweise zu erzeugen. Viele Leute arbeiten mit einem Kompromiß zwischen einem einzelnen Dokument und vielen Dokumenten: Sie haben zwar nur ein einziges HTML-Dokument, bieten jedoch am Anfang ein Inhaltsverzeichnis an, das Querverweise zu anderen Ankern weiter unten im gleichen Dokument enthält. Dadurch erhalten Sie von beiden Möglichkeiten jeweils das Beste: Die Benutzer können schnell zu einzelnen Abschnitten verzweigen, wenn sie bereits wissen, wonach sie suchen, oder das ganze Dokument durchblättern. Dadurch entstehen auch alternative Einstiegspunkte in Ihr HTML-Dokument. Diese sind für solche Benutzer nützlich, die auf bestimmte Informationen in Ihrem Dokument verweisen wollen, ohne die Leser durch das ganze Dokument zu schicken. 3.2.2 Vernetzungsgrad Wieviel Zeit und Aufwand investieren Sie für das Einrichten von Tags und Querverweisen in HTML-Dokumenten? Beim einen Extrem ist überhaupt kein Aufwand nötig: Sie können ASCII-Textdateien direkt in Ihrer HTTP-Verzeichnisstruktur anbieten. Web-Browser können sie direkt anzeigen. Dabei verzichten Sie jedoch auf viele Vorteile des World Wide Web: es gibt weder automatischen Textfluß noch automatischen Umbruch, keine Inline-Graphiken und keine Querverweise auf andere relevante Dokumente. Wenn Sie jedoch 2000 ASCII-Textdokumente haben, die viele vorformatierte Tabellen enthalten, ist das für den Anfang keine schlechte Möglichkeit. Die Benutzer erreichen zumindest Ihre Informationen. Es ist auch hilfreich, sich mit sed und/oder awk zu befassen, um das Einfügen von Tags in eine große Zahl von Dokumenten zu automatisieren. Das andere Extrem ist die Erstellung ausgereifter HTML-Dokumente. Jedes Dokument strotzt vor Querverweisen, der Inhalt wird mit Diagrammen und Bildern ausgeschmückt, wo es sinnvoll ist, kommen Audio-Sequenzen zum Einsatz, und Schlüsselstellen werden hervorgehoben. Geschieht dies alles mit Bedacht, so kann der Leser den Informationsgehalt und dessen Bedeutung leichter erfassen. Zur Erstellung sind jedoch Zeit und Aufwand nötig. Ein solcher Vernetzungsgrad erfordert auch beständige Pflege, da Verweise veralten können, wenn Web-Server umorganisiert werden oder der Webmaster wechselt. Die volle Ausnutzung der HTML-Möglichkeiten ist sicher sinnvoll, wenn Sie nur eine einzelne Studie oder ein paar Web-Seiten erstellen. Es ist außerdem bei den Seiten sinnvoll, denen die größte Aufmerksamkeit auf Ihrem Web-Server gilt, also Ihrer Home-Page, Ihrer Signatur und dem Hauptindex. Zwischen diesen beiden Extremen gibt es auch einen Kompromiß, der mit dem Tag-Paar arbeitet. Jedes Dokument läßt sich in zwei Teile untergliedern: den Teil, der sich einfach in HTML konvertieren läßt und den Teil, der zu detailliert oder zu kompliziert ist. Diesen zweiten Teil können Sie mit dem Tag-Paar klammern und dann sich selbst überlassen. Im Extremfall wird dann das ganze ASCII-Textdokument eingeklammert. Das sieht vielleicht nach Zeitverschwendung aus, hat jedoch den Vorteil, daß Ihr Dokument jetzt kein ASCII-Dokument mehr ist, sondern ein HTML-Dokument. Daher kann die vorformatierte Information im Dokument auch Querverweise enthalten. Bei Dokumenten, die sich niemals ändern, z.B. bei Aufsätzen, die zu einer Konferenz eingereicht wurden, zahlt sich der Vernetzungsaufwand besonders aus, da sie nie modifiziert oder neu konvertiert werden müssen, wenn sie einmal vollständig vorliegen. Sie stellen sie einfach online auf Ihrem Web-Server zur Verfügung, und andere können sie lesen, sich daran erfreuen und ihre eigenen Verweise darauf anlegen. 3.2.3 Automatisches und manuelles Anlegen von Verweisen Berücksichtigt man den primitiven Zustand der meisten Werkzeuge zur Erstellung von HTML-Dokumenten, so müssen Sie wohl die meisten Querverweise manuell (mit einem Texteditor) einbetten. Für Dokumente, auf die häufig zugegriffen wird, und für die wichtigsten Einstiegspunkte zu Ihrem Web-Server funktioniert das ganz gut. Wenn Sie jedoch mit Hunderten oder Tausenden von HTML-Dokumenten zu tun haben, wird die manuelle Erstellung von Querverweisen sehr mühsam. Es gibt zwar Filter und Konverter zur Umwandlung anderer Formate in HTML, allerdings nur sehr wenige Werkzeuge, http://www.oreilly.de/german/freebooks/Html_buch/www03.html (15 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
die automatisch Querverweise in HTML-Dokumenten erzeugen. Das liegt vor allem daran, daß die möglichen Verweise von den Daten auf dem Web-Server abhängen. Wenn Sie jedoch in einer genau abgesteckten Umgebung arbeiten, können Sie vielleicht Skripten entwickeln, die nach bestimmten Sequenzen suchen etwa nach Teilenummern, nach den Namen von Personen, Dokumentnamen, Akronymen etc. Solche Sequenzen können Sie automatisch identifizieren, den zugehörigen URL bestimmen und den Verweis in das HTML-Dokument einbetten. Diese Technik ist auch dann sehr nützlich, wenn es sich um vorformatierte Informationen handelt, bei denen jedes Feld eine genau definierte Bedeutung hat. In Abschnitt 3.3.5 werden wir HTML-Konverter und -Filter genauer behandeln. Viele proprietäre Dokumentformate enthalten bereits eingebettete Querverweise. Die Dokumente von FrameMaker und Microsoft Word sind dafür gute Beispiele. Die HTML-Konverter sind meist in der Lage, diese Querverweise bei der Erzeugung von HTML-Code in Hyperlinks zu übersetzen. Die Einbettung absoluter URLs (als Verweise auf Informationen außerhalb Ihrer eigenen Datensammlung) wird noch viel eher manuell stattfinden. 3.2.4 Richtlinien zur Gestaltung Sie sollten für Ihre Organisation Richtlinien zur Gestaltung von HTML-Dokumenten aufstellen. Ein einheitlicher HTML-Stil erhöht den Nutzen Ihres Servers. Dies beeinflußt wiederum die Zeit, die die Benutzer mit Ihrem Web-Server verbringen und wie oft sie dorthin zurückkehren. Manche Fragen tauchen auch bei der Erstellung anderer Dokumente auf, im Web gibt es jedoch einige Besonderheiten. Alle Regeln zum Einsatz von Schriften können Sie getrost vergessen, weil Sie die Verwendung der Schrift überhaupt nicht kontrollieren können: Sie ist ein Attribut des Web-Browsers. Hervorhebungsmethoden wie fett und kursiv sollten Sie dennoch einheitlich verwenden und deren Überbeanspruchung vermeiden. Sie müssen zum Glück nicht beim absoluten Nullpunkt anfangen. Andere Leute haben dies alles vor Ihnen ausprobiert und ihre Gestaltungsrichtlinien im Web verfügbar gemacht. Eine der besten Richtlinien ist der Style Guide for Online Hypertext von Tim Berners-Lee: http://www.w3.org/hypertext/WWW/Provider/Style/Overview.html Wir wollen uns unser HTML-Beispieldokument noch einmal im Hinblick auf die Gestaltungsrichtlinien ansehen. Der Einsatz einer Standardschablone hilft uns, unsere HTML-Dokumente einheitlich zu gestalten. Wir wollen, daß der Dokumenttitel <TITLE> und der Dokumenttitel zusammenpassen und sich gegenseitig ergänzen. Der Dokumenttitel <TITEL> erscheint in der Hotlist der Benutzerin oder beim Anlegen von Lesezeichen (bookmarks). Den Dokumenttitel sieht die Benutzerin dagegen beim Anzeigen des HTML-Dokuments als erstes. Bei der Erweiterung des Inhalts kennzeichnen wir größere Abschnittsüberschriften mit -Tags. Außerdem begrenzen wir unsere Dokumente mit waagrechten Linien () am Anfang und Ende des Dokuments. Dies sorgt für eine Trennung des Dokumentinhalts von der Titelinformation oben und der Versions- und Autoreninformation unten. Ihre wichtigste Sorge sollte nicht darin bestehen, wie Ihre Gestaltungsrichtlinien aussehen, sondern daß Sie diese überhaupt befolgen! Wenn Ihre Dokumente konsistent sind, ist es auch nicht allzuschwer, globale Änderungen durchzuführen. 3.2.5 Beispiel zur Informationsgestaltung Um diese HTML-Konzepte zu illustrieren, zeigen wir nun eine kompliziertere HTML-Datei, nämlich den HTML-Code, den wir für die Präsentation eines Aktionsplans erstellten, der von der Species Survival Commission entwickelt wurde. Wir beschlossen, die wichtigsten Teile des Dokuments auf der Home-Page zu konzentrieren. Wir versuchten nicht, den Umschlag des Papierdokuments eins zu eins auf das oberste HTML-Dokument abzubilden. Zusätzlich zum Titel des Dokuments, dem Titelfoto und Informationen über die Autoren bzw. Herausgeber wollten wir die Copyright-Angaben (auf der Innenseite des Umschlags) und die Überschriften der Hauptabschnitte aus dem Inhaltsverzeichnis übernehmen. http://www.oreilly.de/german/freebooks/Html_buch/www03.html (16 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Um das Foto einzubinden, brachten wir das Dokument zu unserem örtlichen Desktop-Publishing-Center und ließen das Foto mit dem Krokodil in der Originalgröße (10cm\xb0 15cm) mit 200 dpi scannen und eine GIF-Datei erzeugen. Mit xv probierten wir verschiedene Skalierungsfaktoren aus und landeten schließlich bei 20 Prozent des Originals als beste Größe für die Home-Page. Da wir das Foto mit dem Krokodil auf diese Größe brachten und es als GIF-Datei speicherten, konnten wir es als Inline-Graphik einbetten. Der HTML-Code für die Home-Page sieht wie folgt aus: <TITLE>Crocodiles: An Action Plan for their Conservation Crocodiles An Action Plan for their Conservation Table Of Contents Foreword & Acknowledgements Executive Summary Objectives and Organization Introduction and Conservation Priorities Country Accounts
Compiled by John Thorbjarnarson Edited by Harry Messel, Wayne King, and James Perran Ross Wir begannen mit der bereits gezeigten HTML-Schablone. Wir beschlossen, die beiden waagrechten Linien wegzulassen, da das für die Home-Page zu kompliziert aussieht. Mit relativen URLs richteten wir die Querverweise vom Inhaltsverzeichnis auf die untergeordneten Dokumente ein. Mit Rücksicht auf die Benutzer zeichenorientierter Web-Browser benutzten wir die Option ALT beim Image-Tag . Kann der Web-Browser die Inline-Graphik nicht anzeigen, so fügt er statt dessen den Satz »Picture of a Crocodile« ein. Abbildung 3-4 enthält die Darstellung dieses HTML-Dokuments in Mosaic. Um die Unterschiede zwischen verschiedenen Web-Browsern zu verdeutlichen, sehen Sie in Abbildung 3-5 das gleiche Dokument in einem Terminalfenster mit Lynx.
Abb. 3-4. Darstellung der Krokodil-Home-Page in Mosaic.
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (17 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Abb. 3-5. Darstellung der Krokodil-Home-Page in Lynx. Wahrscheinlich haben Sie in diesem Beispiel auch eine neue HTML-Technik entdeckt: Für das Copyright-Symbol, das am unteren Rand von Abbildung 3-4 zu sehen ist, haben wir einen speziellen Code (8#169) eingefügt. Weitere Informationen und Beispiele für alle Codes von ISO 8859-1 finden Sie in Anhang B, Sonderzeichen in HTML, sowie unter folgendem URL: http://www.uni-passau.de/~ramsch/iso8859-1.html
3.3 Programme zum Erstellen vonHTML-Dokumenten Um Programme zum Erstellen von HTML-Dokumenten ist es im World Wide Web im Vergleich zu anderen Bereichen schlecht bestellt. HTML-Editoren unterscheiden sich von HTML-Konvertern (siehe nächsten Abschnitt) dadurch, daß Sie damit Dokumente vollständig erstellen und durch URLs globale Hyperlinks einbetten können. Es gibt vier Möglichkeiten, HTML-Dokumente zu erstellen: ● Sie können mit Ihrem bevorzugten Texteditor HTML-Tags direkt einbauen. Mit dem für Emacs erhältlichen HTML-Modus können Sie sich unter Umständen etwas Arbeit sparen. ● Sie können einen der frei erhältlichen HTML-Editoren für das X Window System benutzen. Der Editor htmltext unterstützt HTML-Bearbeitung im WYSIWYG-Modus. Weitere Informationen finden Sie unter
●
●
http://web.cs.city.ac.uk/homes/njw/htmltext/htmltext.html Beachten Sie, daß auch der in Abschnitt 1.3.1.8 erwähnte TkWWW ein HTML-Editor ist. Da er auch als Web-Browser arbeitet, können Sie Verweise sofort nach dem Einrichten ausprobieren. Eine andere Möglichkeit ist der Einsatz eines der bekannten kommerziellen Publishing-Pakete (z.B. FrameMaker) und Konvertierung der Dokumente nach HTML. Nützlich ist auch eines der neuen kommerziellen Programme zum Erstellen von HTML-Dokumenten für das Web, z.B. HoTMetaL von SoftQuad oder CyberLeaf von Interleaf.
Der am CERN entwickelte Web-Browser für NeXT verfügt ebenfalls über Funktionen zum Erstellen von HTML-Dokumenten. Leider brauchen Sie dazu die verwaiste NeXT-Workstation. Unabhängig davon, wie Sie Ihre Dokumente erstellen, sollten Sie Ihren HTML-Code immer mit einer Reihe von Web-Browsern testen. Ein Fehler im HTML-Code kann sich in manchen Browsern auswirken und in anderen folgenlos bleiben. Wenn die SGML-kompatible HTML-Version standardisiert ist, können Sie Ihren HTML-Code mit speziellen Programmen verifizieren. Damit läß sich die syntaktische Korrektheit sicherstellen, ohne daß die Dokumente mit verschiedenen Browsern getestet werden müssen. 3.3.1 HTML-Modus von Emacs Der HTML-Modus für Emacs (html-mode.el) läuft mit GNU Emacs v18 und v19, Epoch und Lucid Emacs. Diese Erweiterung ermöglicht über Tastaturkommandos die Eingabe und Formatierung der wichtigsten HTML-Konstrukte, etwa Titel, Überschriften, Absätze, verschiedene Listen und IMG-Tags. Die Erweiterung unterstützt die Menüleiste von Lucid Emacs und die Schrifteinstellung. Um die Erweiterung für den HTML-Modus von Emacs zu erhalten, richten Sie Ihren Web-browser auf ftp://ftp.ncsa.uiuc.edu/Web/html/elisp/html-mode.el 3.3.2 FrameMaker http://www.oreilly.de/german/freebooks/Html_buch/www03.html (18 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
FrameMaker 5 wird mit dem HTML-Konverter WebWorks HTML Lite ausgeliefert, der die Erstellung von HTML-Dokumenten direkt aus FrameMaker heraus ermöglicht. Zur Steuerung der Konvertierung kann man die Zuordnung von Absatz- und Zeichenstilen auf HTML-Tags festlegen. Wenn Sie nicht mit der neuesten FrameMaker-Version arbeiten, ist es am einfachsten, wenn Sie Ihr Dokument mit einer HTML-Stilvorlage erstellen, es im Maker Interchange Format (MIF) abspeichern und dann nach HTML konvertieren. Unter folgenden URLs finden Sie verschiedene Filter und Stilvorlagen zur HTML-Erstellung mit FrameMaker: http://www.w3.org/hypertext/WWW/Frame/fminit2.0/www_and_frame.html ftp://bang.nta.no/pub/fm2html ftp://ftp.alumni.caltech.edu/pub/mcbeath/web/miftrans Quadralay, der Entwickler des in Frame 5 integrierten WebWorks HTML Lite, bietet unter der Bezeichnung WebWorks Publisher einen mächtigeren Konverter an. Der am CERN entwickelte WebMaker für UNIX-Systeme bietet ebenfalls umfangreiche Konvertierungsmöglichkeiten. Er wird in Zukunft von Harlequin weiterentwickelt und vertrieben. Harlequin möchte auch Versionen für Windows und Macintosh anbieten. Weitere Informationen finden Sie unter folgenden URLs: http://www.quadralay.com http://www.harlequin.com 3.3.3 HoTMetaL SoftQuad HoTMetaL ist ein HTML-Editor mit WYSIWYG-Fähigkeiten, der für Sun/Motif und Microsoft Windows erhältlich ist. SoftQuad kooperiert mit NCSA. Beide Organisationen stimmen HoTMetaL und Mosaic aufeinander ab, um das Zusammenspiel dieser Programme zu verbessern. Da HoTMetaL kontextsensitiv arbeitet, erleichtert es die Erstellung neuer und die Nachbearbeitung existierender HTML-Dokumente. Es gibt zwei Varianten von HoTMetaL, nämlich eine frei verfügbare Version ohne Support und eine verbesserte kommerzielle Version. Die kostenlose Version erhalten Sie, indem Sie Ihren Web-Browser auf folgenden URL richten: http://www.sq.com SoftQuad HoTMetaL Pro ist eine kommerzielle Version von HoTMetaL mit vollständigem Support, die komplexere Dokumentstrukturen wie Tabellen und Formulare beherrscht. Diese Version ist zur Zeit für UNIX verfügbar, andere Plattformen sollen bald unterstützt werden. Um weitere Informationen zu erhalten, senden Sie E-Mail an [email protected]. Zeitgleich mit der Ankündigung von SoftQuad HoTMetaL kündigte Avalanche Development Konverter an, die Dokumente von WordPerfect und Microsoft Word nach HTML umwandeln. 3.3.4 Symposia Symposia stammt von der französischen Firma GRIF. Dieser Editor für UNIX (Versionen für Microsoft Windows und Macintosh sind angekündigt) ist gleichzeitig Editor und Browser und kann ein HTML-Dokument wahlweise wie im Browser darstellen oder den HTML-Text anzeigen. Da die Eingabe der Tags kontextsensitiv erfolgt, ist eine fehlerhafte Eingabe von Tags gar nicht möglich. Symposia beherrscht Tabellen und Inline-Graphiken. Zur Zeit ist eine Betaversion von Symposia verfügbar, eine kommerzielle Variante ist angekündigt. Weitere Informationen finden Sie unter folgendem URL:
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (19 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
http://symposia.inria.fr/symposia/Welcome.html 3.3.5 asWedit asWedit ist der erste Editor, der alle neuen Tags der aktuellen Definition von HTML 3.0 unterstützt. Dieser frei verfügbare Editor für Unix-Systeme kann auch Dokumente im Format HTML 2.0 erzeugen. Die Eingabe mathematischer Formeln ist zwar etwas umständlich, aber immerhin muß man die entsprechenden Tags nicht wie bei anderen Editoren von Hand einfügen. Ein Nachteil von asWedit besteht darin, daß die einzelnen Elemente eines Dokuments nicht unterschiedlich angezeigt werden, sondern zusammen mit den Tags in gleicher Schriftart und -größe. Sie erhalten diesen Editor, der unter X/Motif läuft, unter folgendem URL: ftp://ftp.cc.ic.ac.uk/pub/packages/www/tools/asWedit 3.3.6 CyberLeaf CyberLeaf von Interleaf wird als kommerzielles Werkzeug zur Erstellung und Integration von HTML-Dokumenten und zur Konvertierung eingestuft. Durch die interaktive Bearbeitung von URLs ist die Erstellungsumgebung CyberLeaf vollständig in das Web integriert. CyberLeaf kann auf Mausklick Querverweise innerhalb eines Dokuments oder zwischen mehreren Dokumenten anlegen. CyberLeaf ermöglicht außerdem die interaktive oder stapelorientierte Konvertierung existierender Interleaf-Dokumente nach HTML. Es unterstützt auch eine ausgiebige Sammlung von Filtern zur Konvertierung von und nach Microsoft Word und WordPerfect. Um weitere Informationen zu erhalten, senden Sie E-Mail an pwerner@ileaf .com. 3.3.7 HTML-Konverter und -Filter Es gibt wesentlich mehr HTML-Konverter und -Filter als Programme zur reinen Erstellung von HTML-Dokumenten. Um mehr über die bekanntesten Pakete zu erfahren, richten Sie Ihren Web-Browser auf die unten aufgeführten URLs. Dort können Sie entweder die Software beziehen (und die Datei README lesen) oder der Online-Beschreibung Genaueres über das Paket entnehmen. Bei vielen Konvertern gibt es mehrere Versionen. Jemand schrieb die ursprüngliche Version, und andere benutzten sie als Ausgangspunkt, um zusätzliche Funktionen einzubauen. Sie können auch den jeweiligen Autor ermitteln und ihm Fehlerbehebungen oder Vorschläge für weitere Funktionen mitteilen. ASCII-Text nach HTML: http://www.seas.upenn.edu/~mengwong/txt2html.html BibTeX nach HTML: ftp://gaia.cs.umass.edu/pub/hgschulz/windex-1.2.tar.Z http://www.research.att.com/biblo.html Interleaf nach HTML: http://www.w3.org/hypertext/WWW/Tools/il2html.html http://www.w3.org/hypertext/WWW/Tools/interleaf.html LaTex nach HTML: http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (20 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
ftp://skye.aiai.ed.ac.uk/pub/tex2rtf/ Mail nach HTML: ftp://ftp.uci.edu/pub/dtd2html Suchen Sie in diesem Verzeichnis nach der neuesten tar-Datei perlWWW. PostScript nach HTML: http://stasi.bradley.edu/ftp/pub/ps2html/ps2html-v2.html Texinfo nach HTML: http://asis01.cern.ch/infohtml/texi2html.html Troff nach HTML: http://cui_www.unige.ch/ftp/PUBLIC/oscar/scripts/ms2html Die aktuellsten Informationen über Konverter und Filter finden Sie unter http://www.w3.org/hypertext/WWW/Tools/Filters.html
3.4 Interaktive Bilder Angenommen, Sie wollen den Benutzern Ihres Web-Servers den örtlichen Wetterbericht anbieten. Was wäre besser geeignet, als eine eingebettete Landkarte anzuzeigen, in der man auf eine beliebige Stelle klicken kann, um den jeweiligen Wetterbericht zu erhalten? Für solche Anwendungen gibt es die interaktiven Bilder (clickable image maps). Wie die folgenden Beispiele zeigen, gibt es dafür noch viele andere Anwendungen: ● Um den Benutzern das Verständnis eines Bildes oder Diagramms zu erleichtern, können sie auf einen Teil der Graphik klicken und erhalten dann eine Erklärung. ● Die Benutzer können eine genauere Karte für ein Gebäude oder ein weitläufiges Hochschulgelände anfordern. Interaktive Bilder funktionieren nur mit einem graphikfähigen Web-Browser. Sie sollten daher immer versuchen, die gleichen Informationen auch in einer rein zeichenorientierten Version anbieten. Zur Erzeugung eines interaktiven Bildes sind die folgenden Schritte nötig: 1. Suchen Sie ein geeignetes Bild, und überlegen Sie sich, wo Sie die Hotspots plazieren, also die Bereiche, die Querverweise auslösen. 2. Erstellen Sie eine Image-Map-Datei, die die Position der Hotspots enthält und die URLs beschreibt, die den Hotspots zugeordnet sind. 3. Ermöglichen Sie Ihrem Web-Server den Zugriff auf die Image-Map-Datei. 4. Verweisen Sie in einem HTML-Dokument auf die Image-Map. 5. Testen Sie das interaktive Bild. Wir wollen uns diese Schritte im Detail ansehen. 3.4.1 Planung eines interaktiven Bildes Wählen Sie zuerst die Inline-Graphik aus, die Sie verwenden wollen. Wie alle Inline-Graphiken muß sie im GIF-Format vorliegen, um größtmögliche Portierbarkeit zu gewährleisten. Die meisten Dienstleister im graphischen Gewerbe können Fotos einscannen und daraus GIF-Dateien erzeugen. Eine andere Möglichkeit ist die Erstellung mit einem http://www.oreilly.de/german/freebooks/Html_buch/www03.html (21 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Malprogramm. Als nächstes legen Sie in Gedanken die Position der Hotspots fest. Wir wollen uns dazu ein Beispiel ansehen. Abbildung 3-6 enthält ein Foto meines Büros, das ich als Ausgangspunkt für ein virtuelles Büro verwenden werde. Es ist bestimmt amüsant, mit diesem Foto die Grenzen zwischen unserer physikalischen Welt und der virtuellen Welt des Web zu verwischen.
Abb. 3-6. Ein digitalisiertes Foto meines Büros. Die Hotspots können durch beliebige Rechtecke, Polygone und Kreise definiert werden. In Abbildung 3-6 sehen Sie die Hotspots dieses Fotos. Ich kann von vielen physikalischen Dingen, die auf dem Foto dargestellt werden, einen direkten Querverweis auf ihre virtuellen Gegenstücke im Web einrichten. Ich lege z.B. ein Exemplar des Magazins Wired auf meinen Tisch und richte einen Hyperlink vom Magazin auf dem Foto zum Web-Server der Wired-Redaktion ein. Wenn es keine virtuellen Gegenstücke gibt, so kann ich sie erzeugen. Welche Formen Sie verwenden, hängt davon ab, was Ihre Graphik darstellt: ● Die Map für den Plan einer Büroetage kann jedes Büro als Rechteck zeigen. ● Die Map für ein Klassenfoto kann die Köpfe der Personen als Kreise wiedergeben. ● Die Map für ein Flugzeug kann den unregelmäßigen Umriß eines Flügels oder eines Teils des Rumpfs durch eine Reihe von Polygonen darstellen. 3.4.2 Zuordnung der Hotspots Im zweiten Schritt entwickeln Sie die Datei mit der Image-Map. Sie müssen für jedes interaktive Bild auf Ihrem Web-Server eine eigene Image-Map anlegen. Jede Zeile der Image-Map-Datei definiert einen Hotspot. Sie definiert dazu einen Bereich innerhalb der Graphik und den zugehörigen URL, der zurückgeliefert wird, wenn jemand in diesen Bereich klickt. Mit einem Nummernzeichen »#« am Anfang der Zeile können Sie Kommentarzeilen kennzeichnen. Hotspots haben folgende Form: shape URL coordinate-1,coordinate-2 ... coordinate-n shape kann dabei folgende Werte annehmen: circle Ein Kreis (mit zwei Koordinatenpaaren: Mittelpunkt und beliebiger Randpunkt) poly Ein Polygon (mit maximal 100 Ecken, jede Koordinate beschreibt eine Ecke) rect Ein Rechteck (mit zwei Koordinatenpaaren: obere linke und untere rechte Ecke) Die Koordinaten sind jeweils (x, y)-Paare, die den Abstand von der oberen linken Ecke des Bilds in Pixeln angeben. Der URL kann entweder ein beliebiger URL auf eine Ressource im World Wide Web sein oder ein URL auf Ihrem Server, dann jedoch ohne http://rechnername. Wir werfen einen Blick auf die Image-Map, die ich in der Datei office.map angelegt habe: default /map/none.html
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (22 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
poly poly poly poly rect poly poly poly poly rect poly
Wenn eine Benutzerin mit der Maus klickt, nimmt der Server die Koordinaten entgegen und überprüft anhand der Image-Map, ob der Klick innerhalb eines Hotspots erfolgte. Beim ersten Treffer in der Map-Datei wird über den zugehörigen URL ein Dokument zum Web-Browser übertragen. Gibt es keinen Treffer, so wird ein voreingestellter URL (den Sie in der Image-Map angeben) zurückgeliefert. Jede Map-Datei kann nur eine solche Voreinstellung enthalten. Es ist üblich, Kreise, verschiedene Polygone und Rechtecke zusammen in einer Map-Datei zu verwenden. Falls sich Hotspots überlappen, wird immer der erste Treffer benutzt. Sie sollten überlappende Hotspots allerdings nach Möglichkeit vermeiden. Achten Sie auf alle Fälle darauf, daß sie in der gewünschten Reihenfolge stehen. Wie bestimmen Sie die (x, y)-Pixelkoordinaten für die einzelnen Einträge? Eine Möglichkeit ist die Benutzung von xv zur Darstellung des Bilds: Klicken Sie einfach in die Graphik, um die Koordinaten zu erhalten, die Sie für die Form der einzelnen Hotspots benötigen. Beachten Sie, daß alle URLs in einer Map-Datei auf HTML-Dateien zeigen und nicht auf Graphikdateien (obwohl manche tatsächlich Graphiken darstellen). Ich hätte den URL für das Foto an der Wand auch tatsächlich auf eine GIF-Datei des Fotos richten können, habe dies aber nicht getan. Das würde nämlich voraussetzen, daß der Benutzer ein externes Programm zur Anzeige von GIF-Dateien installiert hat (denn der Web-Browser selbst stellt nur Graphiken innerhalb einer HTML-Datei dar). Daher zeigt jeder Hotspot auf eine .html-Datei, die das jeweilige Bild als Inline-Graphik enthält. Als voreingestellten URL (wenn jemand in einen Bereich klickt, der nicht zu einem Hotspot gehört) liefert das virtuelle Büro eine Fehlermeldung und eine kleinere Version des gleichen Fotos des Büros, in dem die Hotspots markiert sind. Es sieht eigentlich fast aus wie Abbildung 3-6. Liefern Sie keine aufwendige Graphik zurück, die nur die Meldung »Tut mir leid, versuchen Sie's nochmal« enthält. Bei einer langsamen Verbindung kann die Übertragung der Fehlermeldung bzw. Graphik ziemlich lange dauern. Für die Benutzerin ist es sehr frustrierend, 30 Sekunden zu warten, nur um festzustellen, daß nicht die gewünschte Graphik kommt. Sie können als Voreinstellung auch einen einfachen Text verwenden. 3.4.3 Verbindung der Map-Datei mit einem URL Im nächsten Schritt verknüpfen wir Ihre Map-Datei mit dem Namen der Map, den Sie in Ihrem HTML-Code benutzen. Die Konfigurationsdatei imagemap.conf enthält eine Liste aller Ihrem Server bekannten Map-Dateien und deren Namen. Sie steht normalerweise im Verzeichnis /conf im Stammverzeichnis des Web-Servers. In imagemap.conf sind Zeilen mit einem Nummernzeichen »#« am Anfang Kommentarzeilen. Alle anderen nicht leeren Zeilen enthalten Einträge der Form name: path name ist dabei der Name der Map und path der absolute Pfad der Image-Map-Datei oder ein relativer Pfad vom Stammverzeichnis des Web-Servers aus. Im bisher benutzten Beispiel würden wir die folgende Zeile in die Datei imagemap.conf eintragen: office: /map/office.map Die Datei imagemap.conf wird nicht beim Start Ihres httpd-Servers geladen, sondern immer dann, wenn jemand auf ein http://www.oreilly.de/german/freebooks/Html_buch/www03.html (23 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
interaktives Bild klickt. Sie können Map-Dateien an einer beliebigen Stelle auf Ihrem Server ablegen. Es ist jedoch sinnvoll, alle Map-Dateien für einen Server zusammen im Verzeichnis /map abzulegen. Außerdem sollten Sie Einzelpersonen, die HTML-Dokumente anbieten, dazu auffordern, ihre Image-Maps zusammen mit den Bildern und den zugehörigen HTML-Dokumenten in der gleichen Verzeichnisstruktur zu speichern. 3.4.4 Einbindung der interaktiven Bilder in HTML-Code Die Einbindung von Inline-Graphiken in ein HTML-Dokument mit dem HTML-Tag für Bilder haben wir bereits vorgestellt: Im letzten Schritt zur Einrichtung von Image-Maps müssen Sie dem Web-Browser, der auf das HTML-Dokument zugreift, mitteilen, daß die dargestellte Inline-Graphik ein interaktives Bild ist. Dazu fügen Sie im Tag die optionale Angabe ISMAP ein: In der Praxis legen Sie einen Verweis an, der durch das Bild ausgelöst wird. Der URL zeigt auf die Image-Map und übergibt den Namen der Map: Wir werden gleich erklären, wie das alles funktioniert. Im Prinzip benutzen Sie aber nur dieses HTML-Fragment und setzen den Namen Ihrer Map (vor dem Doppelpunkt in imagemap.conf) sowie Ihren URL ein. In unserem Beispiel verweisen wir mit folgendem HTML-Code auf die Image-Map für das virtuelle Büro: 3.4.5 Test der Image-Map Wenn der ganze Zauber wirkt, sollte Ihre Image-Map jetzt funktionieren. Wir öffnen zunächst den URL des Dokuments, das den eben gezeigten HTML-Code enthält. Im Browser sollte jetzt eine Inline-Graphik erscheinen (siehe linken Teil von Abbildung 37).
Abb. 3-7. Das interaktive Bild (clickable image map) des virtuellen Büros in Mosaic. Wenn Sie auf das Bücherregal an der linken Wand des Büros klicken, erscheint eine Bibliographie der Bücher im Regal (siehe rechten Teil von Abbildung 3-7). Ein Mausklick auf eines der Bücher liefert Informationen über diese Bücher vom Web-Server des jeweiligen Verlags. 3.4.6 Wie Image-Maps wirklich funktionieren imagemap ist ein vorkompilierter Gateway, der sich mit dem Web-Server-Paket im Verzeichnis cgi-bin befindet.(3) Sie erfahren nun, wie Image-Maps wirklich funktionieren. Wenn der Benutzer auf das Bild klickt, löst er den Verweis aus. Der Web-Server ruft daraufhin das Programm imagemap auf und übergibt diesem den Namen der Map. Das Programm imagemap öffnet die Datei imagemap.conf und ermittelt anhand des Map-Namens die richtige Map-Datei. http://www.oreilly.de/german/freebooks/Html_buch/www03.html (24 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Dann öffnet es die Map-Datei und sucht nach dem ersten Hotspot, der den Mausklick enthält. Findet imagemap einen solchen Hotspot, so liefert es den zugehörigen URL zurück. Eine Erkenntnis, die Sie aus dieser Erklärung gewinnen, besteht darin, daß bei jedem Mausklick im interaktiven Bild zwei Dateien geöffnet und gelesen werden. Außerdem ist ein gewisser Rechenaufwand nötig, um festzustellen, in welchen Hotspot geklickt wurde. Image-Maps haben also Ihren Preis. Daher sollten Sie darauf achten, imagemap.conf und Ihre Map-Dateien so kurz wie möglich zu halten.
3.5 Die wichtigsten Erweiterungen in HTML3.0 Da die Standardisierung von HTML 3.0 bei Drucklegung dieses Buches noch nicht abgeschlossen war, beschränken wir uns in diesem Abschnitt auf die wichtigsten Tags der neuen HTML-Version. Um die HTML-Versionen voneinander unterscheiden zu können, sollte man für HTML 3.0 folgenden MIME-Typ benutzen: text/html; version=3.0 Diese Zuordnung verhindert eine fehlerhafte Darstellung in Browsern, die nur HTML 2.0 auswerten können. Zur einfacheren Unterscheidung sollte man außerdem die Dateinamenerweiterungen .html3 bzw. .ht3 (für PCs) benutzen. 3.5.1 Tabellen Die Erweiterungen für Tabellen wurden bereits vor der Standardisierung von HTML 3.0 in den Browsern von Netscape und NCSA implementiert. Das Modell zur Beschreibung von Tabellen lehnt sich zwar an SGML an, ist jedoch nicht so umfangreich, um die Implementierung zu erleichtern. Der Browser formatiert Tabellen automatisch entsprechend der Größe der einzelnen Tabellenzellen und der Größe des Fensters. Der Autor eines HTML-Dokuments kann allerdings auch Formatangaben vorgeben. Tabellen bestehen aus einer optionalen Unterschrift und einer oder mehreren Zeilen, die wiederum aus einer oder mehreren Zellen bestehen. Bei den Zeilen wird zwischen Kopf- und Datenzeilen unterschieden. Einzelne Zellen können sich über mehrere Zeilen oder Spalten erstrecken. Die Zellen einer Tabelle können wiederum verschiedene Elemente enthalten, etwa Überschriften, Listen, Absätze, Formulare und sogar Graphiken und verschachtelte Tabellen. Bei linksoder rechtsbündig angeordneten Tabellen fließen die nachfolgenden Elemente um die Tabelle, wenn das Ausgabefenster genügend Platz bietet. Abbildung 3-8 zeigt als Beispiel die Darstellung einer Tabelle im W3C-Referenzbrowser Arena. Die Tabelle wird durch folgenden HTML-Code beschrieben:
Abb. 3-8. Darstellung einer Tabelle im Referenzbrowser Arena.
Tabelle: Ergebnisse der ersten Messung
Durchschnitt
sonstige Werte
Größe
Gewicht
Gruppe A
14,1
0,8
5
Gruppe B
9,8
0,5
3
Dabei erstrecken sich zwei Zellen über mehrere Zeilen bzw. Spalten. Standardmäßig werden Zellen in Kopfzeilen
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (25 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
zentriert ausgegeben und Datenzellen linksbündig. Dies kann jedoch für einzelne Zellen, einzelne Zeilen oder die ganze Tabelle geändert werden. Wir wollen uns die in der Tabellenbeschreibung benutzten Tags ansehen:
Tabellenbeschreibung
/ Das Tag-Paar
klammert die gesamte Tabellenbeschreibung. Das Tag (Bild- oder Tabellenunterschrift) enthält die Beschriftung für eine Tabelle oder Graphik. Dieses Tag ist auch im Zusammenhang mit dem Tag erlaubt (siehe Abschnitt 3.5.3, Graphiken).
Das Tag
(table row) beschreibt eine Zeile der Tabelle.
Das Tag
(table header) beschreibt eine Kopfzelle innerhalb einer Zeile. Der Browser kann Kopfzellen z.B. in einer fetteren Schrift als Datenzellen darstellen.
Das Tag
(table data) beschreibt eine Datenzelle innerhalb einer Zeile. Die Darstellung der Tabelle läßt sich durch Attribute genauer steuern. Beim Tag
sind folgende Attribute möglich (Auswahl): Das Tag steuert die horizontale Ausrichtung der Tabelle (nicht die Ausrichtung innerhalb der Zellen!). Dabei sind folgende Werte möglich: ALIGN=BLEEDLEFT Bündig mit dem linken Rand des Fensters. ALIGN=LEFT Bündig mit dem linken Textrand. ALIGN=CENTER Zentriert zwischen linkem und rechtem Textrand. Der automatische Textfluß rund um die Tabelle ist deaktiviert. Dies ist die Standardeinstellung. ALIGN=RIGHT Bündig mit dem rechten Textrand. ALIGN=BLEEDRIGHT Bündig mit dem rechten Rand des Fensters. ALIGN=JUSTIFY Falls möglich, füllt die Tabelle den Platz zwischen linkem und rechtem Textrand. Der automatische Textfluß rund um die Tabelle ist deaktiviert. Der automatische Textfluß rund um die Tabelle ist deaktiviert. Die Zellen der Tabelle werden von Linien umrandet. Dieses Attribut verhindert den automatischen Zeilenumbruch innerhalb der Zellen. Mit dem Tag kann man Zeilenumbrüche explizit festlegen. Dieses Attribut enthält eine Liste mit Spaltenbreiten und der gewünschten Ausrichtung. Die Spalten werden von
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (26 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
links nach rechts aufgeführt, wobei jeweils ein Buchstabe die Formatierung beschreibt und eine Zahl die Spaltenbreite, z.B. COLSPEC="L15 C10 L20". Die Breite wird in der Einheit »en« angegeben, die der halben Fonthöhe entspricht. Für die Formatierung sind die Buchstaben L (linksbündig), C (zentriert), R (rechtsbündig), J (Blocksatz, falls möglich, sonst linksbündig) und D. D steht für dezimale Ausrichtung. Dabei werden alle Einträge am Dezimalpunkt ausgerichtet. Mit dem Attribut DP läßt sich ein anderes Zeichen für die Ausrichtung einstellen. Bei den Tags
und
sind folgende Attribute möglich (Auswahl): Dieses Tag beschreibt die horizontale Ausrichtung der Absätze innerhalb einer Tabellenzeile. Standardmäßig werden Kopfzellen zentriert und Datenzellen linksbündig formatiert. Bei sind folgende Werte möglich: ALIGN=LEFT Absätze werden linksbündig formatiert. ALIGN=CENTER Absätze werden zentriert. ALIGN=RIGHT Absätze werden rechtsbündig formatiert. ALIGN=JUSTIFY Absätze werden im Blocksatz formatiert. Ist dies nicht möglich, erfolgt linksbündige Formatierung. ALIGN=DECIMAL Zeilen werden so eingerückt, daß jeweils die ersten Dezimalpunkte untereinander stehen. Mit dem Attribut DP läßt sich ein anderes Zeichen für die Ausrichtung einstellen. Dieses Tag beschreibt die vertikale Ausrichtung der Absätze innerhalb einer Tabellenzeile. Es kann durch das Attribut einzelner Zellen überschrieben werden und folgende Werte enthalten: VALIGN=TOP Der Zelleninhalt erscheint am oberen Rand der Zelle. VALIGN=MIDDLE Der Zelleninhalt wird vertikal zentriert. VALIGN=BOTTOM Der Zelleninhalt erscheint am unteren Rand der Zelle. VALIGN=BASELINE Dieser Wert bewirkt, daß innerhalb einer Tabellenzeile jeweils die ersten Zeilen aller Zellen auf einer gemeinsamen Grundlinie stehen. Dieses Attribut verhindert den automatischen Zeilenumbruch innerhalb der Zellen. Mit dem Tag kann man Zeilenumbrüche explizit festlegen. 3.5.2 Formeln Die fehlende Formelunterstützung in HTML 2.0 läßt sich nur durch die Notlösung umgehen, Formeln als GIF-Graphiken zu rastern und als Inline-Graphik einzubetten. Dies bringt aber verschiedene Nachteile mit sich: Die Darstellung der Formel kann z.B. nicht an die jeweiligen Gegebenheiten (Fenstergröße, verfügbare Schriften etc.) angepaßt werden, eine Umsetzung der Formeln auf zeichenorientierten Terminals ist nicht möglich. HTML 3.0 behebt diese Nachteile durch die Möglichkeit, mathematische und chemische Formeln mit HTML-Anweisungen zu beschreiben. Der Browser wertet die logische Beschreibung der Formeln aus und stellt sie mit den Mitteln des benutzten Ausgabegeräts dar. Die »Formelsprache« von HTML 3.0 orientiert sich sehr stark am
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (27 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Formelformat des TeX-Systems, das eine wichtige Rolle beim Satz wissenschaftlicher Arbeiten spielt. Das Formelformat von HTML 3.0 mag zwar zunächst etwas unübersichtlich erscheinen, geübte TeX-Benutzer werden aber (trotz der syntaktischen Unterschiede) wenig Probleme bei der manuellen Erstellung von Formelsatz in HTML haben. Einfacher ist natürlich die Erstellung der Formel mit einem HTML-Editor oder die Konvertierung aus einem der gängigen Textverarbeitungssysteme. Die Formelsprache von HTML 3.0 ist mächtig genug, um den Funktionsumfang der meisten Systeme abzudecken. Selbst beim Einsatz zeichenorientierter Terminals ohne graphische Fähigkeiten ist eine Näherungsdarstellung der Formeln mit ASCII-Zeichen möglich. Da die Formelsprache von HTML 3.0 sehr umfangreich ist, wollen wir uns auf einige Beispiele beschränken. Eine einfache Formel der Art
wird durch folgenden HTML-Code beschrieben: <MATH>int_a_^b^{f(x)1+x} dx Das Tag-Paar <MATH> und klammert dabei die gesamte Formel ein, die Zeichen _ bzw. ^ dienen als Kurzschreibweise für SUB und SUP. Diese Operatoren erzeugen tief- bzw. hochgestellten Text (subscript bzw. superscript). Die geschweiften Klammern { und } dienen als Abkürzung für das Tag-Paar und , das mehrere Elemente zu einer Einheit zusammenfaßt. Obige Formel könnte auf einem zeichenorientierten Terminal durch eine ASCII-Darstellung angenähert werden: b /f(x) |------- dx /1 + x a Wie bei mathematischen Texten üblich, werden bei der Formeldarstellung in HTML Funktionen, Zahlen und Konstanten in gerader Schrift ausgegeben, Variablen dagegen kursiv. Diese Grundeinstellung läßt sich jedoch überschreiben, außerdem ist die Darstellung in Fettschrift möglich. Die Abstände zwischen den einzelnen Elementen einer Formel berechnet der Browser automatisch, allerdings kann der Autor eines Dokuments auch dies beinflußen. Für mehrzeilige Formeln gibt es keine eigenen Anweisungen, dies läßt sich jedoch durch Kombination von Formeln und Tabellen erreichen. Abbildung 3-9 zeigt die Darstellung einiger Formeln im Referenzbrowser Arena zusammen mit dem zugehörigen HTML-Code.
Abb. 3-9. Mathematische Formeln in HTML 3.0 und der zugehörige HTML-Code. Innerhalb des Tag-Paars <MATH> sind folgende Anweisungen möglich: BOX Dient als Begrenzung für unsichtbare Klammernpaare, große Operatoren wie Integrale oder zur Kennzeichnung von Zähler und Nenner bei Brüchen. SUB, SUP Hoch- und tiefgestellte Elemente.
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (28 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
Abb. 3-10. Schreibweise und Darstellung der griechischen und mathematischen Sonderzeichen. ABOVE Zeichnet einen Pfeil, eine Linie oder ein Symbol oberhalb einer Gleichung. BELOW Zeichnet einen Pfeil, eine Linie oder ein Symbol unterhalb einer Gleichung. VEC, BAR, DOT, DDOT, HAT, TILDE Diese Anweisungen dienen alternativ zu ABOVE als Abkürzung für gebräuchliche Akzentzeichen. SQRT, ROOT Erzeugt die Quadratwurzel bzw. beliebige Wurzel eines Ausdrucks. ARRAY Erzeugt Matrizen und andere Felder mit mehreren Elementen. TEXT Ermöglicht kurze Textstücke innerhalb einer Formel, z.B. in Kombination mit SUB oder SUP. B, T, BT Diese Elemente ändern die Standarddarstellung eines Elements: B (bold) bewirkt fette Darstellung, T Ausgabe in gerader Schrift und BT Ausgabe in fetter gerader Schrift. Im Zusammenhang mit Formeln spielen griechische Buchstaben und mathematische Symbole eine wichtige Rolle. Zu diesem Zweck ermöglicht HTML 3.0 die Verwendung der Zeichen aus dem PostScript-Font Symbol. Diese können nicht direkt eingegeben werden, sondern müssen durch sogenannte entity names gekennzeichnet werden. Abbildung 3-10 enthält eine Tabelle mit der Darstellung der griechischen Buchstaben und mathematischen Operatoren zusammen mit der jeweiligen Schreibweise im HTML-Code In Anhang B, Sonderzeichen in HTML, finden Sie weitere Hinweise zur Eingabe von Sonderzeichen. 3.5.3 Graphiken HTML 3.0 erweitert die Möglichkeiten zur Einbindung von Graphiken mit dem Tag um das neue Tag (figure), das viele Einschränkungen aufhebt. So ist es in HTML 3.0 möglich, Text um eingebettete Graphiken herumfließen zu lassen, falls das Ausgabefenster genügend Platz bietet. Die sogenannten overlays erlauben es, Bilder zu überlagern. Ändert sich nur ein kleiner Teil der Graphik, so genügt es, die Änderungen vom Server zu laden und die bereits im Client gespeicherte Graphik damit zu überlagern. Dies beschleunigt die Verarbeitung eingebetteter Graphiken enorm. Bildunterschriften können in HTML 3.0 wesentlich ausführlicher sein und z.B. hervorgehobenen Text oder Überschriften enthalten. Der folgende HTML-Code beschreibt eine Graphik mit Bildunterschrift: Luftbild von Berlin während der Reichstagsverhüllung
Die Abbildung zeigt das Gebiet rund um das Brandenburger Tor im Sommer 1995. A.B.Müller/Photo Artists Das Tag-Paar klammert die Beschreibung der Abbildung, klammert die Bildunterschrift und kann auf einen Urheber oder ähnliches verweisen. Beim Tag sind neben SRC und IMAGEMAP, die die gleiche Bedeutung wie beim Tag haben, folgende Attribute zuläßig (Auswahl): http://www.oreilly.de/german/freebooks/Html_buch/www03.html (29 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
NOFLOW Dieses Attribut verhindert den automatischen Textfluß rund um die Graphik. ALIGN Legt die horizontale Ausrichtung der Graphik fest: BLEEDLEFT Ausrichtung mit dem linken Rand des Fensters. LEFT Ausrichtung mit dem linken Textrand. CENTER Die Graphik wird zwischen den Texträndern zentriert, nachfolgender Text umfließt die Graphik nicht. Dies ist die Standardeinstellung für ALIGN. RIGHT Ausrichtung mit dem rechten Textrand. BLEEDRIGHT Ausrichtung mit dem rechten Rand des Fensters. JUSTIFY Falls möglich, wird die Graphik so verkleinert oder vergrößert, daß sie den Platz zwischen linkem und rechtem Textrand einnimmt. MD Dieses Attribut kann einen sogenannten message digest oder eine Prüfsumme enthalten, der sich auf die bei SRC angegebene Graphik bezieht. Damit kann der Autor eines Dokuments sicherstellen, daß sich das eingebettete Objekt nicht geändert hat. WIDTH, HEIGHT Beschreiben die gewünschte Breite bzw. Höhe der Graphik in Pixeln oder en-Einheiten. Der Browser kann die Graphik entsprechend skalieren. UNITS Legt die Einheit für WIDTH und HEIGHT fest. Mögliche Werte sind UNITS=PIXELS (Standardeinstellung) und UNITS=EN. Die Einheit en entspricht der halben Fonthöhe. 3.5.4 Erweiterte Layoutmöglichkeiten HTML 3.0 bietet erweiterte Layoutmöglichkeiten, von denen wir exemplarisch die wichtigsten vorstellen möchten. Bei einfachen Listen (Tag-Paar
) kann man festlegen, welches Zeichen als Aufzählungszeichen dient. Dazu enthält das Attribut DINGBAT im Tag
den Namen des gewünschten Sonderzeichens, z.B. folder für das Symbol eines Verzeichnisses/Ordners. Auch vor Überschriften lassen sich mittels DINGBAT Sonderzeichen erzeugen. Zur besseren Formatierung von Überschriften können die Tags bis das Attribut ALIGN enthalten, das mit den Werten LEFT, CENTER, RIGHT bzw. JUSTIFY für linksbündige, zentrierte, rechtsbündige bzw. blockformatierte Ausgabe sorgt. Mit Tabulatoren läßt sich die horizontale Positionierung genauer steuern. Da der Autor eines Dokuments die bei der Darstellung im Browser benutzte Schriftgröße nicht kennt, verläuft der Einsatz von Tabulatoren zweistufig: Im ersten Schritt legt man mit dem Attribut ID des Tags einen Namen für die aktuelle Position innerhalb der Zeile fest. Im zweiten Schritt kann man mit dem Attribut TO auf eine vorher definierte Stelle positionieren:
Sofa:gepolsterte Sitzgelegenheit mit Arm- und Rückenlehne http://www.oreilly.de/german/freebooks/Html_buch/www03.html (30 von 31) [11.04.2001 17:15:15]
HTML und das World Wide Web
(von arabisch suffa: Ruhebank, Erhöhung) Dies wird im Browser etwa wie folgt dargestellt: Sofa: gepolsterte Sitzgelegenheit mit Arm- und Rückenlehne (von arabisch suffa: Ruhebank, Erhöhung) Eine weitere Möglichkeit ist die numerische Angabe der gewünschten Einrückung in der Einheit en mit dem Attribut INDENT.
Fußnoten: (1) Die Datei kann auch ein Skript oder ein Programm enthalten. Diesen Fall werden wir in Kapitel 4, Gateways und Formulare im Web, behandeln. (2) Eine Beschreibung des pbmplus-Pakets und der zugehörigen Hilfsprogramme finden Sie in den Büchern UNIX Power Tools (O'Reilly & Associates/Random House) und Encyclopedia of Graphics File Formats (O'Reilly & Associates, Inc.). (3) Wenn Sie das Standardverzeichnis, in dem sich die Konfigurationsdatei imagemap.conf befindet, auf etwas anderes als /usr/local/etc/httpd/conf geändert haben, müssen Sie die Quelldatei imagemap.c entsprechend ändern und neu übersetzen, damit die Datei imagemap.conf gefunden wird. Inhaltsverzeichnis
Kapitel 2
Kapitel 4
http://www.oreilly.de/german/freebooks/Html_buch/www03.html (31 von 31) [11.04.2001 17:15:15]
4 Gateways und Formulare im Web Web-Browser können zwar auf einige Informationsdienste im Internet direkt zugreifen, jedoch nicht auf alle: Archie und Finger werden z.B. nicht unterstützt. Darüber hinaus passen nicht alle lokalen Informationsquellen in das Web-Schema mit statischen Dateien, die in Verzeichnissen plaziert werden. Die Informationen werden unter Umständen dynamisch erzeugt oder stammen aus einer ORACLE-Datenbank. Gateways bieten durch einen Erweiterungsmechanismus für das Web eine Lösungsmöglichkeit für solche Probleme. Ein Gateway formt eine Informationsquelle, die nicht in das Web-Schema paßt, so um, daß sie für den Browser wie eine Datei auf dem Web-Server erscheint. In der Praxis ist ein Gateway einfach ein Skript oder ein Programm, das über den Web-Server Benutzereingaben entgegennimmt und HTML-Code, einen URL oder andere Daten zum Benutzer zurückschickt (wiederum über den Web-Server). Formulare bieten eine einfache Möglichkeit, Daten vom Benutzer entgegenzunehmen. Der Web-Server reicht die Formulareingabe an ein Skript oder Programm auf Ihrem System weiter, das die Eingabe dann beliebig verarbeiten kann. Formularskripten und Gateways sind sich sehr ähnlich, da beide auf die gleiche Weise Daten vom und zum Web-Server übertragen. Die im Formular eingegebenen Daten können entweder von einem Gateway benutzt, nur gespeichert oder per Mail an jemanden versandt werden. O'Reilly & Associates verwendet z.B. ein Formular, mit dem man das Online-Magazin GNN im Web abonnieren kann. Da nur sehr wenige Web-Browser direkt auf WAIS-Datenbanken zugreifen können, ist es sinnvoll, ein Gateway zu Ihrem WAIS-Server einzurichten. In diesem Kapitel beschreiben wir die vier Möglichkeiten für den Zugriff auf einen WAIS-Server und helfen Ihnen bei der Auswahl einer dieser Möglichkeiten.
4.1 Gateways Sie können Gateways einsetzen, die bereits im Internet existieren, von anderen Leuten entwickelte Gateways installieren oder Ihre eigenen entwickeln. Sie müssen nicht unbedingt einen eigenen Gateway einrichten. Wenn Sie allerdings die Verarbeitung beschleunigen wollen oder die Formatierung der dem Benutzer angezeigten Informationen beeinflussen möchten, müssen Sie den Gateway selbst betreiben und den von ihm automatisch erzeugten HTML-Code steuern. 4.1.1 Das Common Gateway Interface
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (1 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
Der Mechanismus zur Kommunikation zwischen Gateway und Web-Server wird als Common Gateway Interface (CGI) bezeichnet. Abbildung 4-1 zeigt den prinzipiellen Informationsfluß zwischen CGI, Web-Server und Client. Gibt der Benutzer in einem Formular oder als Antwort auf eine -Anfrage Text ein und drückt anschließend die Eingabetaste, so sendet der Web-Browser die Tastatureingaben an den httpd-Server. Dieser nimmt die Eingaben entgegen, startet den Gateway und reicht die Eingaben mittels CGI an den Gateway weiter. Der Gateway erhält die Tastatureingaben des Benutzers über Umgebungsvariablen (dies ist die sogenannte GET-Methode) oder über die Standardeingabe (POST-Methode). Der Gateway parst dann die Eingabe und verarbeitet sie. Er kann HTML-Ausgabe erzeugen und an den httpd-Server zurückgeben, der sie wiederum zum Client überträgt. Der Gateway kann die Daten aber auch in einer Datei oder Datenbank speichern oder als E-Mail versenden.
Abb. 4-1. Informationsfluß durch das Common Gateway Interface (CGI). Der Gateway kann aus einem Skript oder Programm bestehen, das in C/C++, Perl, tcl, C-Shell oder Bourne-Shell geschrieben ist. Jede Sprache hat ihre eigenen Stärken als Gateway-Sprache. CGI-Gateways, die HTML-Ausgabe liefern, müssen vor der HTML-Ausgabe die folgende Zeile auf der Standardausgabe erzeugen: Content-type: text/html Nach dieser Zeile und noch vor dem ersten -Tag muß eine Leerzeile folgen. Der Gateway muß keinen HTML-Code generieren, sondern kann auch den URL einer anderen Datei zurückgeben und dem Browser so mitteilen, daß er die entsprechende Datei holen soll. Dies wird als URL-Umleitung (URL redirection) bezeichnet. CGI-Gateways mit URL-Umleitung geben die folgende Zeile auf der Standardausgabe aus: Location: URL Auch auf diese Zeile muß eine Leerzeile folgen, bevor der Datenstrom auf der Standardausgabe beendet wird. 4.1.1.1 Beispiel-Gateways
Das Web-Serverkit des NCSA wird mit verschiedenen Beispiel-Gateways ausgeliefert. Einige davon können Sie sofort einsetzen, während andere nur das Verständnis von CGI-Skripten und die Erstellung eigener Gateways erleichtern sollen. Im Verzeichnis cgi-bin finden Sie die folgenden CGI-Testskripten (in Klammern steht jeweils die Sprache, in der sie geschrieben sind): ● test-cgi (sh) ● nph-test-cgi (sh) ● test-cgi.tcl (tcl) Außerdem gibt es in cgi-bin eine Reihe einfacher Gateways: archie (hs) Ein sehr einfacher Gateway zu Archie calendar (sh) Ein Interface zum UNIX-Kommando cal date (sh)
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (2 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
Gibt das aktuelle Datum aus finger (sh) Ein einfacher Gateway zu Finger fortune (sh) Einfacher Hellseher Im Verzeichnis cgi-src finden Sie Quelldateien, die die Implementierung eines eigenen Gateways als Programm demonstrieren: uptime (sh) Gibt die durchschnittliche Auslastung des Servers aus jj (C) Ein einfaches HTML-Formular zur Bestellung eines Sandwichs phf (C) Eine HTML-Formularschnittstelle zu einem CSO Phone Book Server query (C) Ein allgemein verwendbares Antwortskript für Formulare imagemap (C) Behandelt Anfragen für interaktive Bilder (clickable image maps) wais.pl (Perl) Ein WAIS-Gateway In den Abschnitten 4.3.3 bzw. 3.4 beschreiben wir den Einsatz des Skripts wais.pl und des Gateways imagemap. 4.1.1.2 Funktionsweise der Skripten
Wir wollen das Skript test-cgi ausprobieren. Wenn Ihr Server läuft und Sie die Anweisung ScriptAlias, die das Verzeichnis cgi-bin festlegt, nicht verändert haben, wird das Skript durch Öffnen des folgenden URLs aufgerufen: http://hostname/cgi-bin/test-cgi Das Skript sollte HTML-Ausgabe erzeugen, die die Konfiguration Ihres httpd-Servers beschreibt und anzeigt, welche Informationen an alle CGI-Skripten übergeben werden. In einem Browser sollte die Ausgabe etwa wie folgt aussehen: CGI/1.0 test script report: argc is 0. argv is . SERVER_SOFTWARE = NCSA/1.3 SERVER_NAME = hostname GATEWAY_INTERFACE = CGI/1.1 SERVER_PROTOCOL = HTTP/1.0 SERVER_PORT = 80 REQUEST_METHOD = GET HTTP_ACCEPT = text/plain, application/x-html, application/html, text/x-html, text/html, image/*, application/postscript, video/mpeg, audio/basic, audio/x-aiff, image/gif, image/jpeg, image/tiff, image/x-portable-anymap, image/x-portable-bitmap, image/x-portable-graymap, image/x-portable-pixmap, image/x-rgb, image/rgb, image/x-xbitmap, image/x-xpixmap, image/xwd, image/x-xwd, image/x-xwindowdump, video/mpeg, application/postscript, application/x-dvi, message/rfc822, application/x-latex,
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (3 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
application/x-tex, application/x-texinfo, application/x-troff, application/x-troff-man, application/x- troff-me, application/x-troff-ms, text/richtext, text/tab- separated-values, text/x-setext, */* PATH_INFO = PATH_TRANSLATED = SCRIPT_NAME = /cgi-bin/test-cgi QUERY_STRING = REMOTE_HOST = xxx.xxx.xxx REMOTE_ADDR = xxx.xxx.xxx.xxx REMOTE_USER = AUTH_TYPE = CONTENT_TYPE = CONTENT_LENGTH = Alle Variablennamen in Großbuchstaben (etwa SERVER_NAME) sind Umgebungsvariablen, die vom CGI belegt werden. Sie stehen dem Gateway zur Verfügung. Der Gateway test-cgi benötigt zwar nicht unbedingt Eingaben, gibt vorhandene Eingaben aber unverändert aus. In unserem Fall hat argc den Wert 0. »argv is .« bedeutet, daß wir keine Eingaben übergeben haben. Parameter können an einen Gateway übergeben werden, indem man sie wie folgt an den URL anhängt: URL?erster+zweiter+dritter Um z.B. Ihren Namen (Hans J. Mustermann) an den Gateway test-cgi zu übergeben, würden Sie den folgenden URL öffnen: http://hostname/cgi-bin/test-cgi?Hans+J.+Mustermann Der Eingabeparameter wird nach dem Fragezeichen an den Basis-URL angehängt, wobei Leerzeichen durch das Zeichen »+« ersetzt werden. Die Umgebungsvariable QUERY_STRING wird mit dem übergebenen Parameter belegt. Der Parameter wird jedoch nicht als Aufrufoption oder über die Standardeingabe an test-cgi übergeben. Die HTML-Ausgabe, die dieser URL liefert, sieht bis auf die folgenden Zeilen wie oben aus: argc ist 3. argv is Hans J. Mustermann. QUERY_STRING = Hans+J.+Mustermann Die Parameterübergabe an CGI-Skripten durch Anhängen an den URL heißt GET-Methode. CGI-Skripten, die mit der GET-Methode arbeiten, müssen die Variable QUERY_STRING explizit lesen, um die Daten zu erhalten, und diese dann verarbeiten. Die GET-Methode kommt gewöhnlich bei einfachen CGI-Skripten mit einem einzigen Parameter zum Einsatz. Alternativ dazu können Parameter auch über die Standardeingabe an CGI-Skripten übergeben werden. Dies wird als POST-Methode bezeichnet. Sie kommt bei großen Datenmengen zum Einsatz, bei denen das Anhängen an den URL gemäß GET-Methode zu umständlich wäre oder wenn die Parameter kodiert werden müssen. Die meisten Arbeiten zur sicheren Übertragung konzentrieren sich auf sichere Kodierungsmethoden für die POST-Methode. Die POST-Methode wird meist zur Verarbeitung von Formularen benutzt. Weitere Informationen finden Sie in Abschnitt 4.2. Beim Einsatz der POST-Methode sehen zwei Parameter, etwa für den Namen eines Benutzers und dessen Mail-Adresse, wie folgt aus: [email protected] http://www.oreilly.de/german/freebooks/Html_buch/www04.html (4 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
Das CGI-Skript würde daraus diese beiden Parameter extrahieren: NAME Hans J. Mustermann EMAIL [email protected] Das Zeichen »&« trennt die Parameterpaare voneinander, das Zeichen »=« trennt jeweils den Parameternamen vom zugehörigen Wert. Leerzeichen werden wieder durch das Zeichen »+« ersetzt. Die Perl-Bibliothek für CGI enthält Code, der die Standardeingabe zerlegt und die Werte zur weiteren Verarbeitung in ein assoziatives Feld einträgt. 4.1.2 Benutzereingaben Die meisten CGI-Skripten, die nach bestimmten Daten suchen oder diese ausgeben, benötigen Eingaben des Benutzers. Dies geschieht mit dem HTML-Tag . Enthält ein HTML-Dokument das Tag , so zeigt der Browser eine Eingabebox mit folgendem Text an: This is a searchable index. Enter search keywords: Das bedeutet jedoch nicht, daß Ihr HTML-Dokument dadurch automatisch zu einem durchsuchbaren Index wird. Das Tag nimmt nur Tastatureingaben entgegen und sendet diese mit der GET-Methode an einen Gateway. Die eigentliche Suche wird vom Gateway ausgeführt. Existiert der Gateway nicht, so wird er durch das Tag im HTML-Dokument auch nicht herbeigezaubert, selbst wenn der Benutzer den Eindruck hat, der Gateway sei vorhanden. Er kann auch einen Suchtext eintippen. Drückt er jedoch die Return-Taste, so findet keine Suche statt. Wenn Ihr Web-Server Suchfunktionen durchführen soll, müssen Sie einen Gateway entwickeln oder einrichten, der die Suche übernimmt. 4.1.2.1 Einfache Such-Gateways
Ein Trick bei der Entwicklung eines eigenen einfachen Such-Gateways ist ein CGI-Skript mit doppelter Funktion: Wird es ohne Argumente aufgerufen, so fragt es nach dem Suchtext. Wird es jedoch mit Argumenten aufgerufen (die an den URL angehängt werden), so nimmt das Skript diese Argumente als Suchtext und führt damit die Suche aus. Mit dem folgenden URL könnten Sie z.B. einen Suchtext anfordern: http://www.fredonia.edu/cgi-bin/simple-search Dieser URL ruft das Skript simple-search auf. Im folgenden HTML-Code sehen Sie, wie Sie als Teil eines Hyperlinks auf das einfache Suchskript verweisen können: Or you can search the database for a list of crocodiles that are endangered. Der Suchtext wird dabei nach einem Fragezeichen an den URL angehängt. Wir wollen uns die beiden Funktionen des einfachen Suchskripts genauer ansehen. Der logische Ablauf der einfachen Suche sieht wie folgt aus: ● Wurde das CGI-Skript mit (an den URL angehängten) Suchtext aufgerufen? ● Falls nein, 1. Fordere mit dem HTML-Tag den Suchtext an. 2. Schreibe diese Anforderung auf die Standardausgabe.
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (5 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web ●
Falls ja, 1. Hole den Suchtext aus der Umgebungsvariablen QUERY_STRING. 2. Zerlege den Suchtext, um ihn in Klartext zurückzuverwandeln. 3. Führe die Suche durch. 4. Schreibe die Ergebnisse auf die Standardausgabe.
Bevor wir ein entsprechendes Skript vorstellen, sind einige Anmerkungen zu Sicherheitsaspekten nötig, damit Sie das Skript besser verstehen können. 4.1.2.2 Skripten, Programme und Sicherheitsaspekte
Wie wir bereits erwähnten, können Sie Gateways in fast jeder Skript- oder Programmiersprache entwickeln. Sie sollten sich der Tatsache bewußt sein, daß Sie Sicherheitslücken in Ihrem Web-Server öffnen, wenn Sie Ihr CGI-Skript nicht sorgfältig genug schreiben. Alle Tastatureingaben von Benutzern können böswillig sein. Wenn es jemand auf Ihren Web-Server abgesehen hat, könnte er oder sie Shell-Metazeichen eingeben, die Syntaxfehler der Shell provozieren oder auf dem System, auf dem Ihr Gateway läuft, beliebige Kommandos ausführen. Diese Gefahr ist besonders groß bei CGI-Gateways, die in Bourne- oder C-Shell, Perl oder einer anderen Sprache geschrieben wurden, bei der der Interpreter beliebige externe Kommandos ausführen kann. Das bedeutet jedoch nicht, daß Sie in diesen Sprachen keine CGI-Gateways schreiben dürfen, nur sollten Sie eben vorsichtig dabei sein. Es gibt zum Glück Bibliotheken, die Sie aufrufen können, um sicherzustellen, daß die Eingabe keine bösartigen Metazeichen enthält. Die CGI-Bibliothek für Perl finden Sie unter ftp://ftp.ncsa.uiuc.edu/Web/httpd/Unix/ncsa_httpd/cgi/cgi-lib.pl.Z Wenn wir CGI-Skripten schreiben, fangen wir die problematischen Metazeichen nicht ab, sondern überprüfen einfach mit dem folgenden regulären Ausdruck, ob die Tastatureingaben zulässig sind: [a-zA-Z0-9_-+ \t\/@%] Es ist zwar schwer zu erkennen, aber nach dem Pluszeichen steht ein Leerzeichen. Leerzeichen schaden bestimmt nicht! Wenn Sie CGI-Skripten mit Perl entwickeln, können Sie mit folgendem Code-Fragment die Eingabe überprüfen: if ($variable-name !~ /^[a-zA-Z0-9_\-+ \t\/@%]+$/) { &report_evil_characters; exit; } Dabei ist variable_name der Name der Variablen, die die eingetippten Zeichen enthält. Die Unterprozedur report_evil_characters erzeugt HTML-Code für eine Fehlermeldung, der dann an den Benutzer gesendet wird. Sie müssen nicht alle Eingaben so überprüfen, sondern nur solche, die Sie direkt an Interpreter übergeben, die außerhalb Ihres CGI-Skripts laufen. 4.1.2.3 Beispiel für ein Such-Gateway
Jetzt wollen wir Ihnen den Such-Gateway vorstellen, der die in Abschnitt 4.1.2.1 beschriebene Logik implementiert und die in Abschnitt 4.1.2.2 erläuterten Sicherheitsbedenken berücksichtigt. Dieser Gateway heißt alias-search und zeigt, wie man mit einem CGI-Skript die Systemdatei aliases nach einem Mail-Alias durchsuchen kann. Das folgende Beispiel enthält den Perl-Code für die Implementierung des Gateways.
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (6 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
Sie können dieses Beispiel sehr einfach so abwandeln, daß andere Dateien als /etc/aliases durchsucht werden. Wenn die gesuchten Daten ein festes Format oder eine feste Syntax haben, können Sie das Beispiel verfeinern, indem Sie das Tag-Paar entfernen und die Suchresultate mit anderen HTML-Tags formatieren oder hervorheben. Die gleiche allgemeine Suchstrategie kann auch zur Formularverarbeitung benutzt werden, die wir in Abschnitt 4.2 behandeln werden. #!/usr/local/bin/perl $data_file = "/etc/aliases"; # make sure arguments are passed using the GET method if ($ENV{'REQUEST_METHOD'} eq 'GET') { # Get the query in phrase1+phrase2 format from the QUERY_STRING # environment variable. $query = $ENV{'QUERY_STRING'}; # If the query string is null, then there is no search # phrase appended to the URL if ($query !~ /\w/) { # No argument, so prompt the user for the search string # using the HTML Tag. &html_header("Alias Search Query"); print ""; &html_trailer; } else { # The search string is appended to the URL. Massage it # back into a useable form. $query =~ tr/+/ /; $query =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # Check for illegal metacharacters if ($query !~ /^[a-zA-Z0-9_\-+ \t\/@%]+$/) { &html_header("Illegal Characters"); print "The search phrase contains illegal \n"; print "characters. Please back up and resubmit \n"; print "the query.\n"; &html_trailer; } else { # Start the HTML stream back to the Web server. &html_header("Alias Search Results"); print "\n"; # Open the datafile and search through it. # Write out any matches to stdout. open(DATAFILE,"$data_file"); while () { if (/$query/i) {print;} http://www.oreilly.de/german/freebooks/Html_buch/www04.html (7 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
} close(DATAFILE); # terminate the HTML stream back to the the Web server. print "\n"; &html_trailer; } } } # ======================================================= # This subroutine takes a single input parameter and uses # it as the <TITLE> and the first level header. # ======================================================= sub html_header { $document_title = $_[0]; print "Content-type: text/html\n\n"; print "\n"; print "\n"; print "<TITLE>$document_title\n"; print "\n"; print "\n"; print "$document_title\n"; print "
\n"; } # ====================================================== # This subroutine finishes off the HTML stream. # ====================================================== sub html_trailer{ print "\n"; print "\n"; } Die Zeile if ($ENV{'REQUEST_METHOD'} eq 'GET') { stellt sicher, daß das CGI-Skript mit der GET-Methode (und nicht mit der POST-Methode) aufgerufen wurde. Gute CGI-Skripten beherrschen den Aufruf über beide CGI-Methoden (GET und POST). Weniger gute Skripten beherrschen eine der beiden Methoden, überprüfen jedoch beim Start zumindest die benutzte Methode. Schlechte Skripten überprüfen die CGI-Methode überhaupt nicht und stürzen zur Laufzeit ab. 4.1.3 URLs im HTML-Code von Gateways HTML-Dokumente, die von CGI-Gateways zurückgeliefert werden, können in allen Verweisen absolute URLs enthalten. Relative URLs können nicht funktionieren, da es kein »aktuelles Dokument« gibt, von dem sich Zugriffsmethode und Name des Servers ableiten ließen. Wenn Sie relative URLs verwenden wollen, können Sie mit dem HTML-Tag den Basis-URL des HTML-Dokuments explizit angeben, das die relativen URLs enthält. Die Syntax von lautet:
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (8 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
Das Tag legt den URL des Dokuments selbst fest. Er wird benutzt, wenn das Dokument ohne Kontext gelesen wird, etwa bei einem Gateway. Relative URLs innerhalb des Dokuments werden relativ zu diesem Basis-URL ergänzt (und nicht relativ zu dem URL, über den das Dokument erreichbar ist). Jedes HTML-Dokument kann nur einen -Tag enthalten. Er steht im Abschnitt . Das -Tag behindert zwar die Portierbarkeit des HTML-Codes, ermöglicht aber relative URLs, die sich auf Ihren Dokumentbaum beziehen. Das -Tag ist allerdings noch nicht einheitlich in allen Web-Browsern implementiert, so daß Sie ihn mit Vorbehalt verwenden sollten. (Mosaic für UNIX unterstützt dieses Tag, nicht jedoch Mosaic für den Macintosh oder Windows sowie Lynx. Allerdings ist dieses Tag Bestandteil des HTML-Standards.) 4.1.4 Existierende Gateways Teilnehmer am World Wide Web haben viele der naheliegenden Gateways zu den gebräuchlichen Internet-Ressourcen geschrieben. Die folgenden Gateways sind frei verfügbar, und Sie können sie bei Bedarf auf Ihrem Web-Server installieren. In Abschnitt 4.3 finden Sie Angaben zum WAIS-Gateway. Gateway zu Hytelnet Hytelnet ermöglicht den menügesteuerten Zugang zu telnet-Rechnern, die im Internet erreichbar sind. Hytelnet listet Bibliotheken, Hochschul-Informationssysteme und freie Netze auf der ganzen Welt auf. Dieser Gateway ermöglicht zur Laufzeit die Konvertierung der Hytelnet-Datenbank in HTML-Code. http://www.w3.org/hypertext/WWW/HytelnetGate/Overview.html Autor: Earl Fogel [email protected] von den Computing Services an der University of Saskatchewan. Gateway man2html man2html nimmt nroff-formatierte Manualseiten und erzeugt HTML-Code. Die nroff-Ausgabe wird mit -Tags geklammert. Ausgenommen davon sind Überschriften und hervorgehobene Wörter. Sie werden als Überschrift der jeweiligen Stufe bzw. durch Hervorhebung gekennzeichnet. man2html kann entweder als Konvertierungsfilter arbeiten oder als Gateway installiert werden. Wenn Sie es als Gateway installieren, haben Sie nach einer Aktualisierung des Betriebssystems keine Probleme mit den HTML-Versionen veralteter Manualseiten. Andererseits kostet jeder Zugriff auf eine Manualseite über den Gateway Rechenzeit für die HTML-Konvertierung. Sie finden das man2html-Paket unter ftp://ftp.uci.edu/pub/dtd2html/ Suchen Sie in diesem Verzeichnis das neueste tar-Paket mit perlWWW. Autor: Earl Hood [email protected] von der CONVEX Computer Corporation. ORACLE-Gateway Der ORACLE-Gateway nimmt eine URL-Anfrage, übersetzt sie in die SQL-Anweisung SELECT und liefert die Ergebnisse als formatierte Tabelle zurück, die mit -Tags geklammert ist. Dies ist zwar nicht sehr ausgefeilt, bildet jedoch einen guten Ausgangspunkt für die Hypertext-Darstellung einer ORACLE-Datenbank. Für diesen Gateway ist der Präprozessor ORACLE Pro*C nötig. Weitere Informationen finden Sie unter http://www.w3.org/hypertext/WWW/RDBGate/Implementation.html Autor: Arthur Secret. Genera-Gateway Genera ist ein Gateway zur Integration von Sybase-Datenbanken in das World Wide Web. Damit können Sie ein Web-Frontend an eine vorhandene Sybase-Datenbank anpassen oder eine neue Datenbank anlegen. Genera ist flexibler als die meisten anderen Gateways, da Sie die Zuordnung der Sybase-Datenbank auf den http://www.oreilly.de/german/freebooks/Html_buch/www04.html (9 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
HTML-Code durch eine spezielle Notation steuern können. Genera unterstützt außerdem relationale Abfragen mit Formularen und die Formatierung ganzer Datenbanken als Text- oder HTML-Dateien. Weitere Informationen finden Sie unter http://cgsc.biology.yale.edu/genera.html Autor: Stanley Letovsky [email protected] an der Johns Hopkins Medical School. 4.1.5 Zusätzliche cgi-bin-Verzeichnisse Gateway-Skripten stehen gewöhnlich im Verzeichnis cgi-bin, also dem Verzeichnis für CGI-Programme in Ihrem ServerRoot-Verzeichnis. Wenn Sie Dutzende eigener Gateways benutzen wollen, die von verschiedenen Leuten entwickelt wurden, ist es sinnvoll, jeder Person ein eigenes Verzeichnis cgi-bin in ihrem jeweiligen Teil des Dokumentbaums zuzuweisen. Dazu fügen Sie in der Konfigurationsdatei srm.conf für jedes neue Verzeichnis cgi-bin auf Ihrem Web-Server die Anweisung ScriptAlias hinzu. Wenn Sie z.B. drei cgi-bin-Verzeichnisse auf Ihrem Web-Server unterstützen wollen, sehen die Alias-Anweisungen in der Konfigurationsdatei srm.conf etwa wie folgt aus: ScriptAlias /cgi-bin/ ScriptAlias /cs-cgi-bin/ ScriptAlias /ee-cgi-bin/
Eine ausführliche Beschreibung der Anweisung ScriptAlias finden Sie in Anhang D, Anweisungen in srm.conf.
4.2 Verarbeitung von Formularen Formulare sind die natürliche Erweiterung einfacher Abfragen. Wenn wir in der Lage sind, einen Suchtext vom Benutzer abzufragen, sollten wir auch ein ganzes Formular voller Informationen einholen können.
Abb. 4-2. Darstellung eines Formulars in NCSA Mosaic. Formulare sind offizieller Bestandteil von HTML 3.0, doch der NCSA Web-Server unterstützt sie bereits heute. NCSA Mosaic, Lynx und ViolaWWW unterstützen eine allgemein verwendbare Teilmenge dieser Funktionalität, die groß genug ist, um Formulare praktisch und nützlich zu machen. Wir beginnen mit einem Beispiel und zeigen zunächst, wie das Formular aussieht. Dann beschreiben wir den HTML-Code für das Formular und stellen schließlich das CGI-Skript vor, mit dem wir die Ergebnisse des Formulars verarbeiten. In Abbildung 4-2 sehen Sie die Darstellung eines Formulars zur Benutzereingabe in Mosaic. Die Benutzer werden um ihren Namen und ihre Mail-Adresse gebeten und können einen beliebig langen Text eingeben. Zum Abschluß können Sie auf »Send Comments« klicken, um die Formulareingabe zu beenden. Sie können außerdem jederzeit auf »Clear Form« klicken, um die Eingaben im Formular zu löschen und es erneut auszufüllen. Ist der Benutzer mit der Formulareingabe fertig, wird der eingegebene Text zum Web-Server übertragen und an ein CGI-Skript weitergereicht, das den Text formatiert und per Mail an den Webmaster sendet. Der HTML-Teil eines Formulars wird als Frontend bezeichnet, das Skript zur Verarbeitung der Eingabe als Backend. 4.2.1 HTML-Code für Formulare Die Definition des Formulars erfolgt mit HTML-Anweisungen und ist Bestandteil des HTML-Dokuments. Der http://www.oreilly.de/german/freebooks/Html_buch/www04.html (10 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
HTML-Code für das Formular in Abbildung 4-2 sieht wie folgt aus: <TITLE>Crocodile Action Plan Feedback Form Crocodile Action Plan Feedback Form <EM>Please send us your comments!
Name: Email:
Creation Date: <EM>Jun 18, 1994
DRJ Dieser Code basiert auf der HTML-Schablone, die in Kapitel 3, Erstellen von Web-Dokumenten, beschrieben wurde. Das wichtigste HTML-Tag, der in diesem Beispiel neu eingeführt wird, ist das Tag . Das Tag-Paar klammert den Inhalt Ihres Formulars und enthält den URL des CGI-Skripts, das die Formulareingabe verarbeiten soll. Zwischen den -Tags können Sie andere HTML-Tags für Formulare und beliebige andere HTML-Konstrukte einbetten. Ein HTML-Dokument kann auch mehrere Formulare umfassen. Sie können Formulare allerdings nicht ineinander verschachteln. Formulare können u.a. die folgenden Konstrukte enthalten: ● Texteingabefelder ● Paßwortfelder ● Textbereiche, die mittels Scrollbar verschoben werden können ● Einfache Checkboxen (Ein/Aus-Schalter) ● Radio-Buttons (einer von mehreren Knöpfen kann ausgewählt werden) ● Popup-Menüs ● Listen, die mittels Scrollbar verschoben werden können ● Schaltflächen (absenden und zurücksetzen) http://www.oreilly.de/german/freebooks/Html_buch/www04.html (11 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
Unser Beispiel enthält Felder, in denen der Benutzer Text eingeben kann (-Tag) und verschiebbare Textbereiche (-Tag). Die Funktionsweise von Schaltern werden wir später in diesem Kapitel vorstellen. Eine vollständige Liste der HTML-Tags für Formulare finden Sie in Abschnitt 4.2.4, HTML-Tags für Formulare. 4.2.2 Skripten zur Verarbeitung der Formulareingabe Das vorgestellte Feedback-Formular überträgt den Inhalt der einzelnen Felder mit der POST-Methode über das CGI an das Skript /cgi-bin/comments. Das Skript muß aus Sicherheitsgründen im Verzeichnis cgi-bin oder einem anderen vom Webmaster zugewiesenen Verzeichnis stehen, sonst wird es nicht ausgeführt, sondern als Text ausgegeben. Der Web-Browser überprüft nicht, ob die Eingabe logisch gültig oder überhaupt vorhanden ist. Daher muß Ihr CGI-Skript die feldweise Überprüfung und Fehlerbehandlung übernehmen. Es versteht sich von selbst, daß die HTML-Formulardefinition und das CGI-Skript zur Verarbeitung der Formulareingabe sehr gut aufeinander abgestimmt sein müssen.(1) Als nächstes Beispiel zeigen wir das in Perl geschriebene CGI-Skript für die Bemerkungen, mit dem wir das Feedback-Formular verarbeiten. Es hat die Aufgabe, die gesamte variable Eingabe über das CGI entgegenzunehmen, zu formatieren und dann den Inhalt des Formulars per E-Mail an den Webmaster zu senden. #!/usr/local/bin/perl $webmaster = "[email protected]"; #check that POST method is used if ($ENV{'REQUESTg_METHOD'} eq 'POST') { # POST method dictates that we get the form # input from standard input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs on '&' @pairs = split(/&/, $buffer); # Go through the pairs and determine the name # and value for each form variable. foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } # Now all the form variables are in the $FORM # associative array. # Before proceeding, validate the keyed in email # address for evil characters if ($FORM{feed_email} !~ /^[a-zA-Z0-9_\-+ \t\/@%]+$/) { &html_header("Illegal Email Address");
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (12 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
print "
\n"; print "The Email address you entered contains illegal"; print "characters. Please back up, correct, then resubmit.\n" &html_trailer; exit; } # The users email address is clean, so open up # the email message to send the feedback to the # webmaster and copy the user. open (MESSAGE,"| mail $webmaster $FORM{feed_email}"); # Format email header information. print MESSAGE "To: $webmaster\n"; if ($FORM{feed_email} ne "") { print MESSAGE "Reply-To: $FORM{feed_email}\n"; } # Write the actual email message print print print close
# Thank the user and acknowledge the feedback &html_header("Thank You"); print "
\n"; print "Your comments have been emailed to the webmaster.\n"; print "You have been copied on the message.\n"; &html_trailer; } else { # Format an error message for the user &html_header("Comment Form Error"); print "
\n"; print "Form input was not processed. print "remarks to $webmaster\n"; &html_trailer;
Please mail your ";
} # ====================================================== # This subroutine takes a single input parameter and uses # it as the <TITLE> and the first level header. # ====================================================== sub html_header { $document_title = $_[0]; print "Content-type: text/html\n\n"; print "\n"; print "\n";
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (13 von 22) [11.04.2001 17:15:33]
} # ====================================================== # This subroutine finishes off the HTML stream. # ====================================================== sub html_trailer{ print "\n"; print "\n"; } Das Perl-Skript überprüft nur die E-Mail-Adresse auf eventuell darin enthaltene verbotene Metazeichen. Dies ist zwar nicht die einzige Variable im Formular, aber die einzige, die direkt über Pipe in die Shell-Ebene gelangt (in diesem Fall mit dem Kommando mail). Beachten Sie, daß dieses Skript E-Mail-Adressen im UUCP-Stil nicht akzeptiert, denn diese enthalten das Zeichen »!«, das in einem Perl-Skript zu gefährlich ist. Die Formatierung des Mail-Header hat keinen Einfluß darauf, an wen die Mail gesendet wird (das passiert nämlich beim Öffnen des Ausgabestroms zum mail-Kommando). Der Header ist dennoch sehr nützlich, da der Webmaster so direkt mit reply auf die E-Mail antworten kann. Beachten Sie auch, daß die Unterprozedur thank_you HTML-Code erzeugt, der zurückgesandt und im Web-Browser des Benutzers angezeigt wird. Der HTML-Code wird auf der Standardausgabe ausgegeben. Wenn ein CGI-Skript HTML-Code erzeugt, ist es besonders wichtig, daß die erste Zeile den MIME-Typ text/html identifiziert. Im Anschluß daran muß eine Leerzeile folgen. Die Fehlersuche in CGI-Skripten kann etwas trickreich sein. Zunächst sollten Sie sicherstellen, daß das Skript ohne Syntaxfehler abläuft, bevor Sie es in das Verzeichnis cgi-bin stellen und versuchen, es durch Ausfüllen eines Formulars aufzurufen. Wir testen das Skript immer in der csh, bevor wir es in das Verzeichnis cgi-bin stellen. Andernfalls kann es beim Ausführen des Skripts mit einem Formular passieren, daß es hängenbleibt und den Kontrollfluß nicht mehr an den Web-Browser übergibt. Wenn Sie ein CGI-Skript in einer Shell ausführen, werden alle Fehlermeldungen zur Laufzeit ausgegeben. Sie müssen die CGI-Umgebung emulieren, indem Sie die benötigten Umgebungsvariablen belegen. Andernfalls wird selbst ein korrektes Skript fehlschlagen, wenn es überprüft, ob REQUEST_METHOD den Wert POST hat (da die Umgebungsvariable nicht definiert ist). Das Skript wird daher nur den HTML-Code für die Fehlermeldung auf der Standardausgabe ausgeben. 4.2.3 Checkboxen im Formular In unserem zweiten Beispiel zur Verarbeitung von Formularen wollen wir zeigen, wie Sie Schalter in einem Formular benutzen können. Das Formular registriert Benutzer, die sich intensiver mit dem Schutz der Krokodile beschäftigen wollen. Dieses Beispiel erweitert sowohl das früher vorgestellte Feedback-Formular als auch das gezeigte CGI-Skript. Abbildung 4-3 zeigt die Darstellung dieses Formulars in Mosaic. Die HTML-Anweisungen für dieses Formular basieren auf dem HTML-Code des letzten Beispiels: <TITLE>Crocodile Action Plan Registration
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (14 von 22) [11.04.2001 17:15:33]
HTML und das World Wide Web
Form
<EM>I want to be involved in saving endangered crocodiles!
Name Email Phone Postal
I would like: Volunteer work More information on the Species Survival Commission
Please contact me about: Volunteer work Making a monetary contribution to save endangered crocodiles
Creation Date: <EM>Jun 18, 1994
DRJ Zur Verarbeitung des Formulars kopieren wir das Skript /cgi-bin/comments aus dem ersten Formularbeispiel nach /cgi-bin/registration und modifizieren den Perl-Code, der die E-Mail erzeugt. Das folgende Beispiel enthält den veränderten Perl-Code: # Write the actual message
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (15 von 22) [11.04.2001 17:15:34]
HTML und das World Wide Web
print MESSAGE "Subject: Involvement Request \n"; print MESSAGE "Name: $FORM{reg_name}\n\n"; print MESSAGE "Email: $FORM{reg_email}\n\n"; print MESSAGE "Phone: $FORM{reg_phone}\n\n"; print MESSAGE "Address:\n$FORM{reg_address}\n\n"; print MESSAGE "Involvement or Request:\n"; if ($FORM{reg_catalog} eq "yes") { print MESSAGE "- I would like a catalog.\n"; } if ($FORM{reg_info} eq "yes") { print MESSAGE "- I would like more information on "; print MESSAGE "the Species Survival Commission.\n"; } if ($FORM{reg_volunteer} eq "yes") { print MESSAGE "- I would like to volunteer.\n"; } if ($FORM{reg_cash} eq "yes") { print MESSAGE "- I would like to make a donation.\n"; } close (MESSAGE); Außerdem verändern wir die Meldung Thank you, um uns entsprechend bei den Benutzern zu bedanken.
Abb. 4-3. Darstellung des Registrierformulars in Mosaic. Das von Web-Servern und Web-Browsern benutzte Modell ist zustandsfrei. Angenommen, Sie wollen drei verschiedene HTML-Formulare entwickeln, mit denen sich die Benutzer schrittweise für eine Veranstaltung anmelden können. Dies sieht zwar nach einer einfachen Formularanwendung aus, aber die Eingabe des ersten Formulars wird nicht automatisch mit der Eingabe des zweiten Formulars in Verbindung gebracht. Hat ein Benutzer nach dem ersten auch das zweite Formular ausgefüllt, so weiß der Web-Server selbst nicht, ob das erste Formular korrekt ausgefüllt wurde und welche Angaben es enthält. Der Web-Server weiß nicht einmal, daß er das erste Formular überhaupt behandelt hat (er trägt eine Zeile in einer Protokolldatei ein, sieht sich diese aber nie mehr an). Es ist zwar möglich, Zustandsinformationen zwischen Formularen zu speichern, aber Ihr CGI-Skript muß die benötigten Zustandsinformationen zwischen den einzelnen Formulartransaktionen selbst verwalten. Dazu können Sie jedoch nicht einfach eine Variable setzen, die besagt, daß Formular 1 ausgefüllt wurde, denn Sie müssen auch speichern, wer es ausgefüllt hat. Es können sich ja mehrere Personen gleichzeitig anmelden. 4.2.4 HTML-Tags für Formulare Es gibt vier HTML-Tags zur Definition von Formularen: , , <SELECT> und . Diese vier Tags haben jedoch viele verschiedene Optionen. Dieser Abschnitt enthält eine Übersicht über die verschiedenen Kombinationen. 4.2.4.1
Jedes Formular muß das Tag-Paar benutzen. Ein Dokument kann mehrere Formulare enthalten, diese dürfen jedoch nicht verschachtelt sein. Formulardefinition:
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (16 von 22) [11.04.2001 17:15:34]
HTML und das World Wide Web
... method ist die Methode gemäß HTTP/1.0, mit der das ausgefüllte Formular zu Ihrem Web-Server übertragen wird. Sie können zwar die in Abschnitt 4.1.1 beschriebene GET-Methode benutzen, sollten aber eher die POST-Methode anwenden. Bei der POST-Methode wird der Inhalt des ausgefüllten Formulars im Datenrumpf zum Web-Server übertragen und nicht wie bei der GET-Methode an das Ende des URLs angehängt. Die POST-Methode ist besonders dann wichtig, wenn Ihre Benutzer große Datenmengen zum Web-Server senden können oder Sie später einmal verschlüsselte (vertrauliche) Formulardaten von den Benutzern erwarten. ACTION enthält den URL des Web-Servers, an den der Inhalt des ausgefüllten Formulars gesendet wird. Fehlt dieses Attribut, wird der URL des aktuellen Dokuments benutzt. Formulare unterscheiden sich optisch nicht vom Rest eines HTML-Dokuments. Wir empfehlen den Einsatz des Tags (zum Einfügen einer Trennlinie) vor und nach einem Formular, um dieses vom Rest des HTML-Dokuments zu unterscheiden. 4.2.4.2
Das Tag erzeugt verschiedene Eingabemöglichkeiten, die Tags <SELECT> und legen weitere an. Die folgenden Varianten von sind von Bedeutung: Texteingabefeld: Das Texteingabefeld ist ein Standalone-HTML-Tag. name ist der Variablenname, der zum Web-Server übertragen wird. size gibt die Länge der Textbox in Zeichen an. Vor oder nach dem Texteingabefeld steht üblicherweise beschreibender HTML-Text, um die Bedeutung des Felds zu erläutern. Paßwortfeld: Das Paßwortfeld entspricht dem Texteingabefeld. Allerdings werden die Eingaben des Benutzers durch Sterne ersetzt. Checkbox: Die Checkbox ist ein Standalone-HTML-Tag. name ist der Variablenname, der nur dann zusammen mit dem zugehörigen Wert zum Web-Server übertragen wird, wenn der Benutzer die Checkbox anklickt. Sie können optional das Schlüsselwort CHECKED einfügen, wenn die Box standardmäßig aktiviert sein soll. Vor oder nach der Checkbox steht üblicherweise beschreibender HTML-Text, um die Bedeutung des Felds zu erläutern. Radio-Button: Der Radio-Button ist der Checkbox sehr ähnlich. Der einzige Unterschied besteht darin, daß Sie mehrere Radio-Buttons mit dem gleichen Namen zusammenfassen können. Durch diese Gruppierung erreichen Sie eine Eins-aus-N-Auswahl: Klickt der Benutzer auf einen Radio-Button der Gruppe, so werden alle anderen Buttons der Gruppe deaktiviert. Sie können optional das Schlüsselwort CHECKED einfügen, um anzugeben, welcher Button innerhalb der Gruppe standardmäßig aktiviert sein soll. Push-Button zur Übertragung: Der Push-Button zur Übertragung (submit) ist ein Standalone-HTML-Tag. button-text wird im Button angezeigt. Wird dieser Button aktiviert, beendet der Web-Browser die Verarbeitung des Formulars und sendet alle Variablennamen und die zugehörigen Werte zurück zum Web-Server. Er benutzt dazu die Methode, die im HTML-Tag angegeben wurde. Vor oder nach dem Submit-Button ist nicht unbedingt beschreibender HTML-Text nötig, da button-text die http://www.oreilly.de/german/freebooks/Html_buch/www04.html (17 von 22) [11.04.2001 17:15:34]
HTML und das World Wide Web
Bedeutung des Buttons erklären kann. Push-Button zum Zurücksetzen: Der Push-Button zum Zurücksetzen (submit) ist ein Standalone-HTML-Tag. button-text wird im Button angezeigt. Wird dieser Button aktiviert, setzt der Web-Browser die Verarbeitung des Formulars in den Grundzustand zurück: Alle Textfelder werden gelöscht und die Standardeinstellungen der Checkboxes, Radio-Buttons, Popup-Menüs und Listen wiederhergestellt. Vor oder nach dem Reset-Button ist nicht unbedingt beschreibender HTML-Text nötig, da button-text die Bedeutung des Buttons erklären kann. Beachten Sie, daß das Feld TYPE im HTML-Tag immer in Kleinbuchstaben ausgefüllt werden muß. 4.2.4.3 <SELECT>
Das Tag-Paar <SELECT> dient zur Konstruktion von Popup-Menüs und Listen: Popup-Menü: <SELECT NAME="name"> option-text Popup-Menüs werden mit dem Tag-Paar <SELECT> konstruiert, das mehrere Tags des Typs umschließt. name ist der Variablenname, der zum Web-Server übertragen wird. Die Tags beschreiben die Optionen, die als Teil des Popup-Menüs angezeigt werden. Eines dieser Tags kann das Schlüsselwort SELECTED enthalten. Es gibt an, welche Option standardmäßig angezeigt wird. Fehlt das Schlüsselwort SELECTED, stellt die erste Option der Liste die Voreinstellung dar. option-text darf keine HTML-Tags enthalten. Rollbare Liste (scrollable list): <SELECT NAME="name" MULTIPLE SIZE=rows> option-text Rollbare Listen werden mit dem Tag-Paar <SELECT> konstruiert, das mehrere Tags des Typs umschließt. Die Angabe MULTIPLE ist optional. Sie gibt an, daß der Benutzer mehrere Optionen auswählen kann. rows ist die Anzahl Zeilen der Liste, die dargestellt werden. Durch einen Wert größer als eins wird ein Popup-Menü zu einer rollbaren Liste. name ist der Variablenname, der zum Web-Server übertragen wird. Die Tags beschreiben die Optionen, die als Teil des Popup-Menüs angezeigt werden. Ist das Schlüsselwort MULTIPLE angegeben, kann bei beliebig vielen -Tags das Schlüsselwort SELECTED stehen. Ist MULTIPLE nicht angegeben, darf nur bei einem der -Tags das Schlüsselwort SELECTED stehen. Fehlt SELECTED bei allen Optionen, so gibt es keine Voreinstellung. option-text darf keine HTML-Tags enthalten. 4.2.4.4
Mit dem Tag-Paar lassen sich rollbare Textbereiche implementieren: Rollbarer Textbereich: optional-text Der rollbare Textbereich ist ein Standalone-HTML-Tag. name ist der Variablenname, der zum Web-Server übertragen wird. size gibt die Größe des Textbereichs in Zeichen an. Ist optional-text vorhanden, dient es zur Initialisierung des rollbaren Textbereichs. Fehlt dieser Eintrag, ist der Textbereich leer. Vor oder nach dem Textbereich steht üblicherweise beschreibender HTML-Text, um die Bedeutung des Felds zu erläutern.
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (18 von 22) [11.04.2001 17:15:34]
HTML und das World Wide Web
4.3 Web-Zugang zu WAIS Es gibt vier verschiedene Möglichkeiten zum Zugriff auf WAIS aus dem World Wide Web: ● Direkter Zugriff des Web-Browsers auf den WAIS-Server. Bei dieser Methode ist Ihr Web-Server überhaupt nicht beteiligt. Der Browser, etwa Mosaic, kann direkt auf einen WAIS-Server zugreifen. ● Ein öffentlich zugänglicher Web-Gateway im Internet. Dabei handelt es sich um einen Web-Server, der auf einer anderen Maschine läuft, mit WAIS-Servern kommuniziert und die Ergebnisse in HTML konvertiert. ● Ein eigener WAIS-Gateway. Dies kann ein Skript oder Programm auf Ihrem Web-Server sein, das mit Ihrem eigenen (oder auch einem anderen) WAIS-Server kommuniziert. ● Der kommerzielle Web-Gateway WAISgate bietet eine Schnittstelle für WAIS-Abfragen, die auf Formularen basiert. Alle vier Methoden sind realisierbar. Welche Sie davon wählen, hängt davon ab, ob Sie Zeit für die Entwicklung eines eigenen WAIS-Gateways aufwenden wollen, wie weit Ihr eigener WAIS-Gateway für die Allgemeinheit der Web-Benutzer zugänglich ist und wie gut Ihr Web-Server in den WAIS-Server integriert sein soll. In den nächsten vier Abschnitten beschreiben wir diese Methoden im einzelnen, in Abschnitt 4.3.5 fassen wir die Stärken und Schwächen jeder Methode zusammen. 4.3.1 Direkter WAIS-Zugriff Version 2.0 von Mosaic kann direkt auf WAIS-Server zugreifen. Mosaic fungiert als WAIS-Client, zeigt die Ergebnisse jedoch in einem HTML-Fenster an. Bei diesem Verfahren bleibt Ihr Web-Server außen vor: Benutzereingaben und Kommunikation mit dem WAIS-Server finden vollständig im Web-Browser statt. Der folgende URL kommuniziert z.B. aus Mosaic heraus direkt mit einem WAIS-Server: wais://cnidr.org/directory-of-servers Wird dieser URL direkt oder über einen Querverweis geöffnet, kann der Benutzer den Suchtext für die Anfrage eingeben. Dann verarbeitet der WAIS-Server auf cnidr.org die Anfrage mittels der WAIS-Datenbank directory-of-servers. Alternativ dazu kann der Benutzer den Suchtext mit der GET-Methode im URL angeben. Beim folgenden URL sucht der WAIS-Server, der an Port 210 auf ds.internic.net läuft, den Suchtext MIME in der WAIS-Datenbank rfcs: wais://ds.internic.net:210/rfcs?MIME Damit der direkte WAIS-Zugriff auf Ihre Daten funktioniert, müssen Sie einen WAIS-Server einrichten und waisindex mit dem speziellen Datentyp URL verwenden. Damit erzeugt waisindex Headline-Tabellen, die als legale URLs formatiert sind. Die Benutzung von waisindex wird in Kapitel 8 des Buchs Internet-Server Einrichten und Verwalten beschrieben. Dieser direkte Zugang ist zwar für Mosaic-Benutzer sehr nützlich, schränkt Ihre Leserschaft jedoch genau auf diese Teilmenge der Web-Gemeinschaft ein. Außerdem müssen Ihre Headlines bei dieser Methode den URLs von Dokumenten entsprechen. Dies kann für solche Benutzer verwirrend sein, die von reinen WAIS-Clients aus auf den WAIS-Index zugreifen. 4.3.2 Web-Gateways zu WAIS Das älteste Verfahren für den Zugriff auf WAIS-Server ist die Benutzung verschiedener öffentlich zugänglicher Web-Gateways zu WAIS, die im Internet zur Verfügung stehen. Mit den folgenden URLs können Sie auf zwei öffentlich zugängliche Gateways zugreifen:
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (19 von 22) [11.04.2001 17:15:34]
HTML und das World Wide Web
http://www.w3.org:8001/wais-server-name:port-number/database-name? http://www.ncsa.uiuc.edu:8001/wais-server-name:port-number/database-name? Beide scheinen in der Praxis nicht ganz einwandfrei zu funktionieren. Diese Gateways sind in Wirklichkeit Web-Server, die gleichzeitig als WAIS-Clients arbeiten. Der Web-Gateway zu WAIS kommuniziert mit dem Web-Browser, um den Suchtext zu ermitteln. Dann führen die Gateways die Abfrage für den Benutzer durch, nehmen die Ergebnisse der WAIS-Suche entgegen und konvertieren diesen in HTML. Damit erreichen Sie sehr schnell einen Übergang zwischen WAIS und dem Web. Mit einem Web-Gateway zu WAIS können Sie auf jede beliebige WAIS-Datenbank zugreifen. Dieses Verfahren arbeitet mit der in Abschnitt 4.1.1 vorgestellten GET-Methode. 4.3.3 Entwicklung eines eigenen WAIS-Gateways Seit der Einführung des Common Gateway Interface (CGI) ist die Entwicklung eines eigenen WAIS-Gateways wesentlich einfacher. Bei diesem Verfahren können Sie den Suchvorgang steuern (und den HTML-Code für das Ergebnis selbst erzeugen). Es ist aber auch deswegen vorzuziehen, weil es mit jedem Web-Browser funktioniert. Wir wollen das Perl-Skript, das wir für das Beispiel alias-search benutzten, als Ausgangspunkt verwenden. Seine Struktur bleibt weitgehend unverändert, ebenso Benutzereingabe und Kommunikation über das CGI. Das einzige, was wir ändern müssen, ist die eigentliche Suchmaschinerie. Wir werden sie von einer eingebetteten Suche mit regulären Ausdrücken umstellen auf waisq. Dazu ändern wir das folgende Code-Fragment: # Open the datafile and search through it. # Write out any matches to stdout. open(DATAFILE,"$data_file"); while () { if (/$query/i) {print;} } close(DATAFILE); waisq ist die Schnittstelle zu WAIS auf Kommandoebene. Um die Suche mit dem überprüften Suchtext in $query zu starten, ersetzen wir das obige Fragment durch das folgende: $wais_source = "database-name.src"; $wais_path = "/wais/wais-sources/"; $waisq = "/usr/local/waisq"; $hit_limit = "40"; open(HITS, "-|") || exec ($waisq,"-f","-","-s","$wais_path", "-S","$wais_source","-m",$hit_limit,"-g", $query); Die Optionen für waisq haben folgende Bedeutung: -f Es gibt keine fertige Abfragedatei, benutze also die bei der Option -S angegebene Source-Datei und die bei der Option -g angegebene Query-Datei. -s $wais_path Das Verzeichnis, in dem sich die .src-Datei befindet. -S $wais_source
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (20 von 22) [11.04.2001 17:15:34]
HTML und das World Wide Web
Der Name der .src-Datei. -m $hit_limit Maximale Anzahl der Treffer, die zurückgeliefert werden. -g $query Die Variable $query enthält den Suchtext. Sie können diese Optionen so ändern, daß eine fertige WAIS-Abfragedatei benutzt wird. Auf diese Art können Sie mit einer einzigen Anfrage mehrere WAIS-Datenbanken durchsuchen. Die Gewichtung der Suchresultate erfolgt dabei immer bezüglich der jeweiligen Datenbank. Eine Suche in drei verschiedenen WAIS-Datenbanken liefert unter Umständen drei Dokumente, die mit dem höchstmöglichen Wert 1000 gewichtet werden. In diesem speziellen Beispiel stehen die Suchergebnisse nach Ausführung des obigen Code-Fragments als Eingabestrom zur Verfügung, den wir über HITS lesen können. Wir durchlaufen diesen Eingabestrom in einer Schleife und suchen nach den Schlüsselwörtern :headline, :rank und :number-of-lines. Anschließend erzeugen wir mit den zugehörigen Daten unsere eigene HTML-Ausgabe, die über den Web-Server zu dem Web-Browser übertragen wird, der die Suche gestartet hat. Wir können die Treffer vorformatiert mit dem HTML-Tag klammern oder andere Tags benutzen. Möglich ist z.B. eine Strukturierung als Liste mit Aufzählungszeichen, in der jeder Eintrag der Name des jeweiligen Dokuments ist. Ein Beispiel dafür finden Sie im Verzeichnis cgi-bin in wais.pl. 4.3.4 WAISgate WAISgate ist ein kommerzieller Gateway zwischen dem World Wide Web und WAIS. Mit WAISgate können die Anbieter von WAIS-Datenbanken die Einstiegspunkte in die WAIS-Datenbank, Eingabeformulare und Suchergebnisse anpassen sowie bei Bedarf HTML-Dokumente erzeugen. Da WAISgate einen Web-Browser benötigt, der die Formulareingabe beherrscht, kann es nicht mit allen Web-Browsern arbeiten. Die Formulareingabe ist nötig, damit WAISgate strukturierte Boolesche Abfragen erzeugen kann. WAISgate verfügt über weitere Funktionen: ● Zugriff auf lokale und ferne WAIS-Datenbanken. ● Schrittweise Verarbeitung: Suche im directory-of-servers, Suche in einer Datenbank und Holen eines Dokuments. ● Multitype-Dokumente, wobei jedem Dokumentenformat ein eigenes Icon zugeordnet ist. ● Feldweise Suche in kommerziellen WAIS-Datenbanken. ● Tabellengesteuerte Umwandlung von WAIS-Typen in MIME-Typen. Sie erhalten WAISgate bei der Firma WAIS, Inc. Eine Online-Version zur allgemeinen Verwendung finden Sie unter http://www.wais.com/directory-of-servers.html Sie können diese Ressource zwar nicht kopieren oder anpassen, sehen daran aber, wie man mit WAISgate die WAIS-Datenbank directory-of-servers erreichen und durchsuchen kann. 4.3.5 Vergleich der Web-Zugriffsmethoden auf WAIS Direkter WAIS-Zugriff: ● Stärken: Keine Entwicklung nötig; sauberste Schnittstelle zu einer lokalen WAIS-Datenbank. ● Schwächen: Nur in Mosaic und dort nur mit direkten WAIS-Patches verfügbar; keine allgemein verwendbare Lösung für einen größeren Benutzerkreis; keine Anpassung der Suchergebnisse. Web-Gateway zu WAIS: ● Stärken: Keine eigene Entwicklung nötig; Verzahnung von WAIS-Datenbank und Web-Server bis zu einem http://www.oreilly.de/german/freebooks/Html_buch/www04.html (21 von 22) [11.04.2001 17:15:34]
HTML und das World Wide Web
●
gewissen Grad; öffentlich zugängliche Web-Gateways zu WAIS arbeiten bereits im Web. Schwächen: Erheblicher Aufwand; die WAIS-Datenbank ist oft Web-spezifisch und funktioniert nicht mit allgemeinen WAIS-Clients; die Benutzer haben häufig Probleme mit Firewalls; keine Anpassung der Suchergebnisse.
Eigener WAIS-Gateway: ● Stärken: Völlige Kontrolle über den Gateway; WAIS-Datenbank und Web-Server sind gut verzahnt; Suchergebnisse können angepaßt werden. ● Schwächen: Eigenentwicklung nötig; Sie müssen Probleme mit dem Gateway selbst beheben. WAISgate: ● Stärken: Beste Schnittstelle zu WAIS-Datenbanken; keine eigene Entwicklung nötig; öffentlich zugängliche WAISgate-Schnittstelle ist bereits im Web verfügbar; keine Probleme mit Firewalls. ● Schwächen: Keine Verzahnung von WAIS-Datenbank und Web-Server; keine Anpassung der Suchergebnisse.
Fußnoten: (1) In HTML 3.0 wird es auch eine Überprüfung durch den Browser geben. Einige Web-Browser, etwa ViolaWWW, können dies auch heute schon (die Benutzung ist allerdings schwierig). Inhaltsverzeichnis
Kapitel 3
Kapitel 5
http://www.oreilly.de/german/freebooks/Html_buch/www04.html (22 von 22) [11.04.2001 17:15:34]
5 Zugangssteuerung und Sicherheitsaspekte im Web Falls Sie der ganzen Welt unbeschränkten Zugang zu der Dokumentation auf Ihrem Server geben wollen, kommen Sie mit den in Kapitel 2, Einrichten eines Web-Servers, gezeigten Einstellungen gut zurecht. In diesem Fall müssen Sie Abschnitt 5.1 nicht unbedingt lesen. Sie sollten jedoch auf alle Fälle Abschnitt 5.2 lesen, der die Sicherheit des Systems behandelt, auf dem Ihr Web-Server läuft.
5.1 Zugangssteuerung und Identitätsnachweis Sie können den Zugang durch zwei voneinander unabhängige Methoden steuern: ● Zugangssteuerung auf Domänenebene: Dabei werden Verbindungen abhängig von der Internet-Adresse des Rechners, auf dem der Web-Browser läuft, akzeptiert oder abgewiesen. ● Identitätsnachweis (Authentifizierung) der Benutzer: Dabei werden Verbindungen abhängig vom Benutzernamen und dessen Authentifizierung durch ein Zugangspaßwort akzeptiert oder abgewiesen. Sie können den Zugang auch durch eine Kombination beider Methoden steuern. 5.1.1 Access Control Files Zugangssteuerung und Identitätsnachweis können für den gesamten Server oder für einzelne Verzeichnisse eingerichtet werden: ● Der Zugriff auf den gesamten Server und einzelne Verzeichnisse wird über eine globale Zugangsdatei (Access Control File, ACF) gesteuert. Diese ACF heißt access.conf. Beim httpd des NCSA müssen Sie immer eine globale ACF einrichten und verwalten. ● Wenn Sie es wünschen, können Sie den Zugang auf einzelne Verzeichnisse auch durch verzeichnisspezifische ACFs steuern, die standardmäßig .htaccess heißen.(1) Die globale ACF
http://www.oreilly.de/german/freebooks/Html_buch/www05.html (1 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
kann verzeichnisspezifische ACFs einschränken oder völlig verbieten. Verzeichnisspezifische ACFs sollten Sie nur dann verwenden, wenn es gute Gründe gibt, den Zugang dezentral zu steuern (wenn Ihr Server z.B. für mehrere voneinander unabhängige Projekte eingesetzt wird, bei denen jedes Team den Zugang jeweils selbst steuern muß). Es ist nicht möglich, den Zugriff auf eine einzelne Datei zu steuern. Wenn Sie eine einzelne Datei schützen wollen, müssen Sie sie in ein eigenes Verzeichnis stellen. Wir wollen uns ansehen, wie Sie den Zugriff auf zwei Unterverzeichnisse Ihres Dokumentbaums steuern können. Beim ersten Ansatz gibt es für die Verzeichnisse subdirectory-1 und subdirectory-2 jeweils eine eigene Anweisung in der globalen ACF: Anweisungen order, deny, allow und require Anweisungen order, deny, allow und require Wenn zwei verschiedene Personen den Zugang auf die beiden Verzeichnisse steuern müssen, können die Dateien .htaccess in subdirectory-1 und subdirectory-2 folgende Anweisungen enthalten: Anweisungen order, deny, allow und require Die Anweisung Options legt fest, welche weitergehenden Funktionen auf Ihrem Web-Server erlaubt sind. Sie steht außerhalb des Abschnitts , aber noch innerhalb des Abschnitts in der globalen ACF. Die Anweisung AllowOverride legt fest, ob verzeichnisspezifische ACFs die globale ACF überschreiben dürfen. Weitere Hinweise zu den Anweisungen in srm.conf finden Sie in Kapitel 4, Gateways und Formulare im Web. 5.1.2 Zugangssteuerung auf Domänenebene Sie können dem Benutzer den Zugang zum Web-Server abhängig von der Internet-Adresse seiner Domäne ermöglichen oder verbieten. Auf diese Art können Sie den Zugang für eine ganze Organisation oder Abteilung regeln, ohne sich um einzelne Benutzernamen kümmern zu müssen. Da die Zugangssteuerung auf Domänenebene vollständig vom Web-Server durchgeführt wird, funktioniert sie im Gegensatz zum Identitätsnachweis mit allen Web-Browsern. Wir stellen zunächst die verschiedenen Anweisungen zur Zugangssteuerung vor und zeigen dann einige Beispiele verschiedener Zugangskonfigurationen.
http://www.oreilly.de/german/freebooks/Html_buch/www05.html (2 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
5.1.2.1 Anweisungen für Domänen
Die Anweisung gliedert ACFs in Abschnitte für jeweils ein Verzeichnis. Innerhalb eines solchen Verzeichnisabschnitts stehen die Anweisungen zur Zugangssteuerung im Abschnitt . Die Anweisungen zur Zugangssteuerung lauten: order Legt die Reihenfolge fest, in der die Anweisungen deny und allow innerhalb eines -Abschnitts ausgewertet werden. allow Legt die Rechner fest, die auf das Verzeichnis zugreifen dürfen. deny Legt die Rechner fest, die nicht auf das Verzeichnis zugreifen dürfen. Wir betrachten jetzt einige Beispiele, wie Sie in verschiedenen Situationen die Dateien zur Zugangssteuerung anpassen können. 5.1.2.2 Allgemeiner und unbeschränkter Zugang
Mit der ursprünglichen Konfiguration des Web-Servers, die wir in Kapitel 2, Einrichten eines Web-Servers, beschrieben haben, ist Ihr httpd-Server für allgemeinen und unbeschränkten Zugang eingerichtet. Alle Benutzer haben Zugriff auf alle Informationen. Ob dieser unbeschränkte Zugang tatsächlich auch öffentlichen Zugang bedeutet, hängt davon ab, ob Ihr Web-Server im Internet, hinter einem Firewall oder in einem privaten TCP/IP-Netz läuft. Der Web-Server selbst beschränkt den Zugang jedenfalls nicht. 5.1.2.3 Zugang nur für die lokale Domäne
Wenn sich Ihr Server im Internet oder einem privaten TCP/IP-Netz befindet, wollen Sie den Zugang vielleicht auf die eigene Fakultät oder Organisation beschränken.Wenn Sie mit der Voreinstellung für DocumentRoot arbeiten, ändern Sie einfach die Konfigurationsdatei access.conf wie folgt und starten anschließend httpd neu: Options Indexes FollowSymlinks AllowOverride None order deny,allow deny from all allow from fredonia.edu Im Vergleich zur Konfiguration mit allgemeinem und unbeschränktem Zugang stellen Sie folgendes fest: ● Die Anweisung order wurde von allow,deny zu deny,allow geändert. Das bewirkt, daß httpd zuerst die Anweisung deny auswertet und dann gemäß der Anweisung allow Ausnahmen gewährt. http://www.oreilly.de/german/freebooks/Html_buch/www05.html (3 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
● ●
Die Anweisung deny from all wurde hinzugefügt. Die Anweisung allow wurde von all auf die lokale Domäne geändert (in diesem Fall fredonia.edu).
Auf diese Art können Sie den Zugang auch auf eine Subdomäne beschränken, etwa cs.fredonia.edu. Sie können diese Methode auch auf Verzeichnisebene ausdehnen, indem Sie den obigen -Abschnitt in eine Datei .htaccess in einem Unterverzeichnis aufnehmen: order deny,allow deny from all allow from fredonia.edu Enthält die Datei .htaccess in einem speziellen Unterverzeichnis diese Anweisungsfolge, so können Sie auf Ihrem gesamten Web-Server mit unbeschränktem Zugriff arbeiten und nur einen Bereich auf lokalen Zugriff beschränken. Die Methode funktioniert auch für den Schutz Ihres persönlichen HTML-Verzeichnisses, wenn Sie die Datei .htaccess in das Unterverzeichnis public_html stellen. 5.1.2.4 Zugriff für mehrere Organisationen
Bei diesem Szenario richten wir einen privaten Web-Server im Internet ein. Dies ist z.B. für drei Organisationen denkbar, die zusammen einen Web-Server entwickeln und die Entwicklung erst abschließen wollen, bevor der Server öffentlich zugänglich gemacht wird. Die drei Organisationen seien fredonia.edu, non.profit.org und acme.net. Jede Organisation richtet ihre Konfigurationsdatei access.conf wie im vorigen Beispiel ein, trägt jedoch zusätzlich noch folgende Anweisung allow ein: allow fredonia.edu non.profit.org acme.net Damit haben alle Benutzer dieser drei Domänen Zugriff auf den Web-Server, jedoch niemand von außerhalb. 5.1.3 Identitätsnachweis Mit dem Identitätsnachweis können Sie Einzelbenutzern den Zugang zu Ihrem Web-Server abhängig von Benutzername und Paßwort erlauben oder verbieten. Dabei besteht kein Zusammenhang zwischen den systemweiten Benutzernamen bzw. Paßwörtern (in der Datei /etc/passwd) und der Datei des Web-Servers mit Benutzernamen und Paßwörtern. Wenn eine Benutzerin auf derart geschützte Seiten zugreift, wird sie aufgefordert, Name und Paßwort einzugeben. Erst nach korrekter Eingabe wird der Zugang gewährt. Nach erfolgter Zugangssteuerung kann sie von Seite zu Seite springen, ohne sich erneut »auszuweisen«, da sich der Web-Browser Rechnernamen, Verzeichnispfad, Namen bzw. Paßwort für zukünftige Anforderungen merkt. Immer wenn der Web-Browser auf einen URL mit dem gleichen Rechnernamen und Verzeichnispfad zugreift, benutzt er den gleichen Namen und das gleiche Paßwort.
http://www.oreilly.de/german/freebooks/Html_buch/www05.html (4 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
Da Web-Browser und -Server beim Identitätsnachweis kooperieren müssen, kann sich ein Benutzer nur ausweisen, wenn der Web-Browser die Benutzerauthentifizierung unterstützt. Zur Zeit trifft dies nur für Mosaic und Lynx zu. Für den Identitätsnachweis müssen Sie eine private Datei mit Namen und Paßwörtern für Ihre Hypertext-Anwendung verwalten. Diese Datei heißt per Konvention .htpasswd. Die Benutzerauthentifizierung ist so organisiert, daß ein Benutzer keine Kennung auf Ihrem System braucht, um sich für den Zugriff auf Dateien des Web-Servers auszuweisen. 5.1.3.1 Verwaltung der Datei htpasswd
Zur Bearbeitung der Datei .htpasswd brauchen Sie ein Programm namens htpasswd. Da dieses Programm nicht im vorkompilierten Binärpaket enthalten ist, müssen Sie sich das vollständige Source-Paket besorgen und das Programm selbst übersetzen. Die Quelldatei heißt htpasswd.c und befindet sich im Unterverzeichnis support. In Abschnitt 2.1.2 finden Sie Hinweise zur Übersetzung des NCSA HTTP (befolgen Sie aber nur die Hinweise im Unterverzeichnis support). htpasswd wird wie folgt aufgerufen: % htpasswd [-c] .htpasswd username username ist dabei der Name des Benutzers, den Sie hinzufügen oder verändern wollen. Wird die Option -c angegeben, legt htpasswd eine neue Hypertext-Paßwortdatei an, anstatt eine existierende zu bearbeiten. Findet htpasswd den angegebenen Benutzernamen, werden Sie aufgefordert, das Paßwort des Benutzers zu ändern. Tippen Sie das neue Paßwort zweimal ein. htpasswd aktualisiert daraufhin die Datei. Findet htpasswd den angegebenen Benutzer nicht, werden Sie aufgefordert, das Anfangspaßwort für den Benutzer einzugeben. Sie können mit mehreren .htpasswd-Dateien arbeiten und auch einen anderen Dateinamen verwenden. Wichtig ist dabei jedoch, daß sich die Datei nicht in dem zu schützenden Verzeichnis befinden darf. Sie muß außerhalb des Dokumentbaums liegen. 5.1.3.2 Identitätsnachweis einzelner Benutzer
Der Einzelnachweis basiert auf einer Kombination von Anweisungen zur Zugangssteuerung und einer privaten Datei .htpasswd. Wir untersuchen in einem Beispiel, wie man den Zugang auf solche Benutzer beschränken kann, die das Paßwort kennen. Wenn Sie mit der Voreinstellung für DocumentRoot arbeiten, ändern Sie einfach die Konfigurationsdatei access.conf wie folgt: Options Indexes FollowSymlinks AllowOverride None AuthUserFile /usr/local/etc/httpd/conf/.htpasswd AuthGroupFile /dev/null AuthName By Secret Password Only! http://www.oreilly.de/german/freebooks/Html_buch/www05.html (5 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
AuthType Basic require user username Im Vergleich zur Konfiguration mit allgemeinem und unbeschränktem Zugang stellen Sie folgendes fest: ● Die neue Anweisung AuthUserFile gibt den absoluten Pfadnamen der Hypertext-Paßwortdatei an. ● Die Anweisung AuthGroupFile wurde zwar hinzugefügt, jedoch mit /dev/null belegt. Dies gibt gemäß UNIX-Konvention an, daß die Datei nicht existiert. ● Die neue Anweisung AuthName enthält den Hinweistext, mit dem der Benutzername angefordert wird (in diesem Fall By Secret Password Only!). ● Die neue Anweisung AuthType wird mit Basic belegt. Hier haben Sie zur Zeit keine andere Wahl, da nur der Authentifizierungstyp Basic unterstützt wird. ● Die vier Auth-Anweisungen stehen außerhalb des -Abschnitts. ● Im Abschnitt wurden die Anweisungen order und allow entfernt und durch die Anweisung require ersetzt. Sie bewirkt, daß httpd einen Benutzernamen und ein Paßwort anfordert. Der Benutzername muß username lauten. Wenn Sie die Anweisung require verwenden, müssen Sie auch die Anweisungen AuthUserFile, AuthGroupFile, AuthName und AuthType einfügen. Als nächstes legen Sie für den in der Konfigurationsdatei access.conf eingetragenen Benutzernamen eine Hypertext-Paßwortdatei an: % htpasswd -c /usr/local/etc/httpd/conf/.htpasswd username htpasswd verlangt daraufhin die Eingabe eines Paßworts. Denken Sie daran, daß Sie nach allen Änderungen an Konfigurationsdateien (einschließlich .htpasswd) den Server httpd wie in Abschnitt 2.1.5.2 beschrieben neu starten müssen, damit die Änderungen wirksam werden (es sei denn, Sie betreiben den Server unter inetd). Nach dem Neustart Ihres Web-Servers haben nur solche Benutzer Zugriff, die den Benutzernamen und das zugehörige Paßwort kennen. Um das Verzeichnis /usr/local/etc/httpd/htdocs/subdirectory-3 durch Einzelnachweise auf Verzeichnisebene zu schützen, tragen Sie folgende Zeilen in der Datei .htaccess in diesem Verzeichnis ein: AuthUserFile /usr/local/etc/httpd/conf/.htpasswd AuthGroupFile /dev/null AuthName By Secret Password Only! AuthType Basic require user username 5.1.3.3 Identitätsnachweis anhand von Gruppen
http://www.oreilly.de/german/freebooks/Html_buch/www05.html (6 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
Sie können den Identitätsnachweis nicht nur für einzelne Benutzer durchführen, sondern die Benutzer in Gruppen zusammenfassen und diese gemeinsam behandeln. Dazu sind drei Schritte nötig: ● Modifizieren Sie die globale ACF (access.conf). ● Legen Sie eine Hypertext-Gruppendatei (.htgroup) mit mehreren Benutzern als Mitglieder an. ● Überprüfen Sie, ob alle Benutzer in der Hypertext-Gruppendatei auch in der Hypertext-Paßwortdatei enthalten sind. Wir sehen uns dazu wieder ein Beispiel an und nehmen die globale ACF für Einzelnachweise als Ausgangspunkt. Diese ändern wir wie folgt: Options Indexes FollowSymlinks AllowOverride None AuthUserFile /usr/local/etc/httpd/conf/.htpasswd AuthGroupFile /usr/local/etc/httpd/conf/.htgroup AuthName By Secret Password Only! AuthType Basic require group groupname Wenn Sie dies mit unserem Ausgangspunkt vergleichen, werden Sie folgendes feststellen: ● Die Anweisung AuthGroupFile wurde verändert und enthält jetzt nicht mehr den Eintrag /dev/null, sondern zeigt auf eine Gruppenpaßwortdatei namens .htgroup. Es ist sinnvoll, diese Datei in das gleiche Verzeichnis wie die Hypertext-Paßwortdatei zu stellen. ● Die Anweisung require wurde von user auf group geändert und username auf groupname. Im zweiten Schritt legen Sie dann mit einem Texteditor die Datei /usr/local/etc/httpd/conf/.htgroup an und tragen folgende Gruppendefinition ein: groupname: username1 username2 username3 usernameN Die Benutzernamen werden dabei durch Leerzeichen getrennt. Die Hypertext-Gruppendatei kann mehrere Gruppen enthalten, jeweils eine pro Zeile. Wenn Sie die Benutzernamen, die der Gruppe zugeordnet sind, bereits definiert haben, müssen Sie jetzt nur noch httpd neu starten, damit diese Änderungen wirksam werden. Wenn Sie in der Gruppendatei Benutzernamen eingetragen haben, die es in der Hypertext-Paßwortdatei noch nicht gibt, müssen Sie diese mit dem Programm htpasswd zusammen mit den zugehörigen Paßwörtern in der existierenden Datei .htpasswd eintragen, also etwa: % htpasswd /usr/local/etc/httpd/conf/.htpasswd username2 % htpasswd /usr/local/etc/httpd/conf/.htpasswd username3
http://www.oreilly.de/german/freebooks/Html_buch/www05.html (7 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
Beachten Sie, daß htpasswd ohne die Option -c aufgerufen wird, da die Hypertext-Paßwortdatei bereits existiert und diese neuen Einträge einfach hinzugefügt werden. 5.1.3.4 Gleichzeitige Zugangssteuerung und Identitätsnachweis
Sie können den Identitätsnachweis zusammen mit der Zugangssteuerung auf Domänenebene einsetzen. Bei den beiden vorhergehenden Beispielen können Sie z.B. eintragen, daß nur Benutzer aus der Domäne fredonia.edu die Aufforderung zum Identitätsnachweis erhalten. Dazu müssen Sie den Abschnit wie folgt modifizieren: order deny,allow deny from all allow from fredonia.edu require group groupname Indem Sie die beiden Methoden kombinieren, erhöhen Sie die Sicherheit Ihres Web-Servers weiter.
5.2 Sicherheitsaspekte Bei der Konfiguration der Zugangssteuerung auf Ihrem Web-Server sollten Sie darauf achten, solchen Leuten keine Zugangsmöglichkeiten zu bieten, die Ihrem System schaden wollen. Ihr Web-Server ist sicher, wenn Sie ihn (wie in Kapitel 2, Einrichten eines Web-Servers, beschrieben) für unbeschränkten Zugang einrichten. Anspruchsvollere Funktionen, etwa Gateways, sollten Sie jedoch nur mit äußerster Sorgfalt integrieren. Sie müssen die folgenden Sicherheitsaspekte je nach Art Ihrer Internet-Verbindung unterschiedlich bewerten: Wird Ihr System durch einen Firewall geschützt, so haben Sie andere Sicherheitsanforderungen als bei direktem Internet-Anschluß. 5.2.1 Verweise außerhalb des Dokumentbaums Sowohl FTP als auch Gopher haben eine Option, die den Zugang mittels chroot() vollständig auf Dateien innerhalb des Datenbaums beschränkt. Web-Server bieten diese Möglichkeit nicht. Ein Web-Browser kann die Verzeichnisstruktur Ihres Systems dennoch nicht beliebig durchlaufen, da alle Zugriffe relativ zum Anfang des Dokumentbaums stattfinden (der Anfang wird in der Anweisung DocumentRoot festgelegt). Selbst wenn sich ein Benutzer ein Verzeichnis mit automatisch erstelltem Inhaltsverzeichnis ansieht, läßt ihn httpd nicht über die Spitze des Dokumentbaums hinauslaufen. Verweise innerhalb des Dokumentbaums auf Ziele außerhalb desselben funktionieren jedoch im Gegensatz zu FTP und Gopher (wenn diese Dienste korrekt eingerichtet sind). Die größte Gefahr für einen Webmaster ist ein System, dessen Benutzer symbolische Verweise auf Verzeichnisse außerhalb des Dokumentbaums anlegen. Dies kann entweder im Dokumentbaum selbst der Fall sein oder im privaten HTML-Verzeichnis eines Benutzers. Um sich dagegen abzusichern, sollte der Webmaster in der Datei access.conf die Option followsymlink deaktivieren oder zumindest auf SymLinksIfOwnerMatch ändern. 5.2.2 Zugangssteuerung und Identitätsnachweis http://www.oreilly.de/german/freebooks/Html_buch/www05.html (8 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
Ihr Web-Server wird zwar durch Zugangssteuerung und Identitätsnachweis relativ sicher, jedoch immer noch nicht völlig »wasserdicht«: ● Bei der Zugangssteuerung auf Domänenebene ist Ihr Web-Server nur so sicher wie der Domain Name Service DNS. Wenn Sie sich auf DNS verlassen, sollten Sie auch der Zugangssteuerung auf Domänenebene trauen. ● Beim Identitätsnachweis wird das Paßwort in uuencode-Kodierung im Netz übertragen. Dies ist eine einfache ASCII-Kodierung, die Sie nicht mit Verschlüsselung verwechseln dürfen. Diese Methode entspricht der Sicherheit des Benutzernamens und Paßworts bei Telnet. Wenn Sie es daher wagen, Ihre Maschine im Internet beliebigen Telnet-Versuchen auszusetzen, so müssen Sie auch dieser Methode trauen. 5.2.3 Private HTML-Verzeichnisse Falls Sie bei der Konfiguration Ihres Web-Servers die Anweisung UserDir in der Konfigurationsdatei srm.conf nicht anders belegen, ermöglicht Ihr Web-Server den öffentlichen Zugang zum Verzeichnis public_html im HOME-Verzeichnis jedes Benutzers. Diese Tatsache wird manchen Benutzern gar nicht bewußt sein, so daß es dabei auch keine Probleme gibt. Andere wollen vielleicht HTML-Dokumente aus diesem Verzeichnis heraus anbieten. Diese Benutzer müssen Sie schützen. In manchen Fällen müssen Sie sich aber auch vor solchen Benutzern schützen. Liegen die HOME-Verzeichnisse aller Benutzer physikalisch an der gleichen Stelle (etwa in /home), dann ist der Schutz sehr einfach. Tragen Sie in der Konfigurationsdatei access.conf die folgenden Zeilen ein: AllowOverride None Options Indexes Befinden sich nicht alle an der gleichen Stelle, sollten Sie einen regulären Ausdruck verwenden, der auf den Namen der Anweisung UserDir paßt, um die Verzeichnisse zu schützen: AllowOverride None Options Indexes Wenn Sie die Anweisung AllowOverride mit None und die Anweisung Options mit Indexes belegen, verhindern Sie, daß Benutzer versehentlich CGI-Skripten mit möglichen Sicherheitsmängeln ausführen. Dies schließt bewußt auch ausführbare CGI-Skripten im HTML-Strom ein sowie die Einrichtung symbolischer Verweise, die aus dem Dokumentbaum herauszeigen. Falls Sie Ihren Benutzern die Möglichkeit zur Einrichtung symbolischer Verweise geben wollen, sollten Sie in der Anweisung Options zumindest SymLinksIfOwnerMatch eintragen. Damit stellen Sie sicher, daß die Benutzer nur symbolische Verweise auf Dateien und Verzeichnisse einrichten können, die ihnen selbst gehören. http://www.oreilly.de/german/freebooks/Html_buch/www05.html (9 von 10) [11.04.2001 17:15:42]
HTML und das World Wide Web
5.2.4 Shell-Metazeichen in Formularen Wenn Sie interaktive Formulare integrieren, haben Benutzer die Möglichkeit, in Eingabefeldern von Formularen Shell-Metazeichen einzutippen, um damit Syntaxfehler der Shell zu provozieren oder beliebige Systemkommandos auszuführen. Dies muß in den CGI-Skripten abgefangen werden, die zu den Formularen gehören. Dieses Problem und passende Schutzmaßnahmen werden in Abschnitt 4.1.2.2 behandelt. CGI-Skripten können an drei Stellen stehen: im Hauptverzeichnis cgi-bin, anderen Unterverzeichnissen cgi-bin (die Sie mit der Anweisung ScriptAlias einrichten) und in den privaten HTML-Unterverzeichnissen der Benutzer. Sie müssen entweder all diese Bereiche überwachen oder sicher sein, daß Ihre Benutzer in ihren eigenen CGI-Skripten keine Sicherheitslöcher öffnen. Fehlt Ihnen dieses Vertrauen, so achten Sie einfach darauf, daß die Anweisung Options zum Schutz der privaten HTML-Verzeichnisse der Benutzer nicht mit All oder ExecCGI belegt ist. Die Anweisung Options in access.conf für den gesamten Server zusammen mit AllowOverride None ist die beste Möglichkeit für den Umgang mit Benutzern, auf die Sie sich nicht verlassen können. 5.2.5 Einbettungen durch den Server Einbettungen durch den Server, die wir nicht im Detail behandelt haben, können ein gefährliches Sicherheitsproblem darstellen. Wie bei einem unsicheren CGI-Skript kann man bei Einbettungen durch den Server beliebige Inhalte in den HTML-Strom einschleusen, der zu einem Web-Browser zurückgeht. Es ist im allgemeinen sinnvoll, Einbettungen vollständig abzuschalten, falls Sie darauf verzichten können. Damit schließen Sie nicht nur eine potentielle Sicherheitslücke, sondern können auch die Performance Ihres Web-Servers erheblich steigern. Einbettungen durch den Server werden entweder für den gesamten Server oder pro Verzeichnis durch Belegung der Anweisung Options mit All oder Includes aktiviert. Wenn Sie Einbettungen erlauben (speziell in den privaten HTML-Verzeichnissen der Benutzer), sollten Sie zumindest die Anweisung Options mit IncludeNoExec belegen. Damit verbieten Sie die Einbettung ausführbarer CGI-Skripten in den HTML-Strom.
Fußnoten (1) Sie können den Dateinamen der verzeichnisspezifischen ACF mit der Anweisung AccessFileName in der Konfigurationsdatei srm.conf ändern. Inhaltsverzeichnis
Kapitel 4
Anhang A
http://www.oreilly.de/german/freebooks/Html_buch/www05.html (10 von 10) [11.04.2001 17:15:42]
Anhang A HTML-Kurzreferenz Tabelle A-1 enthält die Tags von HTML 2.0 ohne die Tags für Server-Einbettungen und Formulare, die in den Abschnitten 3.1.10 bzw. 4.2.4 aufgeführt sind. Tabelle A-2 enthält die bei einigen Tags möglichen Attribute.
Klammert das gesamte Dokument Klammert den Kopfteil Titel Basisadresse des Dokuments zur Auflösung relativer Verweise Ermöglicht die Suche nach einem Schlüsselwort Querverweis, gleiche Attribute wie Metainformationen über das Dokument Hauptteil Überschriften Beginn eines neuen Absatzes (preformatted) vorformatierter Text Adreßformat, meist kursiv Zitatblock, meist eingerückt und/oder kursiv Kommentar
Buchtitel oder Zitat, meist kursiv Kurze Codestellen, meist in äquidistanter Schrift (emphasize) hervorgehobener Text, meist kursiv Keyboard-Eingabe, meist in äquidistanter Schrift Wörtlich zu interpretierende Zeichen, meist in äquidistanter Schrift Starke Hervorhebung, meist fett Platzhalter oder Variable, meist kursiv
Listen http://www.oreilly.de/german/freebooks/Html_buch/www_a.html (1 von 2) [11.04.2001 17:15:46]
HTML und das World Wide Web
<MENU> Sonstige
(unordered list) Unsortierte Liste (list item) Element einer Liste (ordered list) Sortierte Liste (directory) Verzeichnisliste Liste mit einer Zeile pro Element (definition list) Glossar (definition term) Element des Glossars Definition eines Elementeintrags im Glossar
Anker, benötigt mindestens das Attribut NAME oder HREF Fügt Inline-Graphik ein Fügt einen Zeilenumbruch ein Fügt eine horizontale Trennlinie ein
Tabelle A-2. Attribute für die Tags. -------------------------------------------------------------------------------------Start-Tag End-Tag Attribute Beschreibung Mögliche Werte ------------------------------------------------------------------------------------- HREF Verweisziel Dateiname oder Name des Ankers NAME Weist dem Anker einen Beliebiger Name (ein Wort) symbolischen Namen zu SRC Name der Graphikdatei Dateiname ALIGN Ausrichtung der Graphik TOP, MIDDLE oder BOTTOM ALT Legt alternativen Text fest Beliebiger Text ISMAP Definiert image map -------------------------------------------------------------------------------------Inhaltsverzeichnis
Kapitel 5
Anhang B
http://www.oreilly.de/german/freebooks/Html_buch/www_a.html (2 von 2) [11.04.2001 17:15:46]
Anhang B Sonderzeichen in HTML HTML-Dokumente können alle Zeichen des Zeichensatzes ISO 8859-1 (Latin1) enthalten. Zeichen außerhalb des ASCII-Bereichs (also mit Codes ab 128) können als Dezimalcode in der Schreibweise é) oder per Namen in der Schreibweise é durch eine Ersatzdarstellung gekennzeichnet werden. Das gleiche gilt für die vier Zeichen , & und ", die eine Sonderbedeutung in HTML haben. Die Dezimalschreibweise wird allerdings nicht von allen Browsern unterstützt. In der Tabelle nicht aufgeführte Zeichen haben die gleiche Bedeutung wie im ASCII-Zeichensatz. Die mit * markierten Zeichen werden nicht in allen Browsern unterstützt.
Left angle quote, guillemotleft Not sign Soft hyphen* Registered trademark Macron accent Degree sign Plus or minus Superscript two Superscript three Acute accent Micro sign Paragraph sign Middle dot Cedilla Superscript one Masculine ordinal Right angle quote, guillemotright Fraction one-fourth Fraction one-half Fraction three-fourths Inverted question mark Capital A, grave accent Capital A, acute accent Capital A, circumflex accent Capital A, tilde Capital A, dieresis or umlaut mark Capital A, ring Capital AE dipthong (ligature) Capital C, cedilla Capital E, grave accent Capital E, acute accent Capital E, circumflex accent Capital E, dieresis or umlaut mark Capital I, grave accent Capital I, acute accent Capital I, circumflex accent Capital I, dieresis or umlaut mark Capital Eth, Icelandic Capital N, tilde Capital O, grave accent Capital O, acute accent Capital O, circumflex accent Capital O, tilde Capital O, dieresis or umlaut mark Multiply sign Capital O, slash
http://www.oreilly.de/german/freebooks/Html_buch/www_b.html (2 von 3) [11.04.2001 17:15:58]
HTML und das World Wide Web
Ù | Ù | Ugrave | Capital U, grave accent Ú | Ú | Uacute | Capital U, acute accent Û | Û | Ucirc | Capital U, circumflex accent Ü | Ü | Uuml | Capital U, dieresis or umlaut mark Ý | Ý | Yacute | Capital Y, acute accent Þ | Þ | THORN | Capital THORN, Icelandic ß | ß | szlig | Small sharp s, German (sz ligature) à | à | agrave | Small a, grave accent á | á | aacute | Small a, acute accent â | â | acirc | Small a, circumflex accent ã | ã | atilde | Small a, tilde ä | ä | auml | Small a, dieresis or umlaut mark å | å | aring | Small a, ring æ | æ | aelig | Small ae dipthong (ligature) ç | ç | ccedil | Small c, cedilla è | è | egrave | Small e, grave accent é | é | eacute | Small e, acute accent ê | ê | ecirc | Small e, circumflex accent ë | ë | euml | Small e, dieresis or umlaut mark ì | ì | igrave | Small i, grave accent í | í | iacute | Small i, acute accent î | î | icirc | Small i, circumflex accent ï | ï | iuml | Small i, dieresis or umlaut mark ð | ð | eth | Small eth, Icelandic ñ | ñ | ntilde | Small n, tilde ò | ò | ograve | Small o, grave accent ó | ó | oacute | Small o, acute accent ô | ô | ocirc | Small o, circumflex accent õ | õ | otilde | Small o, tilde ö | ö | ouml | Small o, dieresis or umlaut mark ÷ | ÷ | divide | Division sign ø | ø | oslash | Small o, slash ù | ù | ugrave | Small u, grave accent ú | ú | uacute | Small u, acute accent û | û | ucirc | Small u, circumflex accent ü | ü | uuml | Small u, dieresis or umlaut mark ý | ý | yacute | Small y, acute accent þ | þ | thorn | Small thorn, Icelandic ÿ | ÿ | yuml | Small y, dieresis or umlaut mark -----------------------------------------------------------------Inhaltsverzeichnis
Anhang A
Anhang C
http://www.oreilly.de/german/freebooks/Html_buch/www_b.html (3 von 3) [11.04.2001 17:15:58]
Anhang C Anweisungen in httpd.conf Dieser Anhang enthält eine Liste aller Anweisungen, die in der Konfigurationsdatei httpd.conf möglich sind. Für jede Anweisung werden Optionen und Standardeinstellungen erklärt. Die Anweisungen sind in alphabetischer Reihenfolge aufgeführt. AccessConfig filename Die Anweisung AccessConfig enthält den Namen der globalen ACF (Access Control File). filename kann ein relativer Pfadname sein, der sich auf ServerRoot bezieht, oder aber ein absoluter Pfadname. Diese Konfigurationsdatei steuert den Zugang zum gesamten Web-Server oder zu einzelnen Verzeichnissen. In Kapitel 5, Zugangssteuerung und Sicherheitsaspekte im Web, finden Sie weitere Informationen darüber, wie Sie den Zugriff auf Ihren Web-Server steuern können. Die Anweisung AccessConfig darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: AccessConfig conf/access.conf ErrorLog filename Die Anweisung ErrorLog enthält den Namen der Fehlerprotokolldatei (entweder ein relativer Pfadname, der sich auf ServerRoot bezieht, oder aber ein absoluter Pfadname). httpd protokolliert die folgenden Informationen über Fehlersituationen: ❍ Clients, bei denen eine Zeitüberschreitung (timeout) passiert ❍ Skripten, die keine Ausgabe erzeugen ❍ Zugriffsdateien .htaccess, die versuchen, die Einstellungen der globalen ACF ohne Erlaubnis zu überschreiben ❍ Fehler im Server, die zu Speicherverletzungen führen ❍ Konfigurationsprobleme im Zusammenhang mit der Benutzerauthentifizierung Die Anweisung ErrorLog darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: ErrorLog logs/error_log Group [ name | number ]
http://www.oreilly.de/german/freebooks/Html_buch/www_c.html (1 von 5) [11.04.2001 17:16:03]
HTML und das World Wide Web
Die Anweisung Group enthält die Kennung der Gruppe, die benutzt wird, wenn httpd im Einzelbetrieb läuft. Die Kennung wird entweder mit einem führenden Nummernzeichen »#« numerisch angegeben oder als gültiger Name einer Systemgruppe. Bei beiden Möglichkeiten muß name bzw. number in /etc/group vorhanden sein. Beachten Sie, daß sich dieser Eintrag nicht auf die Gruppenkennung auswirkt, unter der der ursprüngliche httpd läuft, sondern nur auf die gestarteten Sohnprozesse. Soll diese Anweisung benutzt werden, muß der Server httpd unter der Kennung root laufen. Die Anweisung Group darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: Group #-1 IdentityCheck [ on | off] Die Anweisung IdentityCheck legt fest, ob die Identität des fernen Benutzers in der Datei protokolliert wird, die bei der Anweisung TransferLog angegeben ist. Damit diese Protokollierung auch wirklich funktioniert, muß auf dem System des fernen Benutzers ein Identitätsdämon gemäß RFC931 laufen. Dieses Verfahren ist zwar nicht absolut sicher, eignet sich jedoch für ein grobes Benutzungsprotokoll. Wenn Sie diese Informationen nicht auswerten wollen, belegen Sie diese Anweisung mit off. Die Einstellung on wirkt sich negativ auf die Geschwindigkeit des Web-Servers aus. Die Anweisung IdentityCheck darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: IdentityCheck off PidFile filename Die Anweisung PidFile gibt an, in welche Datei die Prozeßnummer des Servers (PID) geschrieben wird. Die Angabe erfolgt relativ zu ServerRoot. PidFile hat nur dann eine Bedeutung, wenn der Server httpd im Einzelbetrieb läuft. Sie brauchen Sie, um den Web-Server zu killen oder dem Server ein Signal zum Neustart zu schicken. Die Anweisung PidFile darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: PidFile logs/httpd.pid Port num Die Anweisung Port legt die Portnummer fest, die der httpd-Server überwacht. Sie können eine beliebige Portnummer zwischen 0 und 65536 eintragen. Dabei müssen Sie jedoch beachten, daß die meisten Portnummern unterhalb 1024 reserviert sind. Sie sollten Ihren Server auf Port 80 betreiben, denn dies ist der Standardport für HTTP. Dazu müssen Sie httpd unter der Kennung root starten. Falls Sie in Erwägung ziehen, nicht den Standardport für HTTP zu benutzen, sollten Sie daran denken, daß viele Web-Browser, die hinter einem Firewall (bzw. vor einem Proxy-Server) laufen, nur auf den Standardport für HTTP zugreifen können. Wenn Sie Ihren Server anders konfigurieren, schränken Sie die Zugangsmöglichkeiten zu Ihrem Server ein.
http://www.oreilly.de/german/freebooks/Html_buch/www_c.html (2 von 5) [11.04.2001 17:16:03]
HTML und das World Wide Web
Die Anweisung Port darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: Port 80 ResourceConfig filename Die Anweisung ResourceConfig beschreibt die Konfigurationsdatei für Ressourcen. filename kann ein relativer Pfadname sein, der sich auf ServerRoot bezieht, oder aber ein absoluter Pfadname. Die meisten Optionen in der Konfigurationsdatei für Ressourcen haben mit der automatischen Indizierung von Verzeichnissen durch den httpd-Server zu tun. Die Anweisung ResourceConfig darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: ResourceConfig conf/srm.conf ServerAdmin address Die Anweisung ServerAdmin enthält die Mail-Adresse des Systemverwalters. Gibt es zur Laufzeit Probleme mit Ihrem Web-Server, so können sich die Benutzer an diese Adresse wenden. Tragen Sie hier Ihren webmaster-Alias ein. Die Anweisung ServerAdmin darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Für diese Anweisung gibt es keine Standardeinstellung. ServerName hostname Die Anweisung ServerName legt den Hostnamen fest, die der httpd-Server bei der Erzeugung umgeleiteter URLs zurückliefert. Läuft Ihr Server z.B. in Wirklichkeit auf dem Rechner myhost.fredonia.edu, Sie wollen aber über den URL http://www.fredonia.edu darauf verweisen, dann sollten Sie diesen Wert als hostname eintragen und den passenden CNAME einrichten. Die Anweisung ServerName darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so ermittelt der httpd-Server den Hostnamen durch geeignete Systemaufrufe. ServerRoot directory Die Anweisung ServerRoot enthält den absoluten Pfad des Stammverzeichnisses, in dem sich das ausführbare Programm httpd befindet. Der httpd-Server erwartet beim Start die Konfigurationsdatei in conf/httpd.conf (relativ zu ServerRoot). Die Anweisung ServerRoot darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: ServerRoot /usr/local/etc/httpd ServerType [ inetd | standalone ] Die Anweisung ServerType legt fest, ob Sie den httpd-Server unter dem Prozeß inetd betreiben oder als Einzeldämon. Wenn Sie mit starker Auslastung rechnen, sollten Sie den Server im Einzelbetrieb laufen lassen. Die Anweisung ServerType darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein.
http://www.oreilly.de/german/freebooks/Html_buch/www_c.html (3 von 5) [11.04.2001 17:16:03]
HTML und das World Wide Web
Fehlt sie, so gilt folgende Standardeinstellung: ServerType standalone TimeOut time Die Anweisung TimeOut legt die Zeitdauer (in Sekunden) fest, die der httpd-Server nach dem Verbindungsaufbau auf die Anforderung des Web-Browsers wartet. Außerdem bestimmt diese Anweisung, wie lange der Server darauf wartet, daß ein Web-Browser die Informationen empfängt. Wenn Sie diesen Wert reduzieren wollen, müssen Sie bedenken, daß Sie Web-Browsern mit langsamen Internet-Verbindungen möglichst viel Zeit lassen sollten, bevor Ihr Web-Server die Verbindung abbaut. Die Anweisung TimeOut darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: TimeOut 1800 TransferLog filename Die Anweisung TransferLog legt den Dateinamen des Übertragungsprotokolls fest. filename kann ein relativer Pfadname sein, der sich auf ServerRoot bezieht, oder aber ein absoluter Pfadname. In dieser Protokolldatei werden die Zugriffe auf Ihren httpd-Server mit Rechnernamen, Datum und Dateinamen gespeichert. Die Anweisung TransferLog darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: TransferLog logs/access_log TypesConfig filename Die Anweisung TypesConfig beschreibt die Konfigurationsdatei für MIME-Typen. filename kann ein relativer Pfadname sein, der sich auf ServerRoot bezieht, oder aber ein absoluter Pfadname. Die Konfigurationsdatei für MIME-Typen steuert die Zuordnung von Dateinamenerweiterungen auf MIME-Typen, die der httpd-Server verwendet, wenn er Informationen an Web-Browser gemäß HTTP/1.0 sendet. Im Normalfall müssen Sie diese Datei nicht bearbeiten. Die Anweisung TypesConfig darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: TypesConfig conf/mime.types User [ name | number ] Die Anweisung User enthält die Benutzerkennung, die httpd im Einzelbetrieb verwendet. Sie kann sich von der Benutzerkennung beim Start unterscheiden. Die Kennung wird entweder mit einem führenden Nummernzeichen »#« numerisch angegeben oder als gültige Systemkennung. Oft läuft der Server unter der Kennung http oder httpd. Bei beiden Möglichkeiten muß name bzw number in /etc/passwd vorhanden sein. Die Anweisung User darf nur einmal in der Konfigurationsdatei httpd.conf vorhanden sein. Fehlt http://www.oreilly.de/german/freebooks/Html_buch/www_c.html (4 von 5) [11.04.2001 17:16:03]
HTML und das World Wide Web
sie, so gilt folgende Standardeinstellung: User #-1 Inhaltsverzeichnis
Anhang B
http://www.oreilly.de/german/freebooks/Html_buch/www_c.html (5 von 5) [11.04.2001 17:16:03]
Anhang D Anweisungen in srm.conf Dieser Anhang enthält eine Liste aller Anweisungen, die in der Konfigurationsdatei srm.conf möglich sind. Für jede Anweisung werden Optionen und Standardeinstellungen erklärt. Die Anweisungen sind in alphabetischer Reihenfolge aufgeführt. AccessFileName filename Die Anweisung AccessFileName legt den Namen der Datei für die verzeichnisspezifische Zugangssteuerung fest. Die Anweisung AccessFileName darf nur einmal in der Konfigurationsdatei srm.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: AccessFileName .htaccess AddDescription descriptive-text file-id Die Anweisung AddDescription ordnet einem bestimmten Dateityp einen beschreibenden Text zu. Dieser Text erscheint rechts neben dem Dateinamen, wenn die Datei in einem indizierten Verzeichnis steht. descriptive-text muß zwischen Anführungszeichen stehen und ziemlich kurz gehalten werden, eher eine einzelne Zeile und kein ganzer Absatz. file-id ist entweder eine Dateinamenerweiterung (etwa .doc, .txt, .dat oder .html), ein Dateiname, ein vollständiger Pfadname für eine Datei oder ein Suchmuster. Die folgende Zeile ist ein Beispiel für AddDescription: AddDescription "(gzip compressed tar archive)" *.tar.gz Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen AddDescription enthalten. Für diese Anweisung gibt es keine Standardeinstellung. AddEncoding type extension Die Anweisung AddEncoding fügt eindeutige Kodierungsanweisungen für das Client-/Serverprotokoll hinzu. type ist der Kodierungstyp des Dokuments. extension legt fest, welche Dateitypen die neue Kodierung benutzen sollen. Diese Anweisung dient oft zur Markierung komprimierter Dateien, damit sie vom Client dekomprimiert werden können. Enthält Ihr Dokumentbaum z.B. komprimierte PostScript-Dateien, sollten Sie die folgenden Anweisungen benutzen: http://www.oreilly.de/german/freebooks/Html_buch/www_d.html (1 von 7) [11.04.2001 17:16:15]
HTML und das World Wide Web
AddEncoding x-compress Z AddEncoding x-gzip gz gzip zip Dieses Verfahren kann nur dann effizient benutzt werden, wenn die Clients die jeweilige Kodierungsmethode unterstützen. Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen AddEncoding enthalten. Für diese Anweisung gibt es keine Standardeinstellung. AddIcon icon-path name1 name2... Die Anweisung AddIcon legt fest, welches Icon abhängig vom Dateinamen für einen bestimmten Dokumenttyp angezeigt wird. icon-path ist ein virtueller Pfad zu einer Datei mit einem Icon im XBM-Format. Mit einer alternativen Syntax können Sie Text angeben, der anstelle des Icons von zeichenorientierten Web-Browsern ausgegeben wird: AddIcon (text,icon-path) name1 name2... In Tabelle F-1 sehen Sie die möglichen Werte für die Anweisung AddIcon. Die ersten beiden Werte werden exakt so verwendet, die letzten vier sind nur Beispiele.
Tabelle F-1. Werte für AddIcon. -------------------------------------------------------------Typ Wert -------------------------------------------------------------Verzeichnis ^^DIRECTORY^^ leeres Icon ^^BLANKICON^^ beliebige Dateinamenerweiterung .html partieller Dateiname .. beliebiges Suchmuster PR*.txt vollständiger physikalischer Dateiname /docs/cs/org-chart.txt -------------------------------------------------------------Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen AddIcon enthalten. Für diese Anweisung gibt es zwar keine Standardeinstellung, aber die Konfigurationsdatei srm.conf enthält im Originalzustand die folgenden Zuordnungen: AddIcon /icons/movie.xbm .mpg .qt AddIcon /icons/binary.xbm .bin AddIcon /icons/back.xbm .. AddIcon /icons/menu.xbm ^^DIRECTORY^^ AddIcon /icons/blank.xbm ^^BLANKICON^^ AddIconbyEncoding icon-path type1 type2... Die Anweisung AddIconbyEncoding ähnelt der Anweisung AddIcon, ordnet den Dokumenten aber abhängig von der Kodierung Icons zu. Mit einer alternativen Syntax können Sie Text http://www.oreilly.de/german/freebooks/Html_buch/www_d.html (2 von 7) [11.04.2001 17:16:15]
HTML und das World Wide Web
angeben, der anstelle des Icons von zeichenorientierten Web-Browsern ausgegeben wird: AddIconbyEncoding (text,icon-path) name1 name2... name ist ein Suchmuster, das die Inhaltskodierung angibt, für die das jeweilige Icon angezeigt werden soll. Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen AddIconbyEncoding enthalten. Für diese Anweisung gibt es keine Standardeinstellung. AddIconType icon-path type1 type2 Die Anweisung AddIconType ähnelt der Anweisung AddIcon, ordnet den Dokumenten aber abhängig vom MIME-Typ entsprechende Icons zu. Mit einer alternativen Syntax können Sie Text angeben, der anstelle des Icons von zeichenorientierten Web-Browsern ausgegeben wird: AddIconType (text,icon-path) name1 name2... name kann jede der Standardkombinationen type/subtype von MIME sein. Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen AddIconType enthalten. Für diese Anweisung gibt es zwar keine Standardeinstellung, aber die Konfigurationsdatei srm.conf enthält im Originalzustand die folgenden Zuordnungen: AddIconByType (TXT,/icons/text.xbm) text/* AddIconByType (TXT,/icons/image.xbm) image/* AddIconByType (TXT,/icons/sound.xbm) audio/* AddType type/subtype extension Mit der Anweisung AddType können Sie die Definitionen der MIME-Typen aus der Konfigurationsdatei mime.types überschreiben. Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen AddType enthalten. Die Standarddefinitionen der MIME-Typen stammen aus der Konfigurationsdatei für MIME-Typen (mime.types). Alias virtual path Die Anweisung Alias legt auf Ihrem Server einen virtuellen Namen oder ein virtuelles Verzeichnis an. Die Anweisung Alias ist besonders dann nützlich, wenn Ihr Web-Server von mehreren Organisationen benutzt wird und alle kurze URLs verlangen. virtual beschreibt eine Datei oder ein Verzeichnis, das Sie auf eine andere Stelle in Ihrem System abbilden wollen. path ist der absolute Pfadname einer Datei oder eines Verzeichnisses, der bei einer entsprechenden Anforderung benutzt wird. Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen Alias enthalten. Für diese Anweisung gibt es zwar keine Standardeinstellung, aber die Konfigurationsdatei srm.conf enthält im Originalzustand den folgenden Alias: Alias /icons/ /usr/local/etc/httpd/icons/
http://www.oreilly.de/german/freebooks/Html_buch/www_d.html (3 von 7) [11.04.2001 17:16:15]
HTML und das World Wide Web
DefaultType type/subtype Die Anweisung DefaultType dient zur Festlegung des Standard-MIME-Typs, der an den Web-Browser zurückgeliefert wird, wenn die Zuordnungen in der Konfigurationsdatei mime.types nicht passen. type und subtype können aus einer beliebigen Standard-MIME-Kombination bestehen. Die Anweisung DefaultType darf nur einmal in der Konfigurationsdatei srm.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: DefaultType text/html DefaultIcon path Die Anweisung DefaultIcon legt das Icon fest, das angezeigt wird, wenn FancyIndexing aktiviert wird und einem bestimmten Dateityp kein Icon zugeordnet ist. Icons liegen im XBM-Format vor und stehen im Verzeichnis /icon des HTTP-Kits des NCSA. Wenn Sie die möglichen Dateinamenerweiterungen in Ihrer Verzeichnisstruktur kennen, müssen Sie sich nicht um exotische Dateitypen kümmern, für die eine Standardeinstellung nötig ist. Die Anweisung DefaultIcon darf nur einmal in der Konfigurationsdatei srm.conf vorhanden sein. Für diese Anweisung gibt es zwar keine Standardeinstellung, aber die Konfigurationsdatei srm.conf enthält im Originalzustand folgende Zuordnung: DefaultIcon /icons/unknown.xbm DirectoryIndex file Die Anweisung DirectoryIndex enthält den Namen der Datei, die zurückgegeben wird, wenn ein URL ein Verzeichnis Ihres Web-Servers beschreibt. Diese Datei besteht oft aus einem vorgefertigten Verzeichnislisting, sie kann jedoch einen beliebigen Inhalt haben. Die Anweisung DirectoryIndex darf nur einmal in der Konfigurationsdatei srm. conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: DirectoryIndex index.html DocumentRoot absolute-directory-path Die Anweisung DocumentRoot legt das Verzeichnis fest, aus dem heraus httpd Dateien anbietet. Wenn Sie Dateien außerhalb dieses Verzeichnisses anbieten müssen, können Sie mit der Anweisung Alias symbolische Verweise einrichten. Die Anweisung DocumentRoot darf nur einmal in der Konfigurationsdatei srm. conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: DocumentRoot /usr/local/etc/httpd/htdocs FancyIndexing [ on | off ] Die Anweisung FancyIndexing dient nur der Abwärtskompatibilität zu NCSA-HTTP V1.0. Wenn Sie einen neuen Web-Server mit NCSA V1.3 oder neuer einrichten, sollten Sie statt dessen
http://www.oreilly.de/german/freebooks/Html_buch/www_d.html (4 von 7) [11.04.2001 17:16:15]
HTML und das World Wide Web
IndexOptions FancyIndexing benutzen. Obwohl die Anweisung bereits überholt ist, enthält die Konfigurationsdatei srm.conf im Originalzustand den Eintrag FancyIndexing on. HeaderName filename Die Anweisung HeaderName legt den Namen einer Datei fest, die bei der automatischen Indizierung von Verzeichnissen benutzt wird. Der httpd-Server bettet diese Datei automatisch am Anfang des HTML-Stroms für das Verzeichnislisting ein. httpd versucht erst, die Datei filename.html zu öffnen und einzubetten. Gelingt dies nicht, versucht er es mit filename (ohne Erweiterung) und klammert den Inhalt der Datei mit den HTML-Tags und . Findet er keine der beiden Dateien, erfolgt keine weitere Aktion. Die Anweisung HeaderName darf nur einmal in der Konfigurationsdatei srm.conf vorhanden sein. Für diese Anweisung gibt es zwar keine Standardeinstellung, aber die Konfigurationsdatei srm.conf enthält im Originalzustand folgende Zuordnung: HeaderName HEADER IndexIgnore pattern1 pattern2... Die Anweisung IndexIgnore kennzeichnet Dateien, die bei der Verarbeitung von Verzeichnissen ignoriert werden sollen. pattern ist eine Erweiterung oder ein Dateiname, der ignoriert werden soll. Der Web-Server vergleicht bei der Verarbeitung eines Verzeichnisses die Namen mit den Zeichenketten auf der rechten Seite des Eintrags. Stimmen sie überein, so ignoriert er den betreffenden Eintrag beim Verzeichnislisting. Ist pattern ein Suchmuster, so vergleicht httpd den Dateinamen mit diesem Suchmuster. Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen IndexIgnore enthalten. Fehlt diese Anweisung, so wird standardmäßig nur die Datei . ignoriert. Die Konfigurationsdatei srm.conf enthält jedoch im Originalzustand folgende Anweisung: IndexIgnore */.??* *~ *# */HEADER* */README* Sie bewirkt, daß die Voreinstellungen für HeaderName und ReadmeName, versteckte Dateien sowie automatisch erzeugte Sicherungsdateien von emacs bei der Verarbeitung von Verzeichnissen ignoriert werden. IndexOptions option1 option2 option3 Die Anweisung IndexOptions legt fest, ob Sie normale (plain) oder aufwendige (fancy) Verzeichnisindizes (mit Icons und Dateigrößen) benutzen wollen und welche Option Sie für die aufwendige Indizierung aktivieren wollen. Folgende Optionen sind möglich: FancyIndexing Aktiviert aufwendige Verzeichnisindizierung. IconsAreLinks Die Icons werden Bestandteil des Ankers für den jeweiligen Dateinamen. ScanHTMLTitles Die Beschreibung unbekannter HTML-Dokumente wird dem HTML-Tag-Paar <TITLE> entnommen.
http://www.oreilly.de/german/freebooks/Html_buch/www_d.html (5 von 7) [11.04.2001 17:16:15]
HTML und das World Wide Web
SuppressLastModified Verzeichnislistings enthalten nicht das Datum der letzten Änderung. SuppressSize Verzeichnislistings enthalten nicht die Dateigröße. SuppressDescription Es werden keine Beschreibungen für die Dateien ausgegeben. Die Anweisung IndexOptions darf nur einmal in der Konfigurationsdatei srm.conf vorhanden sein. Fehlt diese Anweisung, so sind alle Optionen standardmäßig ausgeschaltet. OldScriptAlias virtual path Die Anweisung OldScriptAlias dient nur der Abwärtskompatibilität zu NCSA-HTTP V1.0 und der damaligen (nicht CGI-konformen) Skript-Schnittstelle. Wenn Sie einen neuen Web-Server mit NCSA V1.2 oder neuer einrichten, können Sie diese Anweisung ignorieren. ReadmeName filename Die Anweisung ReadmeName entspricht der Anweisung HeaderName. Der einzige Unterschied besteht darin, daß sie Informationen enthält, die am Ende eines automatisch erzeugten Verzeichnislistings eingebettet werden. Die Anweisung ReadmeName darf nur einmal in der Konfigurationsdatei srm.conf vorhanden sein. Für diese Anweisung gibt es zwar keine Standardeinstellung, aber die Konfigurationsdatei srm.conf enthält im Originalzustand folgende Zuordnung: ReadmeName README Redirect virtual URL Mit der Anweisung Redirect können Sie einen existierenden Pfad oder Dateinamen eines Dokuments auf einen neuen URL abbilden. virtual ist ein partieller Pfadname nach der URL-Umsetzung. URL ist der URL eines neuen Dokuments (unter Umständen auf einem anderen System). Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen Redirect enthalten. Es gibt keine Standardeinstellung. ScriptAlias virtual path Die Anweisung ScriptAlias legt einen virtuellen Namen oder ein Verzeichnis für Skripten auf Ihrem Server an. Es wird bei der Umsetzung von Gateways auf die eigentlichen CGI-Skripten benutzt. virtual ist der extern bekannte Name, der Bestandteil des URLs ist. path ist der absolute Pfadname des Verzeichnisses, das die CGI-Serverskripten enthält, die die Anforderung bearbeiten. Die Konfigurationsdatei srm.conf kann beliebig viele Anweisungen ScriptAlias enthalten. Für diese Anweisung gibt es zwar keine Standardeinstellung, aber die Konfigurationsdatei srm.conf enthält im Originalzustand folgende Anweisung: ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/ Sie sollten die Anweisung ScriptAlias immer mit einem Schrägstrich »/« zur Kennzeichnung von
http://www.oreilly.de/german/freebooks/Html_buch/www_d.html (6 von 7) [11.04.2001 17:16:15]
HTML und das World Wide Web
Verzeichnissen abschließen, damit es keine Konflikte mit ähnlichen Anweisungen gibt. UserDir [ directory-path | DISABLED ] Zusätzlich zu den Dateien in Ihrem Dokumentbaum können auch Benutzer aus ihren Home-Verzeichnissen heraus Verzeichnisse für den Zugriff per HTTP anbieten. Wenn Sie den Benutzern nicht erlauben wollen, Dateien aus ihrer privaten Verzeichnisstruktur heraus anzubieten, können Sie dies mit dem Schlüsselwort DISABLED unterbinden. Die Anweisung UserDir darf nur einmal in der Konfigurationsdatei srm.conf vorhanden sein. Fehlt sie, so gilt folgende Standardeinstellung: UserDir public_html Inhaltsverzeichnis
Anhang C
http://www.oreilly.de/german/freebooks/Html_buch/www_d.html (7 von 7) [11.04.2001 17:16:15]
Anhang E Anweisungen in access.conf Dieser Anhang enthält eine Liste aller Anweisungen, die in der Konfigurationsdatei access.conf möglich sind. Für jede Anweisung werden Optionen und Standardeinstellungen erklärt. Die Anweisungen sind in alphabetischer Reihenfolge aufgeführt. allow from host1 host2... Die Anweisung allow legt fest, welche Rechner mit einer bestimmten Methode auf ein bestimmtes Verzeichnis zugreifen dürfen. Für host gibt es die folgenden Möglichkeiten: domain-name Der Name einer Domäne, etwa .fredonia.edu. Nur Hosts aus dieser Domäne dürfen auf die Dateien zugreifen. host-name Ein vollständiger Rechnername. full-IP-address Die IP-Adresse eines Rechners. partial-IP-address Die ersten ein bis drei Bytes einer IP-Adresse zwecks Einschränkung auf ein Subnetz. all Allen Rechnern wird der Zugriff erlaubt. In jedem Limit-Abschnitt darf es nur eine allow-Anweisung geben. Es gibt keine Standardeinstellung. AllowOverride opt1 opt2... Die Anweisung AllowOverride legt fest, bis zu welchem Grad lokale verzeichnisspezifische Access Control Files die in der Konfigurationsdatei access.conf definierten globalen Zugriffseinstellungen überschreiben dürfen. Hier sind die folgenden Einträge möglich: None ACFs sind in diesem Verzeichnis nicht zulässig. All In diesem Verzeichnis gibt es keine Einschränkungen für ACFs.
http://www.oreilly.de/german/freebooks/Html_buch/www_e.html (1 von 6) [11.04.2001 17:16:20]
HTML und das World Wide Web
Options Die Anweisung Options ist zulässig. FileInfo Die Anweisungen AddType und AddEncoding sind zulässig. AuthConfig Die Anweisungen AuthName, AuthType, AuthUserFile und AuthGroupFile sind zulässig. Limit Die Abschnittsanweisung Limit ist zulässig. Die Anweisung AllowOverride ist nur in der globalen ACF zulässig. Ist sie nicht vorhanden, so gilt folgende Standardeinstellung: AllowOverride All AuthGroupFile path Die Anweisung AuthGroupFile definiert den Namen der Datei, die eine Liste der Benutzergruppen enthält, die bei der Authentifizierung benutzt wird. Damit der Identitätsnachweis für die Benutzer korrekt ablaufen kann, müssen neben der Anweisung AuthGroupFile auch die Anweisungen AuthName, AuthType und AuthUserFile definiert sein. Die Anweisung ist sowohl in der globalen ACF als auch in verzeichnisspezifischen ACFs zulässig. Es gibt keine Standardeinstellung. AuthName name Die Anweisung AuthName legt für dieses Verzeichnis einen Bereichsnamen für den Identitätsnachweis der Benutzer fest. Diesen Bereichsnamen sehen die Benutzer, damit sie wissen, welchen Benutzernamen und welches Paßwort sie eingeben müssen. name ist ein kurzer Name, der den Authentifizierungsbereich charakterisiert. Dieser Name kann Leerzeichen enthalten. Damit der Identitätsnachweis für die Benutzer korrekt ablaufen kann, müssen neben der Anweisung AuthName auch die Anweisungen AuthGroupFile, AuthType und AuthUserFile definiert sein. Die Anweisung ist sowohl in der globalen ACF als auch in verzeichnisspezifischen ACFs zulässig. Es gibt keine Standardeinstellung. AuthType type Die Anweisung AuthType legt die Art der Authentifizierung für dieses Verzeichnis fest. type gibt an, welcher Authentifizierungstyp in diesem Verzeichnis benutzt werden soll. In NCSA-HTTP V1.3 ist zur Zeit nur der Typ Basic implementiert. Damit der Identitätsnachweis für die Benutzer korrekt ablaufen kann, müssen neben der Anweisung AuthType auch die Anweisungen AuthName, AuthGroupFile und AuthUserFile definiert sein. Die Anweisung ist sowohl in der globalen ACF als auch in verzeichnisspezifischen ACFs zulässig. Es gibt keine Standardeinstellung. AuthUserFile path Die Anweisung AuthUserFile definiert den Namen der Datei, die eine Liste mit Benutzernamen und Paßwörtern für den Identitätsnachweis der Benutzer enthält. path ist der absolute Pfadname
http://www.oreilly.de/german/freebooks/Html_buch/www_e.html (2 von 6) [11.04.2001 17:16:20]
HTML und das World Wide Web
einer Zugangsdatei, die mit dem Zusatzprogramm htpasswd angelegt wurde. Damit der Identitätsnachweis für die Benutzer korrekt ablaufen kann, müssen neben der Anweisung AuthUserFile auch die Anweisungen AuthName, AuthGroupFile und AuthType definiert sein. Die Anweisung ist sowohl in der globalen ACF als auch in verzeichnisspezifischen ACFs zulässig. Es gibt keine Standardeinstellung. deny from host1 host2... Die Anweisung deny legt fest, welchen Benutzern der Zugriff auf ein Verzeichnis untersagt wird. Für host gibt es die folgenden Möglichkeiten: domain-name Der Name einer Domäne, etwa .fredonia.edu. Hosts aus dieser Domäne wird der Zugang untersagt. host-name Ein vollständiger Rechnername. full-IP-address Die IP-Adresse eines Rechners. partial-IP-address Die ersten ein bis drei Bytes einer IP-Adresse zwecks Einschränkung auf ein Subnetz. all Allen Rechnern wird der Zugriff untersagt. In jedem Limit-Abschnitt darf es nur eine deny-Anweisung geben. Es gibt keine Standardeinstellung. Die Anweisung Directory dient zur Unterteilung in einzelne Abschnitte, die jeweils durch öffnende und schließende Tags gekennzeichnet werden. Jeder Abschnitt beschreibt ein oder mehrere Verzeichnisse, auf die sich andere Anweisungen zur Zugangssteuerung beziehen. dir ist der absolute Pfadname dieses Verzeichnisses. dir kann die Jokerzeichen * und ? enthalten, um mehrere zu schützende Verzeichnisse zu beschreiben. Die Jokerzeichen haben die gleiche Wirkung wie die üblichen Suchmuster in der Shell. Jede Anweisung Directory muß durch die zugehörige Anweisung abgeschlossen werden. Die Anweisung Directory ist nur in der globalen ACF zulässig. Es gibt keine Standardeinstellung. Diese Anweisung beendet einen Abschnitt, der durch Directory eingeleitet wurde. Die Anweisung Limit dient zur Unterteilung in einzelne Abschnitte. Jeder Abschnitt legt fest, welche Clients auf ein Verzeichnis zugreifen dürfen. Diese Anweisung ist sowohl in der globalen ACF als auch in verzeichnisspezifischen ACFs zulässig. Für method sind folgende Werte möglich: GET
http://www.oreilly.de/german/freebooks/Html_buch/www_e.html (3 von 6) [11.04.2001 17:16:20]
HTML und das World Wide Web
Clients dürfen Dokumente übertragen und Skripten ausführen. POST Clients dürfen Skripten mit der POST-Methode ausführen. Innerhalb des Limit-Abschnitts sind nur die Anweisungen order, deny, allow und require zulässig. Diese Anweisung beendet einen Abschnitt, der durch Limit eingeleitet wurde. Options option-list Die Anweisung Options steuert, welche weiterführenden Funktionen Sie auf Ihrem Server anbieten wollen. Die zulässigen Einträge lauten: None In diesem Verzeichnis sind keine Funktionen erlaubt. Indexes Die Benutzer dürfen Listings für dieses Verzeichnis abrufen. Abschalten dieser Option verhindert nur die Verzeichnisindizes, die vom Server erzeugt werden. Findet der Server eine vorher erzeugte Indexdatei, so sendet er sie trotzdem. Includes In diesem Verzeichnis ist die Einbettung von Dateien durch den Server erlaubt. IncludesNoExec In diesem Verzeichnis ist die Einbettung von Dateien durch den Server erlaubt, allerdings ist die exec-Funktion ausgeschaltet. ExecCGI In diesem Verzeichnis ist die Ausführung von CGI-Skripten erlaubt. FollowSymLinks Der Server folgt symbolischen Verweisen auf dieses Verzeichnis. SymLinksIfOwnerMatch Der Server folgt symbolischen Verweisen nur dann, wenn die Benutzerkennung der Zieldatei oder des Zielverzeichnisses mit der des Verweises übereinstimmt. All In diesem Verzeichnis sind alle Funktionen erlaubt. Die Anweisung Options ist sowohl in der globalen ACF als auch in verzeichnisspezifischen ACFs zulässig. In jedem Directory-Abschnitt darf die Anweisung Options nur einmal vorkommen. Fehlt diese Option, so gilt folgende Voreinstellung: Options All order ord Die Anweisung order legt die Reihenfolge fest, in der die Anweisungen deny und allow innerhalb eines Limit-Abschnitts ausgewertet werden. Diese Anweisung ist nur innerhalb eines Limit-Abschnitts zulässig. Sie kann sowohl in einer globalen ACF als auch in einer verzeichnisspezifischen ACF benutzt werden. ord kann die folgenden Werte annehmen: http://www.oreilly.de/german/freebooks/Html_buch/www_e.html (4 von 6) [11.04.2001 17:16:20]
HTML und das World Wide Web
deny, allow deny-Anweisungen werden vor allow-Anweisungen ausgewertet. allow, deny allow-Anweisungen werden vor deny-Anweisungen ausgewertet. Die Anweisung order darf in jedem Limit-Abschnitt nur einmal vorkommen. Fehlt die Anweisung, so gilt folgende Voreinstellung: order deny, allow require entity name1 name2... Die Anweisung require legt fest, welche Benutzer mit Identitätsnachweis mit der jeweiligen Methode auf das jeweilige Verzeichnis zugreifen dürfen. entity kann die folgenden Werte annehmen: user Nur die angegebenen Benutzer dürfen mit den jeweiligen Methoden auf dieses Verzeichnis zugreifen. group Nur Benutzer in den angegebenen Gruppen dürfen mit den jeweiligen Methoden auf dieses Verzeichnis zugreifen. valid-user Nur Benutzer, die in der Datei AuthUserFile aufgeführt sind, erhalten Zugriff. Sie müssen dazu ein gültiges Paßwort angeben. name ist ein Name, der zum Typ entity paßt: Hat entity den Wert user, so ist name ein Benutzername. Hat entity den Wert group, so ist name der Name einer Gruppe. Mehrere Namen werden durch Leerzeichen getrennt. Die Anweisung require darf in jedem Limit-Abschnitt nur einmal vorkommen. Es gibt keine Voreinstellung. Zusätzlich zu diesen Anweisungen sind in der globalen ACF und den verzeichnisspezifischen ACFs auch die folgenden Anweisungen möglich: DefaultType Nur in verzeichnisspezifischen ACFs AddEncoding In allen ACFs AddDescription Nur in verzeichnisspezifischen ACFs AddIcon In allen ACFs IndexIgnore In allen ACFs DefaultIcon
http://www.oreilly.de/german/freebooks/Html_buch/www_e.html (5 von 6) [11.04.2001 17:16:20]
HTML und das World Wide Web
In allen ACFs ReadmeName In allen ACFs Diese Anweisungen entsprechen jenen, die in der Konfigurationsdatei srm.conf zulässig sind. Eine ausführliche Beschreibung dieser Anweisungen finden Sie in Anhang D, Anweisungen in srm.conf. Inhaltsverzeichnis
Anhang D
Anhang F
http://www.oreilly.de/german/freebooks/Html_buch/www_e.html (6 von 6) [11.04.2001 17:16:20]
Anhang F Weitere Informationen Die folgenden Informationsquellen können sich als nützlich erweisen, wenn Sie mehr über das Web erfahren wollen, als Ihnen dieses Buch bieten kann. Die ersten drei Abschnitte sind in der gleichen Reihenfolge angeordnet, in der Sie sie benutzen sollten.
F.1 Die FAQ-Liste zum World Wide Web Ihre erste Informationsquelle ist die FAQ-Liste(1) zum World Wide Web, die von Thomas Boutell, [email protected], zusammengestellt wird. Sie wird nicht nur alle vier Tage in vielen der unten aufgeführten Newsgruppen veröffentlicht, sondern steht auch in einer HTML-Version im Web zur Verfügung: http://siva.cshl.org/~boutell/www_faq.html Wenn Sie eine Textversion im ASCII-Format vorziehen, finden Sie die aktuellste Version der FAQ-Liste auch im FTP-Archiv news.answers: ftp://rftm.mit.edu/pub/usenet/news.answers/www.faq Bob Allisons »Web Master's Page« enthält ebenfalls viele nützliche Informationen rund um das World Wide Web und den Aufbau einer Home-Page:
http://www.oreilly.de/german/freebooks/Html_buch/www_f.html (1 von 5) [11.04.2001 17:16:24]
HTML und das World Wide Web
http://gagme.wwa.com/~boba/masters1.html
F.2 News-Gruppen Als nächste Informationsquelle zur Lösung von Fragen rund um das World Wide Web sollten Sie die News-Gruppen in Betracht ziehen, die sich mit dem Web beschäftigen. So können Sie von den Erfahrungen anderer profitieren. comp.infosystems.www.providers (nicht moderiert) Hier werden Server-Software für das Web und der Einsatz dieser Software für die Präsentation von Informationen diskutiert. Zu den häufigsten Themen dieser Gruppe gehören allgemeine Fragen zum Design des Servers, Einrichtungsprobleme, Fehlermeldungen zum Server, Sicherheitsaspekte, Entwurf von HTML-Seiten und andere Fragen, die bei Informationsanbietern auftreten. Diese News-Gruppe sollten Sie lesen, wenn Sie einen Web-Server einrichten. comp.infosystems.www.users (nicht moderiert) Hier werden Client-Software für das Web und der Einsatz für den Zugang auf verschiedene Informationsquellen im Internet diskutiert. Zu den Themen dieser Gruppe gehören Fragen neuer Benutzer, Einrichten von Clients, Fehlermeldungen zu Clients sowie die Suche nach Informationsquellen im Web, die nicht in der FAQ-Liste behandelt werden. Außerdem gehört der Vergleich verschiedener Clients in diese Gruppe. comp.infosystems.www.misc (nicht moderiert) Hier werden Themen rund um das Web diskutiert, die durch keine andere der News-Gruppen in der Hierarchie comp.infosystems.www abgedeckt werden. Dazu gehören Diskussionen über die Zukunft des Web, strukturelle Änderungen und Protokolländerungen, die sowohl Clients als auch Server betreffen u.a. comp.infosystems.announce (moderiert) In dieser News-Gruppe wird zwar von Mailing-Listen bis zu Gopher-Servern alles angekündigt, Sie können sich hier aber auch darüber auf dem laufenden halten, welche neuen Web-Server in Betrieb gehen. Vergessen Sie nicht, daß jeder neue Web-Server, der online erreichbar ist, eine neue Ressource darstellt, durch die Ihr eigener Web-Server noch nützlicher werden kann (indem Sie geeignete Verweise integrieren). alt.hypertext (nicht moderiert) Hier werden Konzepte und Programme für Hypertext-Anwendungen diskutiert. In dieser News-Gruppe erhalten Sie gute Anregungen dazu, wie Sie Informationen auf verschiedene Arten so aufbereiten und präsentieren, daß Sie leichter verständlich sind.
F.3 Mailing-Listen Über die News-Gruppen hinaus unterstützt das CERN einige Mailing-Listen, die Sie verfolgen können, um sich über die aktuellen Entwicklungen im Web auf dem laufenden zu halten. www-announce Diese Mailing-Liste informiert Sie über neue Web-Server und Software-Tools. Um der Liste beizutreten, senden Sie eine E-Mail an [email protected] mit der folgenden Zeile http://www.oreilly.de/german/freebooks/Html_buch/www_f.html (2 von 5) [11.04.2001 17:16:24]
HTML und das World Wide Web
im Body der Nachricht: subscribe www-announce your name www-talk Diese Diskussionsliste wird von den Entwicklern der verschiedenen Web-Browser und Web-Server benutzt, die wir vorgestellt haben. Hier werden gewöhnlich neue Funktionen von HTTP und/oder HTML diskutiert. Um der Liste beizutreten, senden Sie eine E-Mail an [email protected] mit der folgenden Zeile im Body der Nachricht: subscribe www-talk your name www-html In dieser Mailing-Liste werden technische Diskussionen rund um HTML und zukünftige Versionen geführt. Sie ist nur für Design-Fragen gedacht, nicht jedoch für Einstiegsprobleme. Um der Liste beizutreten, senden Sie eine E-Mail an [email protected] mit der folgenden Zeile im Body der Nachricht: subscribe www-html your name www-rdb Diese Mailing-Liste ist für solche Leute gedacht, die sich für die Entwicklung und den Einsatz von CGI-Gateways zwischen dem Web und relationalen Datenbanken interessieren. Um der Liste beizutreten, senden Sie eine E-Mail an [email protected] mit der folgenden Zeile im Body der Nachricht: subscribe www-rdb your name
F.4 Beispiele für Web-Server Liste der Web-Server in Deutschland: http://www.chemie.fu-berlin.de/outerspace/www-german.html Karte der Web-Server in Deutschland: http://www.leo.org/demap/ Liste von Usenet-FAQs: http://www.cis.ohio-state.edu/hypertext/faq/usenet Themenorientierte Suchhilfe:
http://www.oreilly.de/german/freebooks/Html_buch/www_f.html (3 von 5) [11.04.2001 17:16:24]
HTML und das World Wide Web
http://www.yahoo.com/ O'Reilly/International Thomson Verlag: http://www.ora.de Global Network Navigator Home Page: http://www.germany.eu.net/gnn/gnn.html Computerzeitschriften c't und iX: http://www.ix.de/ Projekt TAZ im WWW (Die TAZ): http://www.prz.tu-berlin.de/~taz/ Der Spiegel: http://win.bda.de/bda/int/spiegel/ Kulturbox (moderne Kunst): http://www.kulturbox.de/ City.Net (Verzeichnis kommunaler Web-Server und Reisetips): http://www.city.net/ Deutsche Telekom: http://www.telekom.de
F.5 Konferenzbände First International World Wide Web Conference, Geneva, Switzerland, May 25-27, 1994: http://www1.cern.ch/WWW94/Welcome.html ACM European Conference On Hypermedia Technology (ECHT 94), Edinburgh, Scotland, September 18-23, 1994: http://www.njit.edu/Professional_Society/SIGLINK.html Second International World Wide Web Conference '94: Mosaic and the Web, Chicago, Illinois, October 17-19, 1994: http://www.oreilly.de/german/freebooks/Html_buch/www_f.html (4 von 5) [11.04.2001 17:16:24]
HTML und das World Wide Web
http://www.ncsa.uiuc.edu/General/Announce/MosaicConf.html Third International World Wide Web Conference '95: Technology, Tools, and Applications, April 10-14, 1995, Darmstadt, Germany: http://www.igd.fhg.de/www95.html
Fußnoten (1) Anmerkung des Übersetzers: Die Abkürzung FAQ steht für frequently asked questions und bezeichnet eine Zusammenfassung häufig gestellter Fragen (und der zugehörigen Antworten!) in vielen Internet-Bereichen. Inhaltsverzeichnis
Anhang E
Über die Autoren
http://www.oreilly.de/german/freebooks/Html_buch/www_f.html (5 von 5) [11.04.2001 17:16:24]
Glossar Access Provider Siehe Internet Service Provider Anchor Siehe Anker Anker Die Position eines Hypertext-Links in einem Dokument. Wird verwendet, um die Darstellung des Links (Text, Graphik etc.) innerhalb des Dokuments zu beschreiben, aber auch, um den Zielort des Links zu definieren. Archie Ein Programm, das verwendet wird, um Dateien zu lokalisieren, die über »anonymous FTP« verfügbar sind. ARPAnet Ein in den siebziger Jahren eingeführtes Netzwerk, das als Testumgebung für die Software diente, auf dem heute das Internet basiert. Das Netzwerk ist nicht mehr in Betrieb. Attribute (a) SGML- (und HTML-) Tags verwenden Attribute, um ihre Eigenschaften näher zu definieren. Sie können das in etwa mit den Parametern von Kommandozeilen-Optionen vergleichen. Ein Tag kann über ein bestimmtes Attribut verfügen, dem ein entsprechender Wert zugewiesen werden kann. (b) Benutzerkonfigurierbare Elemente von Mosaic, mit denen verschiedene Programmoptionen eingestellt und die Bildschirmdarstellung von HTML-Dokumenten den eigenen Bedürfnissen angepaßt werden können. Baud Anzahl der »Zustandsveränderungen« pro Sekunde während einer Datenübertragung. Beispielsweise ändert ein 14.4K-Modem das Signal, das es sendet, 14400mal pro Sekunde. Da jede Zustandsveränderung mehrere Bits umfassen kann, kann die wirkliche Datentransferate höher als die Baud-Rate sein. Siehe auch Bits per Second. Bits per Second (bps) Die Geschwindigkeit, mit der Bits über ein Kommunikations-Medium transportiert werden. Browser Ein Programm, das HTML-Dokumente interpretiert und darstellt. Cache Vereinfacht dargestellt: Ein Bereich im Speicher, in dem Daten gespeichert werden, um schnell und einfach wieder auf sie zurückgreifen zu können, aber auch der Prozeß des Speicherns selbst. Manche Versionen von Mosaic »cachen« das zuletzt besuchte Dokument, damit Sie schnell (und ohne das Dokument erneut über das Internet laden zu müssen) darauf zugreifen können. Sie können Mosaic so konfigurieren, daß mehrere Dokumente und Graphiken im Cache gehalten werden. Ist ein Dokument nicht im Cache verfügbar, muß es wieder über das Internet heruntergeladen werden. http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (1 von 10) [11.04.2001 17:16:42]
CERN Das Europäische Zentrum für Hochenergiephysik in Genf (Schweiz). Hier wurden Hypertext-Techniken entwickelt, die es Physikern erlauben, Daten gemeinsam zu nutzen und zu verteilen. Diese Techniken bildeten die Basis für das World Wide Web. Client Ein Programm (das in der Regel auf Ihrem Computer läuft), mit dessen Hilfe Sie den Service eines irgendwo im Netz stehenden Servers benutzen können. Dial-Up (a) Verbindung zu einem Computer mittels einer normalen Telephonleitung. Häufig beschreibt »Dial-Up« die Kombination von Terminal-Programm und Modem. Für die Technoiden: zeichenorientierte, asynchrone Kommunikation. (b) Eine Schnittstelle, die Dialup-Verbindungen ermöglicht (»Wie viele Dialup-Ports sind auf dem Computer verfügbar?«). Dialup-Account Internet-Anbindung über eine normale Telephonleitung. Es gibt zwei verschiedene Arten von Dialup-Accounts: den Shell-Account und PPP/SLIP-Accounts. Für einen Shell-Account benutzen Sie üblicherweise ein Terminal-Programm, wählen den Internet-Host an und loggen sich ein. Diese Methode ist einfach und kostengünstig, hat aber verschiedene Nachteile. Sie können Mosaic nicht benutzen. Ein PPP/SLIP-Account benötigt ein High-Speed-Modem. PPP/SLIP integriert Ihren Computer als vollwertigen Arbeitsplatz in das Netzwerk und erlaubt es so, Mosaic zu verwenden. Sieh auch Mosaic, Shell, PPP, SLIP und Standleitung. Download Die Übertragung von Daten von einem entfernten Server auf ihr lokales System. Häufig wird FTP für den Download von Dateien verwendet. DNS Das »Domain Name System«, ein verteiltes Datenbank-System, um Computernamen (wie z.B. ruby.ora.com) in eine numerische Internet-Addresse (z.B. 194.56.78.2) umzuwandeln und umgekehrt. Dank DNS können Sie das Internet benutzen, ohne sich eine Vielzahl von Nummern merken zu müssen. dedicated line Siehe Standleitung Ethernet Eine Art »Local Area Network« (oder LAN). Ethernet zu definieren, ist relativ schwierig, weil es verschiedene Verkabelungmöglichkeiten gibt, die wiederum unterschiedliche Übertragungsgeschwindigkeiten (von 2 bis 10 Millionen Bit pro Sekunde) erlauben. Was ein Ethernet-LAN wirklich kennzeichnet, ist vielmehr die Art und Weise, wie die Computer untereinander kommunizieren. Computer, die TCP/IP verwenden, sind häufig über Ethernet mit dem Internet verbunden.
http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (2 von 10) [11.04.2001 17:16:42]
FAQ Die Abkürzung für »Frequently Asked Questions«, häufig gestellte Fragen. FAQs sind Dateien, die eine Liste der zu einem bestimmten Thema häufig gestellten Fragen sowie die dazugehörenden Antworten enthalten. Viele Usenet-Newsgruppen und einige andere Mailing-Listen verwalten themenspezifische FAQs. Dadurch müssen die Mitglieder dieser Gruppen nicht viel Zeit damit verbringen, die immer wiederkehrenden Fragen zu beantworten. Firewall Siehe Security Firewall FTP (a) Das »File Transfer Protocol«. Ein Protokoll, in dem definiert wird, wie Dateien von einem Computer zu einem anderen übertragen werden. (b) Ein Programm, mit dem basierend auf dem File Transfer Protocol Dateien übertragen werden. Gateway Ein Computersystem, das Daten zwischen normalerweise inkompatiblen Programmen oder Netzwerken überträgt. Die Daten werden so aufbereitet, daß sie vom neuen Netzwerk (oder Programm) übernommen werden können. Ein Gateway kann unterschiedliche Netzwerke (z.B. DECnet und Internet) verbinden, oder aber zwei verschiedenen Programmen die Kommunikation ermöglichen (z.B. Mailsysteme, die unterschiedliche Formate benutzen). GIF Das »Graphics Interchange Format«, kurz GIF, ist ein Dateiformat für Graphikdaten. Entwickelt wurde es von CompuServe, Inc. und ist auf vielen verschiedenen Plattformen und Systemen verfügbar. GIF ist eines der am häufigsten verwendeten Graphikformate. GIF ist eines von zwei Formaten, in dem Inline-Graphiken in HTML-Dokumente eingebunden werden können. Siehe auch XBM. Gopher Ein menügesteuertes System, mit dem Internet-Ressourcen erkundet werden können. Die Einträge sind hierarchisch strukturiert, und jedes Element ist entweder eine Datei oder ein Verzeichnis. Home-Page (a) Der graphische Einstiegspunkt zu allen Informationen, die ein Server bereitstellt. Die Home-Page ist in der Regel eine Seite oder ein Fenster, vollgestopft mit Informationen und Links zu weiterführenden Ressourcen. (b) Ein von Ihnen spezifiziertes HTML-Dokument, das von Mosaic sofort nach dem Start angezeigt wird. Es dient quasi als »ruhender Pol« für ihre Reisen durch das Web. Host (a) Ganz allgemein ein Computer. (b) Manchmal ein Computer, der dem Internet Ressourcen zur Verfügung stellt, auch Internet-Host-Computer genannt. HoTMetaL Ein Programm der Firma SoftQuad, das Sie bei der Entwicklung von HTML-Dokumenten unterstützt. Neben einer kommerziellen Version ist auch eine Freeware-Variante erhältlich. http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (3 von 10) [11.04.2001 17:16:42]
HTML Die »HyperText Markup Language«, eine Teilmenge von SGML, enthält die Sprachelemente für den Entwurf von Hypertext-Dokumenten. Verschiedene Codes werden benutzt, um die Hierarchie sowie die anderen Komponenten des Dokuments zu beschreiben. Zusätzlich können durch einen einfachen Mechanismus Hypertext-Links definiert werden. Siehe auch SGML. HTTP Das »HyperText Transfer Protocol« beschreibt einen festdefinierten Satz von Nachrichten und Antworten, mit denen ein Client und ein Server während einer HTML-Sitzung kommunizieren. Hyperlink Siehe Link Hypermedia Siehe Hypertext Hypertext Ein Dokument, das über sogenannte Links Verknüpfungen mit anderen Dokumenten herstellt. Wird ein solcher Link gewählt, erhält man automatisch das damit verknüpfte Dokument. IAB Siehe Internet Architecture Board IETF Siehe Internet Engineering Task Force ISP Siehe Internet Service Provider Inline-Image Als Inline-Image bezeichnet man eine Graphik, die in einem Hypertext-Dokument dargestellt wird. Siehe auch Linked Image. Internet (a) Ganz allgemein eine Reihe einzelner Netze, die wie ein großes Netz zusammenarbeiten. (b) Das weltweite »Netz der Netze«, verbunden über das Internet-Protokoll oder andere vergleichbare Protokolle. Das Internet ermöglicht Dateitransfer, »Remote Login«, elektronische Post, News und andere Dienste. Internet Architecture Board (IAB) Das Gremium, das Entscheidungen zu Standards und anderen wichtigen Aspekten des Internet trifft. Internet Engineering Task Force (IETF) Eine Gruppe, die technische Probleme untersucht und behebt. Die Gruppe berichtet dem Internet Architecture Board (IAB) und unterbreitet ihm entsprechende Vorschläge. Internet-Ressourcen Jegliche Art von Information, die über das Internet zugänglich ist. Internet Service Provider (ISP) http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (4 von 10) [11.04.2001 17:16:42]
Ein Unternehmen oder eine Organisation, die Anbindungen an das Internet anbietet. Wenn Sie Ihr Firmen-Netz oder auch nur ihren Personal-Computer an das Internet anbinden wollen, werden Sie das in der Regel über einen »Service Provider« tun. ISO Die »International Standards Organization« (oder »International Organization for Standardization«). Die Organisation hat ebenfalls ein Set von Netzprotokollen, die sogenannten ISO/OSI-Protokolle, entworfen. Theoretisch sollen die ISO/OSI-Protokolle die Internet-Protokolle ersetzen. Ob und wann das geschehen wird, ist allerdings ein heiß diskutiertes Thema. JPEG JPEG (»jay-peg«) ist die Abkürzung für die »Joint Photographic Experts Group« und steht a) für ein Standardisierungs-Gremium, b) für eine Methode der Datenkompression und c) für ein graphisches Dateiformat. Das Gremium entstand innerhalb der International Standards Organization (ISO) mit dem Ziel, einen Standard für die Übertragung von Bilddaten zu entwickeln. Die Resultate waren ein sehr gutes Datenkompressionsverfahren und verschiedene, eng miteinander verbundene Datenformate. JPEG-Files können Photographien, Still-Video oder andere komplexe Graphiken enthalten. Mosaic selbst kann Daten im JPEG-Format leider nicht als »Inline-Images« anzeigen. Zu diesem Zweck wird ein externes Programm, ein sogenannter »Viewer« benötigt, der dieses Format darstellen kann. LAN Siehe Local Area Network Link Die Verknüpfung zwischen zwei Dokumenten in einem Hypertext-Dokument. Siehe auch Anker. Linked Image Ein »Linked Image« ist eine Graphik, die nicht direkt im Hypertext-Dokument dargestellt wird, sondern in einer anderen Datei gespeichert ist. Die Graphik wird erst angezeigt, wenn der entsprechende Link angeklickt wird. Siehe auch Inline-Image. Local Area Network (LAN) Eine Menge vernetzter Computer, die räumlich nicht allzu weit voneinander entfernt sind. Lynx Ein an der University of Kansas entwickelter zeichenorientierter Web-Browser. MIME Das Multipurpose Internet Mail Extensions Protocol MIME teilt verschiedene Datentypen in eine Anzahl von Haupt- und Untergruppen auf. Die Verwendung dieses Protokolls erlaubt es Mosaic, die unterschiedlichsten Dateiformate zu erkennen und korrekt zu verarbeiten. Die MIME-Hauptgruppe definiert, um welchen Datentyp es sich handelt, also z.B. Graphik, Audio oder Video, die Untergruppe beschreibt den Typ genauer. Modem Eine technische Einrichtung, die einen Computer mit einem Datenübertragungskanal, normalerweise dem Telefon, verbindet. Modems transferieren Daten üblicherweise mit einer Geschwindigkeit von 1200 bis 19200 Kbps. Es existieren aber auch schnellere Modems. Diese werden in der Regel für besondere Zwecke verwendet, beispielsweise, um ein lokales Netzwerk über die normale Telefonleitung an einen http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (5 von 10) [11.04.2001 17:16:42]
Provider anzubinden. Mosaic Ein graphisch orientierter Browser für das World Wide Web, der auch Hypermedia unterstützt. Mosaic wird fälschlicherweise häufig mit dem World Wide Web gleichgesetzt. MPEG MPEG (»em-peg«) ist die Abkürzung für die »Motion Picture Experts Group« und steht a) für ein Standardisierungs-Gremium, b) für eine Methode der Datenkompression und c) für ein graphisches Dateiformat. Die Hauptanwendung von MPEG liegt in der Speicherung von Audio- und Videodaten für Multimedia-Systeme. Mosaic selbst kann Daten im MPEG-Format leider nicht als »Inline-Images« anzeigen. Zu diesem Zweck wird ein externes Programm, ein sogenannter »Viewer« benötigt, der dieses Format darstellen kann. MUD/MOO MUD ist die Abkürzung für »Multiuser-Dungeon«, eine Reihe von Rollenspielen, die sich an das Originalspiel »Dungeons and Dragons« anlehnen. MUDs sind auch als Konferenz- und Bildungssysteme verwendet worden. MOO steht für ein objektorientiertes MUD. Verschiedene experimentelle Web-Server sind mit einem MUD/MOO-Interface ausgestattet worden. Multimedia Vereinfacht ausgedrückt Dokumente, die verschiedene Datentypen wie beispielsweise Text, Audio und Video enthalten. NCSA Das »National Center for Supercomputing Applications«, kurz NCSA, entwickelte eine Public-Domain-Version des Mosaic-Browsers und lizenziert die verwendeten Techniken an Entwickler. NFS Das »Network File System« NFS ist ein Protokoll, das es ermöglicht, auf Dateien von anderen Netzwerkcomputern zuzugreifen, als wären es lokale Daten. Statt also die Daten mit FTP auf den lokalen Rechner zu kopieren, können die Daten mit den selben Programmen/Befehlen gelesen, geschrieben und editiert werden, als wären sie lokal gespeichert. NFS wurde von Sun Microsystems, Inc. entwickelt und ist sehr weit verbreitet. NSFNET Das »National Science Foundation Network« NSFNET ist nicht das Internet. Es ist nur eines der vielen Teilnetzwerke, aus denen das Internet besteht. OSI Open Systems Interconnect ist ein weiteres Netzprotokoll. Siehe ISO. Paket Im Internet werden Daten in sogenannte Pakete aufgeteilt. Jedes Paket wird dann unabhängig von den anderen Paketen über das Netz transportiert. Die Paketgrößen können unterschiedlich sein und variieren im Bereich von 40 bis 32000 Byte, abhängig von der verwendeten Hardware. Normalerweise sind die Pakete aber kleiner als 1500 Byte. Port
http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (6 von 10) [11.04.2001 17:16:42]
(a) Eine Nummer, die eine bestimmte Internet-Anwendung beschreibt. Wird von Ihrem Computer ein Paket an einen anderen Computer gesandt, dann enthält das Paket auch Informationen darüber, welches Protokoll benutzt wird (z.B. TCP) und mit welcher Anwendung Sie kommunizieren wollen. Die Port-Nummer beschreibt dabei diese Anwendung. (b) Ein Ein-/Ausgabe-Kanal des Computers (eine Schnittstelle auf der Rückseite Ihres Computers). Unglücklicherweise ist die Bedeutung dieses Begriffs völlig unterschiedlich. Im ersten Fall geht es üblicherweise um das Internet (»Telnet auf Port 1000«); im zweiten Fall geht es um die Hardware (»verbinde Dein Modem mit dem seriellen Port COM1 Deines Computers«). PPP Das »Point-to-Point Protocol« ermöglicht die Verwendung der TCP/IP- (Internet-) Protokolle über ein Modem und eine normale Telefonleitung. Damit wird man zu einem vollwertigen Internet-Mitglied. Obwohl PPP noch nicht so weit verbreitet ist wie SLIP, gewinnt es doch zunehmend an Bedeutung. PPP/SLIP-Account Siehe Dialup-Account Protokoll Vereinfacht ausgedrückt eine Definition, wie sich Computer zu verhalten haben, wenn Sie miteinander kommunizieren. Die Bandbreite der Protokolle reicht dabei von der Definition der zu verwendenden Leitungen bis hin zum genauen Format von elektronischer Post. Standard-Protokolle erlauben die Kommunikation von Computern unterschiedlicher Hersteller. Die Computer können völlig verschiedenartige Software besitzen. Das Protokoll sorgt dafür, daß beide Seiten wissen, wie sie die Daten zu interpretieren haben. Proxy-Server Ein Server im Internet, der Systemen den indirekten Zugang zum Netz ermöglicht, wenn diese Computer durch einen Security-Firewall vom direkten Zugriff ausgeschlossen sind. RFC RFC steht für »Request for Comments«, also »Aufforderung zu Kommentaren«. Dieser Name ist etwas verwirrend, denn es handelt sich hier um eine Reihe von Dokumenten, die die Internet-Standards, vorgeschlagene neue Standards und allgemeine, akzeptierte Ideen beschreiben und dokumentieren. Router Ein System, das Daten zwischen zwei Netzen transferiert, die das selbe Protokoll verwenden. Die Netze können sich beispielsweise durch physikalische Eigenschaften unterscheiden (z.B. übertragt ein Router Daten zwischen einem Ethernet-Segment und einer Standleitung). Security Firewall Ein System, das die Computer eines Unternehmens oder einer Organisation vor externem Zugriff (z.B. über das Internet) schützt. Die Organisation erlaubt z.B. den Zugang zum Internet über ein Proxy-System. Der Security-Firewall dient dazu, das System vor möglichen Eindringlingen zu schützen. Server (a) Eine Software, die es einem Computer ermöglicht, anderen Computern einen bestimmten Dienst anzubieten. Die anderen Computer kommunizieren mit dem Server-Programm über eine entsprechende
http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (7 von 10) [11.04.2001 17:16:42]
Client-Software. (b) Der Computer, auf dem die Server-Software läuft. Service-Provider Siehe Internet Service Provider SGML Die »Standard Generalized Markup Language«, eine Sprache zur Beschreibung von Dokumenten. Beschrieben wird hier aber nicht so sehr das Aussehen (Layout) des Dokuments, sondern die Hierarchie sowie die unterschiedlichen Komponenten des Dokuments, z.B. Überschriften, Variablen, Autor etc. Shell Die Software, die auf einem (UNIX)-System Eingaben von der Tastatur liest und verarbeitet. UNIX stellt verschiedene Shells (C-Shell, Bourne-Shell, Korn-Shell etc.) zur Verfügung, die verschiedene Befehle und Möglichkeiten bieten. Shell-Account Siehe Dialup-Account SLIP Abkürzung für »Serial Line Internet Protocol«, ermöglicht die Verwendung der TCP/IP- (Internet-) Protokolle über ein Modem und eine normale Telefonleitung. Damit wird man zu einem vollwertigen Internet-Mitglied. Heute noch sehr häufig verwendet, wird aber zunehmend von PPP abgelöst. Siehe auch PPP. Standleitung Eine permanente, private Telephonverbindung zwischen zwei Orten. Standleitungen werden üblicherweise verwendet, um ein größeres, lokales Netzwerk mit dem Internet Service Provider zu verbinden. Wird ihr Internet-Anschluß mittels einer Standleitung versorgt, können Sie Mosaic benutzen. Siehe auch Mosaic und Dialup-Account. Tags In HTML werden über Tags die Struktur sowie die Darstellung von Information festgelegt. TCP/IP »Transmission Control Protocol/Internet Protocol« sind die Protokolle, auf denen das ganze Internet basiert. TCP ist ein zuverlässiges, verbindungsorientiertes Protokoll. IP erlaubt es Datenpaketen, über mehrere Netze hinweg an ihr Ziel zu gelangen. Telnet (a) Ein »Terminal-Emulator«-Protokoll, das es Ihnen erlaubt, sich in andere Computersysteme des Internet einzuloggen. (b) Ein Anwendungsprogramm, das es Ihnen erlaubt, sich mittels des Telnet-Protokolls in einen anderen Computer einzuloggen. TIFF Das »Tag Image File Format« ist ein von der Aldus Corporation entwickeltes Graphik-Dateiformat. Das Format hat sich zu einem Standard-Format entwickelt, das von den meisten Zeichen-, Bildbearbeitungshttp://www.oreilly.de/german/freebooks/Html_buch/glossar.html (8 von 10) [11.04.2001 17:16:42]
und DTP-Programmen unterstützt wird. TIFF ist flexibel und leistungsfähig und unterstützt neben Schwarzweiß- auch Graustufen- und Farbgraphiken. URL Ein »Uniform Resource Locator« ist die Adresse eines Dokuments im World Wide Web. Die Adresse ist Teil des Links auf ein anderes Dokument und wird von der Client-Software entsprechend interpretiert, um die Verbindung zum entsprechenden Server aufzubauen. Usenet Eine informelle Gruppe von Systemen, die untereinander »News« austauschen. News sind vergleichbar mit Foren oder Bulletin-Boards in anderen Netzen und Mailboxen. Usenet existiert schon länger als das Internet, dennoch wird heute ein Großteil des Usenet-Datenverkehrs über das Internet abgewickelt. Veronica Ein Service, der die Suche nach Dateien, Verzeichnissen und anderen Ressourcen in allen Gopher-Servern erlaubt. Viewer Ein externes Programm, das bei Bedarf von Mosaic gestartet wird, um Daten, die Mosaic selbst nicht verarbeiten kann, darzustellen. So startet Mosaic beispielsweise einen MPEG-Player, um ein Video im MPEG-Format in einem separaten Fenster anzuzeigen, da es dieses Format nicht verarbeiten kann. W3O Eine gemeinsam von MIT und CERN gegründete Organisation, die die Entwicklung des World Wide Web leiten und überwachen soll. WAIS Siehe Wide Area Information Server WAN Siehe Wide Area Network Wide Area Information Server (WAIS) Ein sehr leistungsfähiges Werkzeug für die Suche und Gewinnung von Informationen aus Datenbanken (oder Libraries), verteilt über das gesamte Internet. WAIS-Datenbanken wurden von der Internet-Gemeinde zum Teil auch für die Verwendung von allgemeinen Informationen angepaßt. Wide Area Network (WAN) Eine Reihe von Computern, die untereinander über Kommunikationskanäle verbunden sind. Im Gegensatz zu LANs stehen Sie aber geographisch weit voneinander entfernt. World Wide Web (WWW) Ein Hypertext-basiertes System für die Suche nach und den Zugriff auf Internet-Ressourcen. WWW Siehe World Wide Web XBM XBM ist die Abkürzung für das »X-Bitmap«-Dateiformat, das Standardformat des X-Window-Systems für die Speicherung von Bitmap-Graphiken. XBM-Dateien sind einfache Schwarzweiß-Graphiken. XBM http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (9 von 10) [11.04.2001 17:16:42]
ist eines von zwei Formaten, in dem Inline-Graphiken in HTML-Dokumente eingebunden werden können. Siehe auch GIF. X Window System Ein netzbasiertes Window-System, das ursprünglich am Massachusetts Institute of Technology (MIT) entwickelt wurde. X-Windows oder kurz X wird häufig auf UNIX-Systemen eingesetzt. Anhang F
http://www.oreilly.de/german/freebooks/Html_buch/glossar.html (10 von 10) [11.04.2001 17:16:42]
Über die Autoren Russ Jones ist Internet Program Manager bei Digital Equipment Corporation. Er kümmert sich um den Web-Server von Digital, wenn er sich nicht gerade als Fürsprecher und Koordinator der unternehmensweiten Internet-Nutzung betätigt. Vor seiner Zeit bei Digital leitete er eine Gruppe von Software-Entwicklern bei der McDonnell Aircraft Company. Dort entwickelte Russ auch 1983 sein erstes Hypertext-System. Das wurde ihm allerdings erst bewußt, als er die Arbeit am vorliegenden Buch begann. Russ ist Absolvent des Computer Science Program der Purdue University. Wenn er nicht gerade den Cyberspace durchwandert, erfreut sich Russ an aktuellen Veranstaltungen, Architektur, guter Küche und Geschichte. Er lebt mit seiner Frau Linda in Palo Alto, Kalifornien. Obwohl er so nah an seinem Büro wohnt, daß er sein Rad benutzen könnte, zieht er den Bus vor. Adrian Nye arbeitet als Lektor bei O'Reilly & Associates. Er ist Autor und/oder Herausgeber mehrerer Bände der bei O'Reilly & Associates erschienenen Reihe über das X Window System. Adrian war als C-Programmierer für Schulungssoftware tätig und entwikkelte als Maschinenbauingenieur Systeme zum Binden und Neutralisieren von Öl in Wasser (z.B. nach Tankerunglücken). Er interessiert sich für Umweltfragen und das Verhältnis zwischen Mensch und Technik. Er machte seinen Abschluß in Maschinenbau 1984 am Massachusetts Institute of Technology. Über den Übersetzer Thomas Merz war während seiner Übersetzung derart von den Web-Fähigkeiten beeindruckt, daß er sich gleich eine eigene Web-Seite einrichtete. Da er sowieso jeden Tag PostScript-Fonts frühstückt, lag es auf der Hand, ihn auch für den Satz des Buches voll zur Verantwortung zu ziehen. Weitere Hinweise finden Sie unter http://www.muc.de/~tm/ :-). Kolophon Unser Erscheinungsbild ist das Resultat von Leserkommentaren, eigenen Erfahrungen und Feedback aus den Vertriebskanälen. Die unverwechselbaren Covergestaltungen ergänzen sich mit unserer besonderen Herangehensweise an technische Themen, die potentiell trockenen Inhalten Leben einhaucht. UNIX und die zugehörigen Programme können widerspenstige Biester sein. Die Nutshell Handbook-Reihe hilft Ihnen, sie zu zähmen. Eddie Freedman entwarf dieses Cover und den ganzen Biester-Zoo, der die anderen Nutshell-Handbooks ziert. Die Tiere selbst wurden von Stichen aus dem 19. Jahrhundert des Dover Pictorial Archive übernommen. Chris Reilley und Hanna Dyer erstellten die Abbildungen. Das Kolophon schrieb Clairemarie Fisher O'Leary. Die deutsche Fassung entstand mit FrameMaker 4.0 für Windows, wobei Schriften der Familie ITC
http://www.oreilly.de/german/freebooks/Html_buch/wwwnach.html (1 von 2) [11.04.2001 17:16:46]
HTML und das World Wide Web
Garamond zum Einsatz kamen. Die Illustrationen entstanden ursprünglich mit Aldus FreeHand 4.0 und wurden für die deutsche Fassung mit Adobe Illustrator 4.0 bearbeitet, die Bildschirmabzüge mit Adobe Photoshop 3.0. Inhaltsverzeichnis
Anhang F
http://www.oreilly.de/german/freebooks/Html_buch/wwwnach.html (2 von 2) [11.04.2001 17:16:46]