Hypertext Markup Language
Hypertext - Übertext
Markup Language - Auszeichnungssprache
Beschreibung eines "web"s mit "hypertext documents" die von "browsern" betrachtet werden
Quelle: CERN: A short history of the Web
Quelle: Wikipedia: HTML
"geöffnete" Tags müssen bis auf wenige Ausnahmen geschlossen werden!
Beispiele
NICHT
Tags müssen ineinader verschachtelt werden!
Ein Tag, das in einem anderen Tag geöffnet wird muss geschlossen werden, bevor das erste Tag geschlossen werden kann.
./code-examples/1_hello-world/hello-world.html
Benötigtes Setup: Text-Editor & Browser
Tip: Syntax-Check: https://validator.w3.org/nu/
(Check by text input)
Tip: Erzeugung von Fließtext: http://www.loremipsum.de/
Texteditor - Empfehlungen
Sind diese Tags alle gleichwertig?
Zugelassene Attribute sind abhänging vom Tag.
Einige Attribute sind global, also für alle Tags zulässig.
Betonung, hohe Wichtigkeit,
Markierung:
<em>semantische</em>
Auszeichnung
kursive Schrift,
Fettdruck:
<b>optische</b> Auszeichnung
Der verwendete Zeichensatz wird durch meta-Tag im Seitenkopf angegeben, z.B.:
"utf-8"
Ermöglicht: €$§²³
oder Umlaut äöüß
Aber: Wie stelle ich reservierte
Zeichen dar?
z.B. > oder <
Oder Zeichen die ich nicht einfach eingeben
kann?
z.B. ©♥™
Kann durch Attribute eingestellt werden!
Benötigtes Setup: Text-Editor & Browser
Benötigtes Setup: Text-Editor & Browser
<a href="https://www.karlsruhe.dhbw.de/">Ein Verweis auf die DHBW-Karlsruhe</a>
Identifiziert und lokalisiert eine Ressource, über die zu verwendende Zugriffsmethode und den Ort der Ressource in Computernetzwerken.
<Schema>:<schema-spezifisch>
http://<Server>:<Port>/<Pfad>?
<Anfrage>#<Fragment>
http://<Server>:<Port>/<Pfad>?
<Anfrage>#<Fragment>
<Schema>://<Server>:<Port>/<Pfad>?
<Anfrage>#<Fragment>
<Schema>://<Server>:<Port>/<Pfad>?
<Anfrage>#<Fragment>
<Schema>://<Benutzer>:<Passwort>@<Server>:<Port>...
Steuer- und Sonderzeichen müssen kodiert werden
Codierung erfolgt byteweise durch '%' und Angabe des Zeichencodes (hexadezimal, zweistellig)
Unicode-Zeichen via '%u' und vierstelliger Hexadezimalzahl
Beispiele:
Präfixe relativ zur aktuellen URL
Beispiele ausgehend von "https://example.com/pfad/datei.html#anfang"
Präfixe relativ zum aktuellen Pfad
Beispiele ausgehend von "/pfad/datei.html"
Zweck: An bestimmte Stelle auf einem (sehr) langen Dokument springen.
Fragment: anhängen von #<Fragment> an die URL
Anker: id-Attribut des a-Tags
Beispiele:
https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-cite-element
https://de.wikipedia.org/wiki/HTML5#Standarddarstellung
Deklariert den Link als Download (anstatt Anzeige)
Definiert die Verweisart (relationship)
hreflang und type nur eine Vorindikation
Open Systems Interconnection model (OSI) beschreibt sieben Schichten (Layer)
Standardisiert als RFC 2068 in 1997.
Protokoll zum Übertragen von Daten
über ein Netzwerk
Striktes Request/Response Protokoll in einem
Client-Server Model
Zustandsloses Protokoll
Anfragen und Antworten bestehen aus
Kopf (header) und Inhalt (content)
GET /index.html HTTP/1.1
Host: example.com
HTTP/1.1 200 OK
Server: Apache/1.3.29 (Unix) PHP/4.3.4
Content-Length: 123456
Content-Type: text/html; charset=utf-8
<!DOCTYPE ...
Anfrage kommt mit Inhalt (Body)
POST /test HTTP/1.1
Host: example.com
Content-Type: text/plain
Content-Length: 32
This is my awesome request body
Anfrage:
POST /wiki/Spezial:Search HTTP/1.1
Host: de.wikipedia.org
Content-Type: application/x-www-form-urlencoded
Content-Length: 24
search=Katze&go=Artikel
Antwort:
HTTP/1.1 302 Found
Location: http://de.wikipedia.org/wiki/Katze
Client (Browser) schickt eine weitere GET-Anfrage um "Location" abzurufen (und anzuzeigen)
Standardisiert als RFC 7540 in 2015.
Verbesserungen gegenüber HTTP/1.1
Nicht alle Browser unterstützen alle neuen HTML5 Formular-Möglichkeiten
Tip - Erzeugung von Fließtext: http://www.loremipsum.de/
Pflicht: formenctype="multipart/form-data" und method="post", ansonsten nur Dateiname
HTML4 transitional doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/transitional.dtd">
Muss mindestens einen Titel beinhalten:
<title>Titel des Dokuments</title>
Charset muss definiert werden, z.B.:
<meta charset="UTF-8">
(Kann auch per HTTP-Header gesetzt werden)
Mobile Websiten setzen den viewport via:
<meta name="viewport" content="width=device-width, initial-scale=1">
Gerät (Moto G4) - Breite: 360px - Paragraph: 380px
Gerät (Moto G4) - Breite: 360px - Paragraph: 380px
Weitere Elemente:
Tipp: mit regex101.com reguläre Ausdrücke testen