Springer. Berlin Heidelberg New York Barcelona Hongkong London Mailand Paris Singapur Tokio

Ähnliche Dokumente
Inhaltsverzeichnis. Vorwort... Einleitung... Einführung... 1

Karin Willeck Alternative Medizin im Test

Einführung. Internet vs. WWW

Diplomarbeit. Planung eines Webauftritts. Ein Leitfaden für kleine und mittelständische Unternehmen. Daniel Jurischka. Bachelor + Master Publishing

Grundlagen der WWW- und Dokumenten-Architektur. Robert Strzebkowski TFH Berlin

Einführung. Übersicht

Web-Konzepte für das Internet der Dinge Ein Überblick

Wiederholung: Beginn

K.-H. Bichler Das urologische Gutachten

MedR. Schriftenreihe Medizinrecht

Herzlich willkommen im Modul Informatik Grundlagen

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Masterkurs Client/Server-Programmierung mit Java

... MathML XHTML RDF

x per' t. P res s Springer-Verlag Berlin Heidelberg GmbH

KjG Webmaster / Webmistress

Internet. Werkzeuge und Dienste. Martin Scheller Klaus-Peter Boden Andreas Geenen Joachim Kampermann. Von Archie" bis World Wide Web"

Handbuch Kundenmanagement

M edr Schriftenreihe Medizinrecht

Web-Programmierung (WPR)

Michael Kleinaltenkamp. Wulff Plinke (Hrsg.) Technischer Vertrieb

Web-Engineering. 1 / Einführung

Apache. O'REILLY Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Das umfassende Handbuch. Ben Laurie und Peter Laurie 2.

Stefan Kundelov. Balanced Scorecard. Anwendung in der stationären Altenpflege. Diplomica Verlag

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

XML, Standards und andere Aktivitäten zur Formierung des Semantic Web

MedR Schriftenreihe Medizinrecht

Inhaltsverzeichnis. 2.1 Eine kurze Geschichte von REST Grundprinzipien Zusammenfassung... 17

Apache HTTP Server Administration

Dokumenten- und Content Management

David Seidel. Reifegrad. Der prioritätsspezifische Index. Effektives Management für eine bessere Potentialausschöpfung.

Makologa Touré Damian Gawenda

Einfluss von Social Media auf die Suchmaschinenoptimierung mit spezieller Betrachtung von Google+

Technologische Entwicklung von GIS und Internet der letzten Jahre

Java und XML 2. Java und XML

Online-Publishing mit HTML und CSS für Einsteigerinnen

Tiberius Hehn Roland Riempp. Multimediale interaktive PDF-Dokumente durch Integration von Flash

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

Usability Untersuchung eines Internetauftrittes nach DIN EN ISO 9241 Am Praxisbeispiel der Firma MAFI Transport-Systeme GmbH

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS XML Programmierung - Grundlagen PHP Programmierung - Grundlagen...

Online-Publishing mit HTML und CSS für Einsteigerinnen

2 Grundlagen von Webanwendungen

XML Extensible Markup Language

Inhaltsverzeichnis... VII

XML Extensible Markup Language

Urbacher Computer-Forum

Das Umfeld von XML. Übersicht

iport iport Systemarchitektur und Administration Marco Ledwon Verbundzentrale des GBV VZG

Einleitung Von All-in-one-Software zu Webservices 17

A361 Web-Server. IKT-Standard. Ausgabedatum: Version: Ersetzt: Genehmigt durch: Informatiksteuerungsorgan Bund, am

Management im Gesundheitswesen

Web-basierte Tests Julian Aumiller, Christian Dins

!"# $ % Internet Protokolle: HTTP 1/38

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

Webseiten-Programmierung

Tomcat Konfiguration und Administration

Franz Käppeler Leitfaden für Existenzgründer

Vernetzte Produktentwicklung

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Vorlesung SS 2001: Sicherheit in offenen Netzen

Java 2, Enterprise Edition Einführung und Überblick

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

Multiuser Client/Server Systeme

Anhang B. B.1 Webseiten für Entwickler. Anwendungen

Architektur von SOAP basierten Web Services

Netzwerk Technologien in LabVIEW

Harry Wessling. Network Relationship Management

Grundlagen des Grid Computing

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Call Center Management in der Praxis

Ursprung des Internets und WWW

Inhaltsverzeichnis. Hinweise zum Gebrauch des Buches... XIII. Teil I Grundlagen der Web-Programmierung

Ingenieurwissenschaftliche Studiengänge attraktiver

XML Grundlagen Sommersemester 2013

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Hinterhuber/Krauthammer. Leadership - mehr als Management

Sachwortverzeichnis

JSP und Servlet Programmierung

Internet Protokolle für Multimedia - Anwendungen

Unschuld - Zheng Chinesisch - Sprachkurs fur Medizin und Alltag Band 2: Einfuhrung in den Sprachaufbau

Client-Server-Prinzip

Inhaltsverzeichnis. Hinweise zum Gebrauch des Buches... XIII. Teil I Grundlagen der Web-Programmierung

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014

Handbuch Notruf. Notrufe über Voice over IP: Grundlagen und Praxis. Karl Heinz Wolf nic.at GmbH. Ausschnitt aus dem

ecommerce Websites Entwicklung erfolgreicher Web-Auftritte mit Java, JavaScript, HTML, XML und SQL Vivek Sharma Rajiv Sharma ADDISON-WESLEY

Einleitung. Was ist das Wesen von Scrum? Die Ursprünge dieses Buches

Workflow, Business Process Management, 4.Teil

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet

Web Services Einsatzmöglichkeiten für das Information Retrieval im WWW

