Hypertext

Das Konzept des Hypertexts beschreibt die Verknüpfung von Dokumenten in einem digitalen Netzwerk über Hyperlinks.  Informationen in einem Netzwerk, z. B. dem Internet, können so in einer logischen Struktur von Objekten und Knoten (z. B. Texte) miteinander verbunden werden.  Hypermedia ist eine Kombination aus Hypertext und Multimedia: es handelt sich im Prinzip um Hypertext-Knoten mit multimedialem Inhalt: also statt Texte beispielsweise Videos oder Audio-Dateien. Eine Hypermedia-Datei kann durch Anklicken eines  Hyperlink-Textes aufgerufen werden oder durch den hypermedialen Ansatz des Elastic-Charles Projektes am MIT Media Lab: eine Hypermedia-Datei wird aufgerufen durch Anklicken eines kleinen, sich bewegenden Icons  (Micon, Moving Icon).                                                 
Siehe auch:    Hyperlink   Memex   Semantische-Suchmachine   


  Es wurden weitere Begriffe gefunden:


  Datei-Endung-HTM

*.HTM Hypertext Markup Language (HTML)                                                         
Siehe auch:    Dateierweiterungen   

  Hypertext-Coffee-Pot-Control-Protocol

Hypertext Coffee Pot Control Protocol (HTCPCP) ist ein Protokoll, das zur Fernsteuerung und -überwachung von Kaffeemaschinen dient :-) Es wurde im RFC-2324 (Requests For Comments) definiert.  Es wurde auch einmal tatsächlich implementiert! In den Requests for Comments wird öfter auch mal Schabernack getrieben. So wurde in RFC-1149 ein Internet Protocol over Avian Carriers (IPoAC)  (Vogelbasiertes Internet-Protokoll) vorgeschlagen. Das IPoAC ist ein drahtloses Netzwerkprotokoll für Punkt-zu-Punkt Verbindungen. Es findet vor allem in Metropolitan Area Networks Verwendung. Geringe Wartungs- und Produktionskosten, die  Avian Carrier sind selbstreproduzierbar. Das IPoAC verfügt über Selbstheilungskräfte, intrinsische Kollisionsvermeidung und eine Wegfindungsfunktion, die ohne Router auskommt. Die Avian Carrier können sogar Würmer aufspüren und vernichten und aus Spam  und Würmern Energie produzieren. Nachteil sind die langen Ping-Antwortzeiten. Deswegen eignet es sich nicht unbedingt für Online-Realtime-Egoshooter-Multiplayer Spiele, eher für Online Schach ohne Uhr. Ausserdem läuft es ständig Gefahr von dem  HAWK-System abgefangen zu werden. In RFC-2795 wurde die Unendlich-Viele Affen-Theorie diskutiert: wie kann eine unendliche Anzahl von Affen koordiniert werden, so dass die Werke von Shakespeare entstehen?                                               
Siehe auch:    Requests-for-Comments   Jonathan-Postel   HTTP   RFC-822   Java   

  PHP
