HTML

HTML (, hipertekstowy język znaczników) – język znaczników stosowany do tworzenia dokumentów hipertekstowych.

Opis wstępny 
HTML pozwala opisać strukturę informacji zawartych wewnątrz strony internetowej, nadając odpowiednie znaczenie semantyczne poszczególnym fragmentom tekstu – formując hiperłącza, akapity, nagłówki, listy – oraz osadza w tekście dokumentu obiekty plikowe, na przykład multimedia, lub elementy baz danych, na przykład interaktywne formularze danych.

HTML umożliwia określenie wyglądu dokumentu w przeglądarce internetowej. Do szczegółowego opisu formatowania akapitów, nagłówków, użytych czcionek i kolorów, zalecane jest wykorzystywanie kaskadowych arkuszy stylów (w skrócie CSS).

Historia

Początki 
W 1980 fizyk Tim Berners-Lee, pracujący dla ośrodka naukowo-badawczego CERN, stworzył prototyp hipertekstowego systemu informacyjnego – ENQUIRE. System wykorzystywano do organizowania i udostępniania dokumentów związanych z badaniami naukowymi. Rewolucyjność pomysłu polegała na tym, że użytkownik, posługując się odnośnikami, mógł z jednej lokalizacji przeglądać dokumenty fizycznie znajdujące się w innych miejscach na świecie. W 1989 Berners-Lee i inżynier oprogramowania CERN Robert Cailliau przedstawili równolegle dwie propozycje hipertekstowych systemów informacyjnych opartych na sieci Internet. Oba projekty cechowała podobna funkcjonalność. Rok później opracowali wspólną propozycję zaakceptowaną przez CERN – projekt WorldWideWeb (W3).

Pierwsza specyfikacja 
Pierwsza, publicznie dostępna, specyfikacja języka HTML, nazwana HTML Tags (znaczniki HTML), została zamieszczona w Internecie przez Bernersa-Lee w 1991. Zawierała 22 znaczniki, tworzące początkowy, prosty szkielet HTML-a. Trzynaście z tych elementów istnieje do tej pory w specyfikacji HTML 4.

HTML został napisany w oparciu o język SGML, jednak nie posiadał formalnej definicji w SGML-u. Sytuacja zmieniła się w połowie 1993, kiedy organizacja IETF opublikowała pierwszą propozycję specyfikacji języka HTML autorstwa Bernersa-Lee i Dana Connolly – Hypertext Markup Language (HTML) Internet-Draft (szkic) – zawierającą opis gramatyki w postaci SGML Document Type Definition (definicja typu dokumentu). Opierając się na tym dokumencie twórcy przeglądarek eksperymentowali z HTML-em modyfikując atrybuty istniejących już znaczników oraz dodając całkowicie nowe. Szkic wygasł sześć miesięcy później, ale był znany z obsługiwania specyficznych dla przeglądarki NCSA Mosaic znaczników, służących do wstawiania obrazków. Fakt ten odzwierciedlał filozofię IETF bazowania przyszłych standardów na prototypach, które odniosły sukces. Podobnie Dave Raggett pod koniec 1993 w swoim szkicu HTML+ Discussion Document sugerował standaryzację już zaimplementowanych znaczników np. związanych z tworzeniem tabel i formularzy.

Po wygaśnięciu szkiców HTML i HTML+ na początku 1994 organizacja IETF wydzieliła HTML Working Group, która w 1995 stworzyła HTML 2.0 – pierwszą oficjalną specyfikację języka HTML, traktowaną jako standard i podstawę przyszłych implementacji kolejnych wersji HTML-a. Specyfikacja HTML 2.0, opublikowana w 1996 jako Request for Comments, zawierała pomysły zarówno ze szkicu HTML jak i HTML+. "HTML 1.0" nigdy nie istniał. Oznaczenie 2.0 zostało nadane w celu odróżnienia nowej specyfikacji od wcześniejszych szkiców.

Dalszy rozwój HTML-a pod pieczą IETF przeciągał się ze względu na konflikt interesów. Od 1996 specyfikacje HTML rozwijane były z udziałem komercyjnych producentów oprogramowania przez organizację World Wide Web Consortium (W3C). W 2000 HTML stał się międzynarodowym standardem (ISO/IEC 15445:2000). Ostatnia specyfikacja języka HTML to opublikowana w 1999 przez W3C – HTML 4.01. Jej błędy zostały poprawione przez erratę opublikowaną w 2001.

Historia wersji

Wersje HTML 
lipiec 1993: Hypertext Markup Language, szkic opublikowany przez IETF.

listopad 1995: opublikowany przez IETF jako Request for Comments:
 
 uzupełniony przez  (upload plików za pomocą formularza) tego samego miesiąca
  (tabele) maj 1996
  (mapy odsyłaczy po stronie klienta) sierpień 1996
  (internacjonalizacja) styczeń 1997.