Inhaltsverzeichnis. Teil 1 Grundlagen 5. Teil 2 Formatierung 31 INHALTSVERZEICHNIS

Informatik der digitalen Medien

XML Informationsmodelle

Internet Interconnected Networks - Geschichte -

Verteilte Anwendungen. Teil 2: Einführung in XML

Andreas Hoff. Vertrauensarbeitszeit

Geyer. Kredite aktiv verkaufen

SIP - Multimediale Dienste in Internet

Transkript:

World Wide Web

Springer Berlin Heidelberg New York Barcelona Hongkong London Mailand Paris Singapur Tokio

Erik Wilde World Wide Web Technische Grundlagen Mit 78 Abbildungen und 12 Tabellen, Springer

Erik Wilde Institut fur Technische Informatik und Kommunikationsnetze ETH-Zentrum, CH-8092 Zurich Die Deutsche Bibliothek - CIP-Einheitsaufnahme Wilde, Erik: World Wide Web: technische Grundlagen/Erik Wilde.-Berlin; Heidelberg; New York; Barcelona; Hongkong; London; Mailand; Paris; Singapur; Tokio: Springer, 1999 ISBN-13:978-3-642-64191-6 e-isbn-13:978-3-642-59944-6 DOl: 10.1007/978-3-642-59944-6 IS B N-13:978-3-642-64191-6 Dieses Werk ist urheberrechtlich geschiitzt. Die dadurch begriindeten Rechte, insbesondere die der Ubersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der VervieWiltigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfaltigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetz1ichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland yom 9. September 1965 in der jeweils geltenden Fassung zulassig. Sie ist grundsatzlich vergiitungspflichtig. Zuwiderhandlungen unterliegen den Stratbestimmungen des Urheberrechtsgesetzes. Springer-Verlag Berlin Heidelberg 1999 Softcover reprint of the hardcover 1st edition 1999 Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dab solche Namen im Sinne der Warenzeichen- und Markenschutzgesetzgebung als frei zu betrachten waren und daher von jedermann benutzt werden diirften. Umschlaggestaltung: Kiinkel+ Lopka, Heidelberg Obersetzung, Satz und Umbruch: G & U, Technische Dokumentation, Flensburg Gedruckt auf saurefreiem Papier SPIN: 10675001 33/3142PS - 5432 1 0

Vorwort Was ist der Unterschied zwischen einer URL und einer URI? Wie verrichtet HTTP seine Arbeit? Warum benotigen wir XML? Worum dreht es sich dabei uberhaupt und wird es moglicherweise HTML ersetzen? Dieses Buch gibt Ihnen Antworten auf diese und eine Reihe anderer Fragen, die sich aufmerksamen Bewohnern des Cyberspace aufdrangen konnten. Das Buch stellt naturlich nicht nur ein Glossar von Abkurzungen und haufig benutzten Ausdrucken dar. Es ist vielmehr eine umfassende und doch pragnante Darstellung der Technologie, welche die Grundlage des World Wide Web bildet. Es ist eine uberraschende Feststellung, dab es trotz vieler Tausend veroffentlichter Bucher zum Thema WWW bis heute keines gibt, das detailliert auf die innere Funktionsweise dieser beliebten Internet-Anwendung eingeht, die so einfach zu benutzen und doch so kompliziert ist, wenn es darum geht, die Funktionsweise tatsachlich zu verstehen. Das Zielpublikum dieses Buchs labt sich vielleicht am besten dadurch beschreiben, wie der Autor selbst auf die Idee gekommen ist, es zu verfassen: Ein erster Rohentwurf wurde als Begleittext fur ein Praxis seminar ausgewahlt, das eine kontinuierliche Weiterbildung zum Thema WWW-Technologie bieten sollte. Teilnehmer an diesem Seminar waren Person en, die wubten, was das Web ist und wie es gewerblich eingesetzt werden kann, aber auberdem Kenntnisse daruber benotigten, wie die Technologie f.mktioniert. Wahrend der Planung dieser Schulung stellte der Autor fest, dab auf dem Markt kein geeignetes Buch zu finden war, und entschied somit, selbst eines zu schreiben. Es ist wohl unnotig, daraufhinzuweisen, dab schon die Entwurfsfassung ihrer Aufgabe der Bereitstellung einer Referenz 'm allen Aspekten der Web-Technologie gerecht wurde. Wie Erik Wilde in seiner Einleitung sagt, besteht das offensichtlichste Handicap eines Buchs darin, dab eine Momentaufnahme einer sich so schnell entwickelnden Technologie schon in dem Moment wieder veraltet sein kann, wenn das MaHuskript den Schreibtisch des Autors (oder, urn genau zu sein, seinen Computer) verlabt. Es wird eine grobe Herausforderung sein, den Titel auf derr. aktuellen Stand der technologischen Entwicklung zu halten und dem Leser zu gegebener Zeit Aktualisierungen zu bieten. Ich frage mich, ob die Jahr-2000-Ausgabe dieses Buchs vielleicht bereits im Web veroffentlicht werden wird... September 1998 Prof. Bernhard Plattner, ETH Zurich