Funktionsdiagramm zeigt die Ausführung der serverseitigen Scriptsprache PHP auf dem Webserver, der Browser-Client empfängt nur HTML. Funktionsdiagramm zeigt die Ausführung der serverseitigen Scriptsprache PHP auf dem Webserver, der Browser-Client empfängt nur HTML.
PHP Hypertext Preprocessor. PHP ist eine Serverscriptsprache. Wenn ein Browser eine PHP-Seite von einem PHP-fähigen Server abruft, interpretiert der Server den PHP-Code und sendet den resultierenden HTML-Code an den Browser.  Der Browser empfängt nur HTML- und nicht PHP-Code. PHP arbeitet oft mit der Open Source Datenbank MySQL zusammen. Dies ist in der Bilderserie dokumentiert, auch ein Insertion Sort Algorithmus in PHP ist dabei.  Auch die objektrelationale Datenbank (ORDBMS) PostgreSQL kann durch PHP angesteuert werden. Eine Serversoftware, die oft eingesetzt wird um PHP und MySQL zu unterstützen ist der Apache-HTTP-Server  oder der IIS (Microsoft Internet Information Server bzw. Internet Information Services). Für PHP gibt es vorgefertigte Bibliotheken und Module, wie z. B. PEAR (PHP Extension and Application Repository).  In PHP können Templates verwendet werden. Ausserdem existiert ein Vielzahl von PHP-Template-Engines: z. B. Smarty oder vLIB.  Dadurch werden dem Entwickler Standard-Aufgaben abgenommen. Es gibt Basisobjekte und Pakete, die in den Bibliotheken wiederverwendet werden und Redundanzen in der Softwareentwicklung vermeiden.  PEAR ist Open Source und kann auf dem Web-Server installiert werden. Um PHP sicherer zu machen wurde das Hardened PHP Projekt von Stefan Esser ins Leben gerufen. Hardened PHP ist ein Patch, der auf dem Webserver  installiert wird und auch Schutz für den Zend Memory Manager sowie Zend Linked Lists bietet. Weiterhin soll Hardened PHP vor internen Exploits durch speziell formatierte Strings schützen (http://www.hardened-php.net/).  Suhosin ist ein weiter fortgeschrittenes Schutzpaket für PHP-Scripts. Suhosin schützt den Webserver und den Anwender vor Fehlern in PHP-Scripts und im PHP-Kern.

Zend Technologies 
Die Zend-Engine ist ein PHP-Parser und -Compiler von Zend Technologies Ltd. Zend Technologies Ltd. wurde von Zeev Suraski und Andi Gutmans in Israel gegründet. Die Zend Engine übernimmt die Codeaufbereitung: sie compiliert den PHP-Code vor  der Ausführung um Fehler rechtzeitig abzufangen. Nur fehlerfreie Seiten werden von der Zend-Engine an die PHP-Ausführungsschicht übergeben.  Der Zend Optimizer optimiert den PHP-Code und wird zur Ausführung von PHP-Code verwendet, der mit dem Zend Guard verschlüsselt wurde.  Das Zend Studio ist eine Entwicklungsumgebung (Integrated Development Environment, IDE) für PHP. Das Zend Studio wurde für die Java Plattform entwickelt und ist für Windows, Linux und Mac OS X ausgelegt.

Superglobals 
Allgemein kann empfohlen werden, die Globalen Variablen (register_globals) auf "Off" zu setzen. Um die PHP Scripte sicherer zu machen, empfiehlt es sich weiterhin, externe Variablen mit den Superglobals abzufangen ($_POST, $_GET, $_Server, $_ENV,  $_REQUEST, $_SESSION, $_FILES, $_COOKIE, $GLOBALS, $php-errormsg). Siehe auch: http://de3.php.net/reserved.variables. Um eine Manipulation von Variablen zu verhindern sollte man Plausibilitätsprüfungen für die Variablen einbauen. 

Konfiguration und XAMPP
Ab der Version 5 von PHP kann die Registrierung der langen von PHP vordefinierten Arrays ($HTTP-POST-VARS, $HTTP_GET_VARS usw.) mit der Konfigurationsoption register_long_arrays abgeschaltet werden.  Die Administration von Einstellungen erfolgt beim Apache-HTTP-Server in der php.ini und der config.inc.php sowie bei MySQL in der my.cnf und beim MySQL-Administrationsprogramm phpMyAdmin ebenfalls in der Datei config.inc.php.  Die PHP und MySQL Einstellungen kann man sich durch die Funktion phpinfo(); anzeigen lassen. Diese ist auch als Menüpunkt im XAMPP bzw. WAMPP, LAMPP oder MAMPP Paket zu finden: diese Pakete enthalten den Apache Server,  PHP, MySQL (und Perl) und lassen sich leicht aufspielen und administrieren. Sie sind erhältlich für Windows, Linux und Mac OS X. XAMPP ist zu finden, z. B. bei www.apachefriends.org.

PHP Optimierung
Um bei umfangreichen  PHP-Scripts und Projekten Neuübersetzungen zu vermeiden, kann man OpCode-Caches verwenden. OpCode-Caches speichern den erzeugten PHP Code und müssen als Erweiterung eingebunden werden.  Die Performance kann bei PHP auch durch die "Autoloading" Methode gesteigert werden. Mit der Funktion __autoload können längere Klassendefinitionen eingebunden werden und müssen nicht über eine lange Liste von include-Anweisungen geladen werden.  Bekannte OpCode-Caches sind der Zend-Optimizer, eAccelerator, IonCube-Accelerator und der Alternative PHP Cache. Ausser dem Zend Optimizer sind das alles Open Source und Freeware-Programme.  PHP wird seit Version 4 unter der PHP License lizenziert. Bis Version 3 war PHP unter der GPL lizenziert, die Zend-Engine (der neue PHP-Parser) ist jedoch nicht GPL-fähig. PHP kann unter der PHP License frei heruntergeladen und verwendet werden.  Das GIMP-Toolkit (GTK+), eine freie Komponentenbibliothek, stellt für PHP eine Grafik-API zur Verfügung. PHP ist prozedural angelegt, verfügt jedoch auch über Komponenten der Objektorientierten Programmierung  (OOP). Objekt-Variablen werden seit Version 5 (Zend Engine 2) nur noch als Referenz auf das Objekt und nicht mehr als das Objekt selbst abgelegt. Weiterhin ergänzt wurden Destruktoren und Klassen-Eigenschaften (Private, Protected, Public).  Die meisten Bibliotheken sind in PHP noch prozedural angelegt. Seit Version 5 ist die DOM-API objektorientiert. PHP 5.1 bietet zudem mit den PHP Data Objects (PDO) eine OOP-Erweiterung die den einheitlichen Zugriff auf  unterschiedliche SQL-Datenbanken (MySQL, PostgreSQL, SQLite) ermöglicht. Eine einheitliche Unicode-Unterstützung soll mit der Zend Engine ab PHP Version 6 erfolgen. Threads und Namensräume fehlen in PHP. Auch förmliche Variablen-Deklarationen  können in PHP nicht erzwungen werden. Mit PHP Version 5.2 wird eine verbesserte Speicherverwaltung bereitgestellt, sowie Filter-Erweiterungen, JSON (JavaScript Object Notation), ZIP-Archiv-Unterstützung, und eine objektorientierte  Datumserweiterung mit DataTime und DataTimeZone.

JSON
JSON ist ein sprachenunabhängiges Format zum Datenaustausch zwischen Anwendungen. JSON wird in einer Textform notiert und ist für Rechner und menschliche Anwender einfach  lesbar. Datenstrukturen werden mit JSON kompakt notiert und kommen im Vergleich zu XML mit wesentlich weniger Overhead aus. JSON ist ein Datenaustauschformat und implementiert in PHP, Java, C, C#, JavaScript, Perl, Smalltalk, Python und Ruby.
Siehe auch:    Apache-HTTP-Server   MySQL   Webserver   PEAR   Script   Perl   Apache-Tomcat   Open-Source   JSON   Objektorientierte-Programmierung

  SHTML

Server-parsed HyperText Markup Language (SHTML).  Bei SHTML handelt es sich um eine HTML-Datei, welche SSI-Befehle (Server Side Includes) enthält. Das SHTML-Dokument wird vor der Übergabe der Werte an den Browser gelesen, ausgewertet und geändert.  SSI ist eine serverseitige Scriptsprache und wurde ursprünglich als Apache-Modul mod_ssi entwickelt. Dies bot die Möglichkeit, HTML mit dynamischen Elementen zu versorgen. SSI wird heute auch vom Internet-Information-Server von Microsoft  (Microsoft Internet Information Services) unterstützt. SHTML-Dateien werden mit der Dateiendung .shtml oder .ssi versehen.  Um die Verwendung von SSI dem Client zu verbergen kann X-Bit-Hack verwendet werden: ist diese Funktion auf dem Webserver aktiviert, dann werden Dateien, bei denen das Execution Bit gesetzt ist, vom SSI-Interpreter ausgewertet.                                                 
Siehe auch:    Server-Side-Includes   HTML   Webserver   Apache-HTTP-Server   Script   PHP   Apache-Tomcat   

  HTML

Hypertext Markup Language. HTML ist eine beschreibende Sprache, mit der man Webseiten für das Internet erstellen kann. Es können beispielsweise Texte, Typos, Grafiken oder Hyperlinks dargestellt werden.  Auch Multimedia-Elemente wie Musik-Files, Videos oder Animationen lassen sich einbinden. HTML wird clientseitig vom Browser interpretiert. Für den Browser gibt es auch Plug-Ins,  um bestimmte Musik - oder Videosequenzen darzustellen, wie beispielsweise Flash (Adobe, ehemals Macromedia) oder Silverlight (Microsoft: Windows Presentation Foundation/Everywhere).

Aufbau eines HTML-Dokumentes 
Ein HTML-Dokument gliedert sich in einen Kopfbereich (Head) und den eigentlichen Inhalt (Body). Im Kopfteil (Head) von HTML-Dokumenten befinden sich u.a. ein Tag für den Titel der Seite (welches für das  Ranking von modernen Suchmaschinen ausgewertet wird) sowie Metainformationen für die Suchmaschinen (Meta Tags: für z. B. Beschreibung des Inhalts der Seite,  Angabe von Keywords, unter denen die Seite bei Suchmaschinen gefunden werden soll, Herausgeber der Seite (Publisher), Sprache oder wann die Robots der Suchmaschinen die Seite wieder besuchen sollen um sie zu indexieren),  Verweise auf ein CSS-Stylesheet oder Angaben über den verwendeten HTML bzw. XML Standard des W3C (World Wide Web Consortium). Die Meta-Tags haben jedoch bei den modernen und grösseren Suchmaschinen  an Bedeutung verloren. Google z. B. ermittelt das Ranking von Webseiten mehr nach dem PageRank-Algorithmus. Auch JavaScript kann im Kopfteil eines HTML-Dokumentes eingebettet werden,  entweder als Datei oder Code. Kleinere JavaScript-Elemente kann man auch im Body-Bereich direkt einbinden. Das W3C-Konsortium hat HTML bis zur Version 4.01 entwickelt und will es durch XHTML (eXtensible HyperText Markup Language)  ersetzen.

DTD
Dem HTML-Dokument kann eine Dokumenttyp-Deklaration (Document Type Definition, DTD) vorangestellt werden. Beispiel für eine HTML-DTD:  <!DOCTYPE HTML PUBLIC "- // W3C// DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ TR/ html4/ loose.dtd">.  Die DTD ist optional und wird eingesetzt um bestimmte HTML-Standards einzubinden.

HTML-Dokumenttypen
Es gibt 3 Sorten von HTML-Dokumenten: Strict, Transitional und Frameset.  Bei Strict werden nur bestimmte Grundelemente und -attribute festgelegt, viele Elemente zur grafischen Aufbereitung fehlen, diese sollen per Stylesheet eingebunden werden, Texte und    Bei Transitional-Dokumenten soll es möglich sein, standardkonforme HTML-Dokumente zu verwenden, die noch keine Trennung von Strukturierung und Design aufweisen. Ältere Elemente zur Darstellung von Text und Typo werden verwendet.  Bei Frameset-Dokumenten werden Elemente und Attribute zur Darstellung von Frames deklariert. XHTML 1.0 und XHTML 2.0 Dokumente führen die Strict-Variante weiter. Elemente der Transitional und  Frameset Varianten entfallen und sollen durch CSS oder JavaScript ersetzt werden. XFrames wurde vom W3C vorgschlagen um Frames zu ersetzen. XFrames besitzen eine eindeutige URI-Deklaration,  so dass das Problem der Nicht-Adressierbarkeit von Framesets gelöst werden soll. Weitere Probleme von Framesets, die durch XFrames gelöst werden sollen, sind:  der Zurück-Button führt nicht immer zum gewünschten Ergebnis, die Aktualisieren-Funktion arbeitet nicht immer korrekt (man erhält manchmal ein anderes Ergebnis als vorher), Problem der Deep-Links (findet man eine Teil eines Framesets, z. B. den  Hauptframe über eine Suchmaschine, so stellt der Browser oft nur diesen Hauptframe ohne z. B. den Navigationsframe oder andere Teile des Framesets dar), Sicherheitsprobleme treten auf, wenn nicht ersichtlich ist, dass unterschiedliche Frames von  unterschiedlichen Quellen stammen u.a. XFrames werden noch nicht in XHTM 2.0 aufgenommen. 

HTML-Technologien
HTML kann neben CSS und Javascript durch weitere Technologien wie  Dynamic HTML (DHTML) oder Ajax ergänzt werden. Eine Weiterentwicklung von HTML und XHTML ist XML.             
Siehe auch:    HTML-Spezifikation   DHTML   XML   XHTML   Hypertext   Hyperlink   Windows-Presentation-Foundation   Silverlight   Memex   W3C

  XHTML

XHTML (eXtensible HyperText Markup Language) ist eine Weiterentwicklung des HTML 4.0 Standards des World Wide Web Consortiums (W3C). Dabei wurde HTML 4.0 in XML 1.0 neu formuliert: XHTML wurde also nicht auf  Basis von SGML definiert, wie das bei HTML der Fall war, sondern auf Basis von XML. Bei XML handelt es sich um eine leichter zu parsende Teilmenge von SGML, denn XML ist strenger definiert als SGML.  Der XHTML 1.0-Standard enthält alle Bestandteile von HTML 4.01. Dadurch ist eine gewisse Kompatibilität zu HTML 4.01 gegeben, da eine Umformung leicht möglich ist und auch Browser, die kein XHTML implementiert haben, solche Dokumente darstellen  können. Mit XHTML soll jedoch der Datenaustausch verbessert werden und die automatisierte Datenverarbeitung ermöglicht werden. XHTML-Parser sind daher gegenüber Syntaxfehlern weniger tolerant als HTML-Parser.  HTML Parser trugen noch der Tatsache Rechnung, dass viele HTML-Dokumente im Internet nicht fehlerfrei waren und trotzdem einigermassen korrekt dargestellt werden sollten. 

Dokumenttypen
XHTML hat wie HTML verschiedene Dokumenttypen wie z. B. XHTML Transitional 1.0 oder XHTML Strict 1.0. XHTML wird in Zukunft keine Präsentationselemente mehr enthalten. XHTML Transitional 1.0 enthält noch  grafische Elemente wie das font-Element oder das strong-Element. XHTML Scrict 1.0 enthält diese Präsentationselemente nur noch zu Zwecken der Rückwärtskompatibilität zu  XHTML Transitional. Bei XHTML Basic und XHTML 2.0 werden Präsentationselemente durch Stylesheets (CSS) eingebunden.  Auf der Grundlage der XHTML-DTDs und den im XML-Schema definierten Modulen sind XHTML-Dokumenttypen modularisierbar, d.h. man kann XHTML-Dokumenttypen mit anderen DTDs von XML-basierten Sprachen  mischen und zusammenbauen. Beispiele sind XHTML Basic, MathML, SVG (Scalable Vector Graphics) oder SMIL (Synchronized Multimedia Integration Language). 

XHTML 2.0 und Unterschiede zu HTML
Der neuerer Standard XHTML 2.0 wird nicht mehr kompatibel sein zu HTML 1.1. Wichtige Änderungen sind  das vereinfachte Einbinden multimedialer Inhalte sowie das Auslagern von HTML und XML Funktionen in andere XML-Sprachen: XForms (Formulare), XML Events  (Scripte einbinden) oder XFrames (für Framesets, Frames). XFrames wurde vom W3C-Konsortium vorgeschlagen, jedoch noch nicht in den XHTML 2.0 Standard integriert.  Unterschiede zu HTML sind ausserdem: Start- und End-Tag müssen immer beide angegeben werden, Attributwerte müssen immer mit Anführungszeichen angegeben werden, bei Booleschen Attributen  muss der Attributname als Attributwert angegeben werden (Bsp: <input type="checkbox" checked="checked"/>), Elemente und Attribute dürfen nur klein geschrieben werden,  das <html> Wurzel-Element muss immer die Deklaration des Namensraumes für XHTML enthalten: <html xmlns="http://www.w3.org/1999/xhtml">.  Beispiel für eine XHTML Dokumenttyp-Deklaration: <! DOCTYPE html PUBLIC "- //W3C // DTD XHTML 1.0 Transitional// EN" "http://www.w3.org/ TR / xhtml1 /DTD/xhtml1- transitional.dtd">. 

MIME-Type
Der MIME-Type (Multipurpose Internet Mail Extensions)  spielt eine Rolle bei der HTML-Kompatibilität und bei der Verarbeitung des Dokumentes vom Browser. XHTML Dokumente sollen nach Empfehlung des RFC 3236 den MIME-Type  application/xhtml+xml aufweisen. Wenn das XHTML-Dokument rückwärtskompatibel ist kann es gemäss RFC 2854 und dem XHTML 1.0 Standard mit dem HTML MIME-Type text/html gesendet werden.  Ab XHTML 1.1 ist keine vollständige Kompatibilität zu HTML mehr vorgesehen, so dass das W3C-Konsortium empfiehlt, den MIME-Type application/xhtml+xml zu verwenden.                 
Siehe auch:    HTML   XML   SGML   MIME   DTD   Browser   Parser   Script   W3C   

  Hyperlink

Mit Hilfe von Hyperlinks (oder einfach Link engl.: Verbindung) kann im Internet navigiert werden. Hyperlinks stellen die Verbindung zwischen Webseiten oder zwischen verschiedenen Seiten innerhalb einer Webseite dar. Sie sind eine Verbindung zwischen  Hypertext- oder Hypermedia-Dokumenten. Wenn sich der Zeiger der Maus über einem Hyperlink befindet, so verwandelt er sich in eine Hand.                                                       
Siehe auch:    Hypertext   HTML   Browser   Memex   XML   Internet