Ostatecznie, wszystkie elementy zostały uznane za przestarzałe/historyczne przez  w czerwcu 2000.

Standard HTML 3.0 został przedstawiony IETF przez Dave’a Raggeta i W3C w kwietniu 1995. Zawierał znaczną część funkcjonalności HTML+ Raggetta, na przykład obsługę tabel, oblewanie tekstem obiektów, wyświetlanie skomplikowanych wyrażeń matematycznych. Mimo kompatybilności z HTML 2.0 był zbyt złożony (jak na owe czasy), aby go zaimplementować. Producenci przeglądarek optowali tylko za częścią nowego standardu, ale zaimplementowali inne znaczniki. Z uwagi na brak obsługi ze strony przeglądarek prace nad wersją 3.0 zostały przerwane.

HTML 3.1 nigdy nie został oficjalnie zaproponowany. Światło dzienne ujrzała za to kolejna wersja HTML 3.2 (nazwa kodowa: Wilbur), w której zrezygnowano z wielu rozwiązań zastosowanych w HTML 3.0 na rzecz nowych znaczników i atrybutów wykorzystywanych już przez przeglądarki Netscape i Mosaic.

14 stycznia 1997: HTML 3.2, opublikowany jako rekomendacja W3C.

IETF także nie miała szansy zatwierdzić HTML 3.2. Pracująca nad tą wersją grupa HTML Working Group została zamknięta we wrześniu 1996. Ostatecznie wersja 3.2 została opublikowana jako pierwsza rekomendacja W3C w 1997. Obsługa wyrażeń matematycznych zapoczątkowana w HTML 3.0 po kilku latach doczekała się własnego standardu – MathML .

18 grudnia 1997: HTML 4.0, opublikowany jako rekomendacja W3C. Zaoferowany w trzech typach:
 Strict, w którym używanie elementów uznanych za przestarzałe jest zabronione.
 Transitional, w którym używanie elementów uznanych za przestarzałe jest dopuszczalne.
 Frameset, w którym dopuszczone są głównie elementy związane z ramkami.

24 kwietnia 1998: HTML 4.0 z drobnymi poprawkami został powtórnie opublikowany bez zmiany wersji.

24 grudnia 1999: HTML 4.01, opublikowany jako rekomendacja W3C. Oferuje te same typy, które oferował HTML 4.0. Ostatnia errata została wydana 12 maja 2001.

HTML 4.01 oraz ISO/IEC 15445:2000 są najnowszymi i najbardziej aktualnymi wersjami standardu HTML.

15 maja 2000: HTML ISO/IEC 15445:2000 "ISO HTML", opublikowany na bazie HTML 4.01 Strict, jako międzynarodowy standard ISO/IEC.

22 stycznia 2008: HTML 5, opublikowany przez W3C jako szkic („Working Draft”).

28 października 2014: HTML 5, opublikowany jako rekomendacja W3C.

Wersje XHTML 

 XHTML 1.0, opublikowany 26 stycznia 2000 jako rekomendacja W3C; w późniejszym czasie skorygowany i opublikowany ponownie 1 sierpnia 2002. Oferuje trzy typy z HTML-a 4.0 oraz 4.01. Przystosowany do standardu XML, czego skutkiem są dodatkowe restrykcje.
 XHTML 1.1, opublikowany 31 maja 2001 jako rekomendacja W3C. Bazuje na XHTML 1.0 Strict, zawiera jednak pewne korekty. Może być dostosowywany poprzez użycie modułów opisanych w Modularyzacji XHTML, opublikowanej 10 kwietnia 2001 jako rekomendacja W3C.
 XHTML 2.0 przez dłuższy czas figurujący jako szkic a obecnie całkowicie porzucony. XHTML 2.0 nie był kompatybilny z XHTML 1.x, dlatego też można go było scharakteryzować jako nowy język powstały z inspiracji XHTML-em a nie traktować go jako uaktualnienie XHTML-a 1.x.
 XHTML 5, który jest aktualizacją XHTML-a 1.x, jest zdefiniowany wraz z HTML-em 5 w szkicu HTML 5.

Współczesność 
Podsumowując, HTML 4.01 uporządkował różne niekompatybilne implementacje tego języka w jedną, spójną specyfikację bazującą formalnie na SGML-u. XHTML 1.0 przeniósł tę specyfikację na nowy grunt – standard XML. Kolejna wersja, XHTML 1.1, korzysta z modularnej natury XML-a, dzieląc specyfikację na wiele segmentów.