Einleitung Die Idee fur dieses Buch kam mir, als ich nach einer Publikation suchte, die nicht nur einen Aspekt des Web, sondern alle relevanten Bereiche der heutigen Web-Infrastruktur abdeckt. Es gibt tatsachlich mehrere Hundert Bucher uber HTML und Java, eine grabe Anzahl von Titeln zu CGI- und HTTP-Server-Konfiguration und -Wartung, und auch Bucher zu den Themen CSS und XML erscheinen mit zunehmender Bedeutung dieser Technologien in immer kurzeren Abstanden. Beim DurchstObern verschiedener beeindruckender Geschafte fur Computerbucher fand ich allerdings kein einzelnes Buch, das sich allen diesen Themen widmete. Dieses Buch stellt dementsprechend einen Versuch dar, eine Wissensquelle bereitzustellen, die alle derzeit relevanten Bereiche der Web-Technologie abdeckt. Diese Aussage beschreibt allerdings zugleich auch das grobte Dilemma dieses Buchs, da sich die Formulierung»derzeit«, wenn yom Web die Rede ist, nur auf eine sehr kurze Zeitspanne bezieht. Nahezu jede Woche werden neue Technologien angekundigt und beworben, und es ist kaum moglich, vorherzusagen, welche davon uberleben und welche schon in wenigen Monaten wieder vergessen sein werden. Foiglich befabt sich diese Arbeit ausfuhrlich mit den Bereichen, die fur das Web mit einiger Wahrscheinlichkeit in den kommenden Jahren von Relevanz sein werden: URI, HTTP, SGML, HTML, CSS und XML. Obwohl Java ganz offensichtlich zu den graben Modeerscheinungen des Web zahlt, wird nicht ausfuhrlich darauf eingegangen, da ich glaube, dab eine detaillierte Beschreibung einer Pragrammiersprache nicht zum Rest des Buchs passen wiirde, der sich eher der Beschreibung architekturbezogener Konzepte widmet. Dieselbe Einschrankung trifft auch auf die Skriptsprachen zu, die in steigendem MaBe in die Web-Umgebung integriert werden, aber zu komplex sind, urn in einem Buch, das sich mit vielen anderen Themen beschaftigt, umfassend erlautert werden zu konnen. Einige andere Web-bezogene Konzepte und Technologien werden ebenfalls in einer weniger ausfuhrlichen Weise beschrieben, weil sie entweder nicht ganz so wichtig sind oder moglicherweise nicht dauerhaft von Bedeutung sein werden. In einer zweiten Ausgabe dieses Buchs werden aus dem Glossar und dem Index mit Sicherheit einige Dinge spurlos verschwinden, wahrend andere hinzukommen werden, aber dies ist im Zeitalter des Internet der Lauf der

VIII Einleitung Dinge. Ich bin sehr neugierig, fur wie lange dieses Buch als Referenz fur die technischen Grundlagen der Web-Technologien geeignet sein wird. AbschlieBend mochte ich dem International Computer Science Institute (ICSI) in Berkeley fur die Gelegenheit danken, dieses Buch zu schreiben. Es hat mich sehr viel mehr Zeit gekostet als ich ursprunglich annahm, und ich hoffe, dab das Ergebnis sich fur viele Personen als sehr nutzlich erweisen wird, die nach einem eingehenden technischen Oberblick uber das Web suchen. Wenn das Buch als Lehrbuch fur technisch orientierte Vorlesungen uber das Web, als eine Einfuhrung in die Web-Technologie fur Leute mit einem minimalen Hintergrundwissen in Sachen Computerkommunikation und als umfassendes Referenzwerk fur Web-bezogene Themen eingesetzt wird, dann ist es zu dem Buch geworden, das ich schreiben wollte. Berkeley, September 1998 Erik Wilde

X Inhaltsverzeichnis 3.2.2 General und Entity Header... 64 3.2.3 Request... 73 3.2.4 Response... 86 3.2.5 Content Negotiation... 92 3.2.6 Authentifizierung... 97 3.2.7 Persistente Verbindungen... 103 3.2.8 Chunked Encoding... 106 3.2.9 Caching... 108 3.3 Sicherheit... 127 3.3.1 HTTP tiber SSL (HTTPS)... 129 3.3.2 Secure HTTP (S-HTTP)... 134 3.4 Cookies... 135 3.5 Benutzungvon HTTP... 139 3.6 Nicht zum Standard gehorende HTTP Extensions... 141 3.6.1 Neuladen von Web-Seiten... 142 3.6.2 Obergange zwischen Seiten... 143 3.7 Die Zukunft von HTTP... 144 3.7.1 Protocol Extension Protocol (PEP)... 147 3.7.2 HTTP Next Generation (HTTP-ng)... 149 3.7.3 Multiplexing Protocol (SMUX)... 149 4. Standard Generalized Markup Language (SGML)... 151 4.1 SGML-Konzepte... 152 4.1.1 Inhalt und Darstellung... 153 4.1.2 Strukturierung durch Markup... 156 4.1.3 Document Classes... 159 4.1.4 Darstellung von Inhalt... 163 4.2 Der SGML-Standard... 166 4.2.1 SGML Declaration... 169 4.2.2 Document Type Definition (DTD)... 174 4.2.3 SGML-Dokumente... 184 4.3 Benutzung von SGML... 185 4.3.1 SGML Profiles... 186 4.3.2 SGML Applications... 187 4.3.3 SGML-Validierung... 187 4.4 Die Zukunft von SGML... 190 5. Hypertext Markup Language (HTML)... 191 5.1 Geschichte... 193 5.1.1 Frtihe Versionen... 193 5.1.2 HTML 2.0... 194 5.1.3 HTML 3.2... 194 5.104 HTML 4.0... 195 5.2 Hypertext Markup Language 4.0 (HTML 4.0)... 196 5.2.1 HTML 4.0 DTDs... 196

Inhaltsverzeichnis XI 5.2.2 Gemeinsame Attribute... 198 5.2.3 Grundlegender Autbau eines HTML-Dokuments... 204 5.2.4 Einfacher und strukturierter Text... 218 5.2.5 Bilder und Image Maps... 234 5.2.6 Links... 245 5.2.7 Frames und Formulare... 249 5.2.8 Dynamische Dokumente... 272 5.3 Publishing mit HTML... 282 5.4 Benutzung von HTML... 288 5.5 Die Zukunft von HTML... 291 6. Cascading Style Sheets (CSS)... 293 6.1 CSS-Grundlagen... 293 6.2 Geschichte... 298 6.3 Cascading Style Sheets, Levell (CSSl)... 299 6.3.1 Vererbung... 300 6.3.2 Selectors... 303 6.3.3 Einheiten... 313 6.3.4 Declarations... 316 6.3.5 Verwenden mehrerer Style Sheet... 344 6.4 Verwandte Ansatze... 352 6.5 Konvertierung nach CSS... 353 6.6 Die Zukunft von CSS... 354 6.6.1 Cascading Style Sheets Positioning (CSS-P)... 354 6.6.2 Cascading Style Sheets, Level 2 (CSS2)... 355 7. Extensible Markup Language (XML)... 359 7.1 XML-Grundlagen... 361 7.1.1 Erstellen von Dokumenttypen... 362 7.1.2 Formatierung von XML-Dokumenten... 363 7.1.3 Konvertierung... 368 7.2 Extensible Markup Language 1.0 (XML 1.0)... 374 7.2.1 Unterschiede zu SGML... 376 7.3 XML Linking Language (XLink)... 378 7.3.1 Linking-Konzepte... 379 7.3.2 Link-Informationen... 384 7.3.3 Link-Typen... 386 7.3.4 Attribute... 388 7.4 XML Pointer Language (XPointer)... 393 7.4.1 Konzepte... 394 7.4.2 Location Terms... 394 7.4.3 Spanning Locators... 401 7.4.4 Persistenz... 401 7.5 Extensible Style Language (XSL)... 403 7.5.1 Konzepte... 405

XII Inhaltsverzeichnis 7.5.2 Style Sheets... 408 7.6 XML und andere Markup Languages... 410 7.6.1 Vergleich von XML und HTML... 410 7.6.2 Vergleich von XML und SGML... 411 7.7 Die Zukunft von XML... 413 8. Skripte und Programmierung... 415 8.1 Skriptsprachen... 415 8.1.1 ECMAScript......... 418 8.1.2 VB Script... 419 8.2 Programmiersprachen... 419 8.2.1 Java... 419 8.3 Verteilte Programmierung... 422 8.3.1 Remote Method Invocation (RMI)... 423 8.3.2 Common Object Request Broker Architecture (CORBA)... 424 8.3.3 Distributed Component Object Model (DCOM)... 425 8.304 Interworking... 426 9. HTTP-Server... 427 9.1 Server-Leistungsfahigkeit... 428 9.2 Server-Konfiguration... 429 9.2.1 Server-Start... 430 9.2.2 Virtuelle Host... 432 9.2.3 Origin Server... 435 9.204 Proxies... 441 9.3 Der Apache-HTTP-Server... 444 9.3.1 Installation... 446 9.3.2 Konfiguration... 448 904 Common Gateway Interface (CGI)... 454 904.1 Kommunikation mit dem Server... 456 904.2 Formulare und CGI... 461 904.3 Server-Side Includes (SSI)... 463 10. 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.3 loa 1004.1 1004.2 1004.3 Verschiedenes...... 465 Server-Technologien... 466 FastCGI... 466 Java-Servlets... 467 Browser............... 467 Integration... 468 Prefetching..................... 471 Suchmaschinen... 473 Neue Inhaltstypen... 475 Virtual Reality Modeling Language (VRML)... 476 Mathematical Markup Language (MathML)... 478 Portable Network Graphics (PNG)... 480

Inhaltsverzeichnis XIII 10.4.4 10.4.5 10.5 10.5.1 10.5.2 10.5.3 10.5.4 10.5.5 10.5.6 11. 11.1 11.1.1 11.1.2 11.2 11.2.1 11.2.2 11.3 11.3.1 A. A.1 A.1.1 A.1.2 A. 1.3 A.2 A.2.1 A.2.2 A.2.3 A.2.4 A.2.5 A.3 A.3.1 A.3.2 B. B.1 B.2 B.3 B.4 C. C.1 C.2 Vektorgrafiken... 482 RealMedia Architecture (RMA)... 483 Neue Architekturkomponenten... 484 Platform for Internet Content Selection (PICS)... 484 Digital Signature Initiative (DSig)... 488 Resource Description Framework (RDF)... 489 Dynamic Fonts... 490 Document Object Model (DaM)... 492 Synchronized Multimedia Integration Language (SMIL)... 494 Verwandte Technologien... 497 E-Mail... 498 Senden von E-Mail... 499 Empfangen von E-Mail... 502 Verzeichnisdienste... 505 Directory Access Protocol (DAP)... 508 Lightweight Directory Access Protocol (LDAP)... 508 Usenet-Nachrichten... 509 Network News Transfer Protocol (NNTP)... 510 HTTP/1.1-Definitionen............ 511 Nachrichten... 511 Allgemeine Definitionen... 511 Request... 512 Response..................... 513 Statuscodes... 513 Informational (lxx)... 513 Successfull (2xx)... 514 Redirection (3xx)... 514 Client Error (4xx)... 514 Server Error (5xx)... 515 Warncodes... 515 Temporary Warnings (lxx)... 515 Persistent Warnings (2xx)... 516 HTML-4.0-Definitionen... 517 SGML-Deklaration... 517 DTD Entities... 519 HTML 4.0 Table DTD... 533 HTML 4.0 Form DTD... 535 XML 1.0 Definitionen... 539 SGML Declaration... 539 XML DTD fur SMIL... 543 Glossar... 549 Stichwortverzeichnis............... 621