XHTML 2.0 w stosunku do 1.0 wnosi wiele radykalnych zmian i zrywa z kompatybilnością wsteczną. Jednak ta droga rozwoju została ostatecznie uznana za nietrafioną i rozwój XHTML 2.0 został zarzucony na rzecz HTML 5, który jest pierwszą wersją, która nie jest zgodna z SGML.

Publikacją standardu HTML zajmowały się niezależnie organizacje: W3C oraz WHATWG. Jeszcze przed ogłoszeniem oficjalnej rekomendacji HTML5 przez W3C, WHATWG zmieniło nazwę swojego standardu na HTML Living Standard. 28 Maja 2019, organizacja W3C ogłosiła że WHATWG przejmie rolę publikacji standardów HTML oraz DOM. Od tamtej pory HTML Living Standard publikowany przez WHATWG jest jedynym oficjalnym standardem języka HTML.

Komponenty języka HTML 
Język HTML składa się z kilku kluczowych komponentów:
 znaczników (i ich atrybutów),
 typów danych,
 referencji znakowych,
 odwołań w postaci encji,
 deklaracji typu dokumentu.

Znaczniki (tagi)

Atrybuty 
Większość atrybutów elementów składa się z par nazwa-wartość, rozdzielonych znakiem "=", zawartych w znaczniku otwierającym elementu, po jego nazwie. Wartość może być zawarta w pojedynczych lub podwójnych cudzysłowach lub bez nich (o ile wartość nie zawiera spacji). W przeciwieństwie do atrybutów w postaci par nazwa-wartość istnieją atrybuty mające wpływ na element poprzez samo ich zawarcie w znaczniku otwierającym (np. ismap atrybut dla znacznika img).

Atrybut id nadaje elementowi unikatowy identyfikator. Może on zostać użyty przez arkusze stylów do sprecyzowania wyglądu tego elementu lub przez skrypty np. do zmiany jego zawartości. Atrybut class służy do sklasyfikowania elementów dla celów prezentacyjnych.

Encje i referencje znakowe 
Począwszy od wersji 4.0, HTML definiuje listę 252 encji, pozwalających na zapisanie określonych znaków za pomocą specjalnych stałych.

Typy danych 
HTML definiuje kilka typów danych, wprowadzanych m.in. jako wartości elementów lub atrybutów. Są to m.in. skrypty (script data), dane arkuszy stylów (stylesheet data), identyfikatory, nazwy, adresy URI, liczby, jednostki miary długości, języki, deskryptory mediów, kolory, kodowania znaków, data i czas, itp.

Deklaracja typu dokumentu 
Aby uaktywnić definicję typu dokumentu (DTD) do celów poprawnej walidacji utworzonej strony, a także w celu uniknięcia działania przeglądarek w trybie quirks, dokument powinien rozpoczynać się deklaracją typu dokumentu (nieformalnie DOCTYPE). DTD, do którego odwołuje się sekcja DOCTYPE, zawiera gramatykę i zasady wykorzystywania znaczników w dokumencie podporządkowanemu określonemu DTD. Większość graficznych przeglądarek korzysta z sekcji DOCTYPE, a także innych dodatkowych informacji, warunkując tryb renderowania danej strony.

Przykład dla HTML 4:
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Od HTML 5:
 <!DOCTYPE html>

Powyższa deklaracja odwołuje się do wersji Strict DTD specyfikacji HTML 4.01, która nie posiada znaczników prezentacyjnych, takich jak <font>, wykorzystując w tym celu kaskadowe arkusze stylów oraz znaczniki <span> i <div>. Walidatory kodu odczytują DTD w celu poprawnego sparsowania dokumentu i przeprowadzenia jego walidacji.

Dodatkowo HTML 4.01 obsługuje jeszcze wersje Transitional i Frameset. Wersja Transitional została stworzona do wykorzystywania w potrzebie używania elementów i atrybutów prezentacyjnych, natomiast wersja Frameset obsługuje dokumenty wykorzystujące mechanizm ramek.

Przykład HTML 5 
<!DOCTYPE html>
<html lang="pl">
<head>
    <title>Przykładowa strona</title>
    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="plik.css">
</head>
<body>
    <h1>Przykładowa strona</h1>
    <p>Zobacz też: <a href="https://pl.wikipedia.org">Wikipedia, wolna encyklopedia</a>.
</body>
</html>

Kategoryzacja podziałów języka HTML 4 
Istnieją dwie kategorie podziału języka HTML 4:
 HTML bazowany na języku SGML i HTML bazowany na języku XML (XHTML).
 Strict, Transitional i Frameset.

Zobacz też 

 odwołania znakowe SGML
 edytor HTML
 marquee
 znacznik meta

Przypisy

Linki zewnętrzne 
 Specyfikacja HTML 4.01 – W3C 
 Walidator poprawności kodu HTML 
 
 
 
 
 

 
Standardy ISO
Webmastering