Abbildungsverzeichnis Abb. 1.1 Abb. 1.2 Abb.1.3 Abb.1.4 Abb.2.1 Abb.2.2 Abb.2.3 Abb.2.4 Abb.3.1 Abb.3.2 Abb.3.3 Abb.3.4 Abb.3.5 Abb.3.6 Abb.3.7 Abb.3.8 Abb.3.9 Abb.3.10 Abb.3.11 Abb.3.12 Abb.3.13 Abb.3.14 Abb.3.15 Abb.3.16 Abb.3.17 Abb.4.1 Abb.4.2 Abb.4.3 Abb.4.4 Abb.4.5 Abb.5.1 Abb.5.2 Abb.5.3 Das DNS als Teil des Ladens von Web-Seiten...................... 25 Schichtung von Kommunikationsprotokollen... 26 Schichtung von Kommunikationsprotokollen - TCP/IP... 28 Schichtung von Kommunikationsprotokollen - Anwendungsprotokolle........................................ 30 Web-Links aus der Sicht des Benutzers.......... 37 Die Beziehung zwischen URIs, URNs und URLs... 41 Verwendung eines URN Naming Service (UNS)... 42 Verwendung eines RDS und eines URN Resolver Service...... 47 Grundlegende Funktionsweise von HTTP........................ 60 HTTP unter Einbeziehung eines Proxies.......................... 61 HTTP unter Einbeziehung eines Tunnels......... 61 Server-Driven Content Negotiation.............................. 94 Agent-Driven Content Negotiation.............................. 96 Transparent Content Negotiation... 97 Persistente HTTP-Verbindungen... 104 HTTP Request Pipelining.................................... 107 Chunked Transfer Coding... 107 Mogliche Cache Locations... 109 HTTP Caching mit Cache Miss... 110 HTTP Caching mit Cache Hit... 111 HTTP-ValidierungzwischengespeicherterEntities... 117 Schichtung der Kommunikationsprotokolle bei der Verwendung von SSL.......................................... 130 Mogliche Plazierung der SSL- und der TCP-Implementierung... 134 Schichtung von Kommunikationsprotokollen mit S-HTTP.......... 135 HTTP State Management mit Cookies... 137 Beispiel fur strukturierten Inhalt... 154 Hierarchische Struktur eines SGML-Dokuments... 161 Ein allgemeiner SGML Parser... 166 Ein spezialisierter SGML Parser (z. B. fur XML)... 168 Ein spezialisierter SGML Parser (z. B. fur HTML)... 168 Ein HTML Parser............................................. 192 Konvertierung einer Transitional DTD in Strict HTML 4.0... 198 Grundlegender Aufbau eines HTML-Dokuments... 205

Abbildungsverzeichnis xv Abb.5.4 Abb.5.5 Abb.5.6 Abb.5.7 Abb.5.8 Abb.5.9 Abb.5.10 Abb.5.ll Abb.6.1 Abb.6.2 Abb.6.3 Abb.6.4 Abb.6.5 Abb.6.6 Abb.6.7 Abb.6.8 Abb.6.9 Abb.6.10 Abb.6.ll Abb.6.12 Abb.6.13 Abb.6.14 Abb.7.1 Abb.7.2 Abb.7.3 Abb.7.4 Abb.7.5 Abb.7.6 Abb.7.7 Abb.7.8 Abb.7.9 Abb.7.10 Abb.7.ll Abb.8.1 Abb.8.2 Abb.9.1 Abb.9.2 Abb.9.3 Abb.9.4 Abb.9.5 Hierarchie eines HTML-Dokuments............................. 205 Mit <LINK> ausgedruckte Beziehungen zwischen Dokumenten... 210 Formatierung des <TH>-Elements und Benutzung des COLSPAN-Attribut... 231 Server-Side Image Maps... 239 Client-Side Image Maps... 241 Die Struktur einer HTML-Seite, die von Frames Gebrauch macht... 250 Ein Beispiellayout mit verschachtelten <FRAMESET>-Elementen... 253 Publishing mit HTML......................................... 283 Publishing mit CSS... 294 Publishing mit CSS unter Verwendung von Cascading Style Sheets... 295 Die W3C-W eb-seite zum Thema Style Sheets... 297 Hierarchische Struktur eines HTML-Dokuments und Vererbung... 301 Dberschreiben von Vererbung... 301 Verwenden von Vererbung fur Defaults und Ausnahmen... 302 Abstande fur Block-Level-Elemente... 323 Die Properties word-spacing und letter-spacing... 331 Auswirkung der Property background-repeat... 336 Verwenden von Prozentwerten fur die Property background-position.......................................... 338 Kaskadierung und Vererbung mit CSS... 344 User und Designer Style Sheets in einem CSS-Browser... 347 Mehrere Designer Style Sheets in einem CSS-Browser............... 348 User und mehrere Designer Style Sheets in einem CSS-Browser... 349 Ein XML-Parser.............................................. 361 Publishing mit XML... 362 Struktur eines kleinen XML-Dokuments... 365 Publishing mit XMLlXSL... 367 Ein XML-Parser fur wohlgeformte XML-Dokumente... 374 Out-of-Line Links... 381 Direktionalitat von Links... 383 Anzahl verknupfter Ressourcen... 384 Die XPointer-Schliisselworter zum Fortbewegen durch den Document Tree... 397 Verschiedene XPointer wahlen dieselbe Subressource aus.......... 402 XSL Result Tree Construction (Abbildung von XML aufhtml)... 407 Struktur einer CORBA-Anwendung... 424 CORBA in einer heterogenen Umgebung... 426 IP-basierte virtuelle Host... 433 Nicht aufip basierende virtuelle Hosts... 434 HTTPS Proxying... 443 SSL Proxying................................................. 444 Client/Server-Interaktion mit CGI... 455

XVI Abbildungsverzeichnis Abb.9.6 Formulare und CGI... 462 Abb. ILl Protokolle fur die E-Mail-Dbertragung... 499 Abb. 11.2 X.500-Verzeichniszugriff mit DAP............................... 506 Abb. 11.3 X.500-Datendistribution mit DSP... 507 Abb. 11.4 Verzeichniszugriff mitldap... 509

Einfiihrung Das World Wide Web, in diesem Buch einfach»das Web«genannt, ist eine Ansammlung von Technologien, die ein verteiltes Hypermedia-Dokumentmodell auf der Basis des Internet implementieren. Das Web hat dem Internet zu der Beliebtheit verholfen, die es heute geniebt. Dieses Buch beschreibt alle grundlegenden Konzepte der Web-Technologie sowie eine Reihe zusatzlicher und neuer Konzepte. Eines der Ziele dieses Buchs besteht darin, dab jedes Kapitel tiber die verschiedenen Konzepte von Web-Technologie einzeln gelesen werden kann, ohne sich eingehend mit allen anderen Kapiteln befassen zu mtissen. In vielen Fallen wird es Querverweise zwischen Kapiteln geben, doch sind diese so explizit wie moglich gehalten worden. Ein umfangreiches Glossar und ein Index sollen das schnelle Auffinden von Informationen im Buch ermoglichen und dieses so auch zu einem Referenzwerk machen, das zum Suchen der wichtigsten Begriffe der Web-Technologie verwendet werden kann. Das Darstellen einer groben Anzahl von Konzepten, die in vielerlei Hinsicht zusammenhangen, in einem sequentiellen Medium wie einem Buch ist eine Herausforderung. Man kann nur sehr schwer entscheiden, welche Reihenfolge der Darstellung den Anforderungen der Leser am besten gerecht wird, die das Buch von vorne bis hinten durchlesen mochten. Die letztlich gewahlte Kapitelabfolge gibt den Grad wieder, zu dem ein Konzept als grundlegend fur das Web angesehen werden kann. Foiglich ist das Buch in drei Teile unterteilt, von denen jeder eine Reihe von Kapiteln enthalt. Vor dem ersten Teil wird eine kurze Erlauterung der zugrundeliegenden Infrastruktur gegeben. Sehr haufig wird das W eb mit dem Internet verwechselt. Yom technischen Standpunkt aus gesehen, ist das Web einfach eine Ansammlung von Anwendungen, die auf der yom Internet bereitgestellten Infrastruktur ausgefuhrt werden. Die in Kapitel 1 dargestellten Grundlagen sind ein Versuch, einen kurzen Uberblick tiber die zugrundeliegenden Konzepte des Internet zu geben (es bietet keine wirkliche Einftihrung in das Internet selbst, da dies anderen Btichern vorbehalten bleiben soll) und das Web als Anwendung auf der Basis des Internet zu beschreiben. Ftir einen Leser, der noch keine Vorstellung davon hat, was das Internet wirklich ist und wie es funktioniert, wird dieses Kapitel wahrscheinlich zu viele Informationen bereitstellen. Es soll eher als E. Wilde, World Wide Web Springer-Verlag Berlin Heidelberg 1999

2 EinfUhrung Obersicht uber die Konzepte dienen, welche die technologische Grundlage fur die Konzepte bilden, die das Thema dieses Buchs sind. Teil I - Grundlagen 1m ersten Teil werden die grundlegenden Konzepte der Web-Architektur vorgestellt. Die charakteristischste Eigenschaft des Web (und zugleich die, von der es seinen Namen hat) ist dietatsache, dab aile verfugbaren Dokumente ein grobes, verwobenes Netz von Informationsressourcen bilden. Dies wird durch Links zwischen Dokumenten erreicht, die von einem Dokument auf das andere verweisen und den en durch einen einfachen Mausklick gefolgt werden kann. Dementsprechend wird das Modell der Web-Links vor allen anderen grundlegenden Konzepten in Kapitel 2 besprochen. Die Tatsache, dab Dokumente im Web nicht nur durch Links verbunden, sondern auch uber das gesamte Internet mit Servern uberall in der Welt verteilt sind, macht ein Mittel erforderlich, auf entfernte Dokumente zuzugreifen. Wann immer einem Link gefolgt wird, mub das Dokument, auf das der Link verweist, yom es beherbergenden Server abgerufen werden. Dies geschieht mit Hilfe eines Kommunikationsprotokolls, das als Hypertext Transfer Protocol (HTTP) bezeichnet wird und Gegenstand von Kapitel 3 ist. Obwohl es selbst kein Bestandteil der ersten Web-Versionen war, beeinflubte die in Kapitel 4 beschriebene Standard Generalized Markup Language (SGML) ganz erheblich das Design der Inhaltssprache des Web (HTML) und bildet auberdem die Grundlage fur eine neue Sprache, die in Zukunft aller Wahrscheinlichkeit nach sehr wichtig werden wird (XML). Ein weiterer Grund daftir, SGML als grundlegendes Web-Konzept zu betrachten, besteht in seiner Trennung von Inhalt und Darstellung. Diese Idee ist fur das Verstandnis vieler anderer Web-Konzepte von essentieller Bedeutung. Foiglich stellt ein fundiertes Wissen von SGML eine sehr gute Grundlage zum Verstehen anderer Web-Konzepte dar. Mit den Konzepten von Dokumenten, die mit Hilfe von URIs verknupft sind und anhand von HTTP ubertragen werden, geht ein drittes Konzept einher, welches das Format der im Web benutzten Dokumente beschreibt. Die Sprache fur dies en Zweck ist die in Kapitel 5 erlauterte Hypertext Markup Language (HTML). HTML basiert auf SGML, so dab es sinnvoll ist, sich zunachst die Konzepte und Ideen anzusehen, die SGML zugrunde liegen (obwohl diese vielleicht auf den ersten Blick etwas abstrakt wirken), bevor man sich genauer mit HTML auseinandersetzt.

EinfOhrung 3 Teil II - Fortgeschrittenes Der zweite Teil des Buchs befabt sich mit fortgeschritteneren Konzepten, die bereits zur Web-Infrastruktur gehoren oder gehoren werden, aber zum Verstehen der grundlegenden Funktionsweise des Web nicht erforderlich sind. Bevor der Leser sich mit diesen Kapiteln beschaftigt, sollte er mit den Konzepten aus dem ersten Teil vertraut sein, da diese oftmals den entscheidenden Hinweis geben, wie ein Konzept in den Gesamtzusammenhang pabt. In Kapitel6 werden die Cascading Style Sheets (CSS) beschrieben, welche die Aufgabe haben, die Darstellung von Web-Seiten zu definieren. Seit den Anfangen des Web hat sich herauskristallisiert, dab das Design von Web-Seiten hinsichtlich Layout und Darstellung immer wichtiger wird, so dab viele Web-Seiten Inhalt und Darstellung bestimmter Informationen vermischen. Da eines der grundlegenden Konzepte von HTML als Sprache von Web-Seiten darin besteht, Inhalt und Darstellung zu trennen, wurde CSS erfunden, urn die Darstellung von Web-Seiten zu beschreiben. Die zwei Hauptvorteile von CSS sind die im Vergleich zu HTML fortgeschritteneren Layoutfunktionen und die saubere Trennung von Inhalt und Darstellung, die Web-Dokumente fur bestimmte Personenkreise (zum Beispiel fur Blinde) oder Programme (wie beispielsweise Suchmaschinen) zuganglicher macht, die nur nach Inhalt suchen. Wahrend sich HTML von seinen eher einfachen Anfangen kontinuierlich bis zu einem Dokumentformat weiterentwickelt hat, das nun eine grobe Anzahlleistungsfahiger Features besitzt, ist seine Anwendung durch die feste Menge von Elementen und Attributen sowie die mit diesen verbundene Semantik nach wie vor begrenzt. Fur mehr Flexibilitat ist ein Mechanismus erforderlich, der die Definition benutzerdefinierter Dokumentformate ermoglicht. (HTML ist ein Beispiel fur ein solches Format.) Bei SGML handelt es sich urn einen solchen Mechanismus, doch hat diese Sprache einige Nachteile, die zur Entwicklung der Extensible Markup Language (XML) fuhrten, bei der es sich im wesentlichen urn eine Teilmenge von SGML handelt. XML kann benutzt werden, urn benutzerdefinierte Dokumenttypen zu definieren und diese Formate und die sie verwendenden Dokumente auszutauschen und verfugt daruber hinaus uber Linkingund Style-Sheet -Mechanismen. Eine Beschreibung von XML findet sich in Kapitel7. Obwohl HTML von Version zu Version vielleistungsfahiger geworden ist und CSS den Darstellungsmoglichkeiten sogar noch weitere Features hinzufugt, gibt es noch immer viele Beschrankungen, und es konnen grundsatzlich nur statische Dokumente entworfen werden. Urn dynamische Features hinzuzufugen und somit in der Lage zu sein, Dokumente zu erstellen, die interaktiv benutzt werden konnen, sind Skript - und Pro-

4 EinfUhrung grammiersprachen entworfen worden, die in Dokumente eingebettet werden konnen und Gegenstand von Kapitel 8 sind. AuBerdem befindet sich in diesem Kapitel ein kurzer Oberblick zu den Web-bezogenen Architekturen flir die verteilte Programmierung. Normalerweise handelt es sich bei einem Web-Server urn ein entferntes Programm, das via HTTP kontaktiert wird, urn auf Anfrage ein Dokument bereitzustellen. 1m wesentlichen empfangt ein Web-Server einen Request, flihrt die angefragte Aktion aus und sendet einen Response mit dem Ergebnis. Es gibt eine Reihe von Aspekten, die fiir alle Web-Server gelten und daher in Kapitel 9 behandelt werden. Dariiber hinaus wird als Beispiel dafiir, wie ein Web-Server konfiguriert werden kann, ein spezielles Server Programm vorgestellt. Der Apache-Server, ein kostenloses Produkt und zugleich der beliebteste Web-Server, ist dieses Beispiel flir ein Server-Programm. Als letztes server-bezogenes Thema wird der standardmabige Datenaustausch zwischen einem Web-Server und anderen Programmen auf demselben Computer beschrieben. Zusatzlich zu den in den Kapiteln 2 bis 9 beschriebenen Hauptkomponenten der Web-Technologie gibt es Reihe weiterer Modelle und Konzepte, die weniger beliebt oder einfach so neu sind, dab iiber ihre zukiinftige Bedeutung kaum eine Aussage getroffen werden kann. In Kapitel 10 stehen viele dieser Themen im Mittelpunkt. Dies ist das Kapitel, das sich in der nahen Zukunft am wahrscheinlichsten vollstandig andern wird. Die Auswahl der Themen in diesem Kapitel erhebt keinen Anspruch aufvollstandigkeit, obwohl die wichtigeren Themen (wie zum Beispiel beliebte Inhaltstypen und neue Architekturkomponenten) beriicksichtigt wurden. Kapitel 10 beschreibt eine Reihe von Konzepten, die speziell flir das Web entworfen wurden. Es gibt auberdem einige Technologien, die gemessen an ihrem Ursprung nicht zur Web-Infrastruktur gehoren, aber sich dennoch in der heutigen Infrastruktur des Web wiederfinden. Beispielsweise enthalten Browser normalerweise eine Unterstiitzung zum Lesen von Usenet-Nachrichten sowie zum Senden und Empfangen von elektronischer Post. Ein kurzer Oberblick iiber einige der Technologien, die in heutigen Web-Werkzeugen zum Einsatz kommen, findet sich in Kapiteili. Teil III - Anhiinge AuBer den in den ersten zwei Teilen vorgestellten Konzepten gibt es eine Reihe von Anhangen mit Listings und Definitionen. Zudem befinden sich in diesem Buch Literaturhinweise, ein Glossar und ein Index. Einige formale Definitionen von HTTP wurden in Kapitel 3 ausgelassen, da sie das Lesen des Texts erschwert hatten. Dennoch sind einige dieser Definitionen fiir HTTP wichtig und dariiber hinaus als Referenz von

EinfOhrung 5 Nutzen, wenn es darum geht, HTTP-Nachrichten zu verstehen oder HTTP-Status- bzw. -Warncodes zu interpretieren. In Anhang A werden diese Definitionen aufgefuhrt. Obwohl in KapitelS einige der formalen Definitionen von HTML-Elementen auftauchen, wurden andere weggelassen, weil sie zu komplex sind, urn einfach so mitgelesen zu werden. Die interessantesten formalen Definitionen, Tabellen und Formulare werden in Anhang B behandelt. Ferner enthalt dieser Anhang die SGML Declaration von HTML, welche die syntaktischen Grundlagen von HTML definiert, sowie die Entities (SGML Abkurzungen), die in den formalen Definitionen der HTML-Elemente in Kapitel 5 verwendet werden. XML befindet sich noch immer im Entwicklungsstadium, doch eine der grundlegendsten Definitionen von XML, die SGML Declaration mit den syntaktischen Grundlagen von XML, wird aller Wahrscheinlichkeit nach erhalten bleiben und ist daher in Anhang C aufgefuhrt. Als Beispiel fur einen mit XML definierten Dokumenttyp enthalt dieser Anhang auberdem die XML-Definition der Synchronized Multimedia Integration Language (SMIL). Die letzten drei Anhange sind die Literaturhinweise, das Glossar und der Index. Obwohl dieses Buch im Glossar einige URIs enthalt, handelt es sich bei allen Literaturhinweisen urn gedruckte Dokumente. Mit ein wenig Erfahrung und der Hilfe der Vielzahl von im Web verfugbaren Suchmaschinen, lassen sich viele dieser Dokumente auch online finden. Allerdings andern sich Angaben fur Online-Orte (URIs) oftmals sehr schnell, wahrend Verweise auf gedruckte Dokumente eine sehr lange Lebensdauer haben. Aus diesem Grund wurde die Anzahl der URIs in diesem Buch so klein wie moglich gehalten (obwohl einige der im Glossar aufgefuhrten URIs gute Ausgangspunkte darstellen). Auch wenn es etwas altmodisch scheint, ein Buch uber ein Medium zu veroffentlichen, das nach Meinung vieler Personen die papierbasierten Medien auf lange Sicht ersetzen wird, kann ein Buch durch eine W eb-basierte Veroffentlichung noch nicht vollstandig ersetzt werden. Ob dies nur an der Tatsache liegt, dab die Menschen es im allgemeinen eher gewohnt sind, Bucher zu lesen als Web-Inhalte zu verwenden, oder die greifbare Prasenz eines Buchs es sehr viel einfacher zu handhaben macht als ein abstraktes Netz von Informationsressourcen, ist dabei aber unklar (und stellt noch immer ein Thema dar, das bei Wissenschaftlern, die sich mit diesem Aspekt auseinandersetzen, sehr umstritten ist). Allerdings weist auch ein Buch einige Einschrankungen auf, die nicht vermieden werden konnen, von denen die zwei wichtigsten die sequentielle Darstellung der Informationen und die Verzogerung zwischen dem Schreiben dieses Buchs und seiner tatsachlichen Veroffentlichung im Buchhandel sind.

6 Einfi.ihrung Die sequentielle Darstellung wurde mit Querverweisen, einem Glossar und einem Index verbessert, die das Buch ntitzlicher machen, wenn es darum geht, Informationen oder Zusammenhange zwischen Konzepten und Technologien zu suchen. Die Verzogerung zwischen dem Schreiben und dem Erscheinen des Buchs wird so klein sein wie moglich, und es ist vorgesehen, den Inhalt des Buchs kontinuierlich zu aktualisieren, urn in ungefahr einem Jahr eine zweite Ausgabe zu veroffentlichen. Urn in dieser Hinsicht moglichst effektiv vorgehen zu konnen, ware es sehr schon, wenn der Leser seine Meinung kundtun wtirde. Eine solches Feedback kann in vielen verschiedenen Formen erfolgen, wie zum Beispiel durch Korrekturen, Aktualisierungen, Berichte tiber veraltete und aufkommende Konzepte, Anmerkungen zur Struktur und Abstraktheit dieses Buchs sowievorschlage beztiglich der Erweiterung von Glossar und Index. Bitte senden Sie all dies und mehr an dret@tik. ee. ethz. ch. Es ist jede Stellungnahme herzlich willkommen, und auf diese Weise wird die nachste Ausgabe eine Vielzahl von Verbesserungen erfahren.