HTML

hipertekstowy język znaczników

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

HTML
Ikona formatu
ilustracja
Rozszerzenia pliku

.html, .htm

Typ MIME

text/html

Producent

(nie istnieje) W3C lub producenci przeglądarek

Ostatnia wersja

HTML 5

Typ

tekstowy, język znaczników

Strona internetowa

Opis wstępny edytuj

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 edytuj

Początki edytuj

W 1980 fizyk Tim Berners-Lee, pracujący dla ośrodka naukowo-badawczego CERN, stworzył prototyp hipertekstowego systemu informacyjnegoENQUIRE. 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[1]. 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 World Wide Web (W3)[2].

Pierwsza specyfikacja edytuj

Pierwsza, publicznie dostępna, specyfikacja języka HTML, nazwana HTML Tags (znaczniki HTML), została zamieszczona w Internecie przez Bernersa-Lee w 1991[3][4]. 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[5].

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(inne języki)Hypertext Markup Language (HTML) Internet-Draft (szkic) – zawierającą opis gramatyki w postaci SGML Document Type Definition (definicja typu dokumentu)[6]. 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[7]. Podobnie Dave Raggett(inne języki) pod koniec 1993 w swoim szkicu HTML+ Discussion Document sugerował standaryzację już zaimplementowanych znaczników np. związanych z tworzeniem tabel i formularzy[8].

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[9].

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[10].

Historia wersji edytuj

Wersje HTML edytuj

lipiec 1993: Hypertext Markup Language, szkic opublikowany przez IETF[11].

listopad 1995: opublikowany przez IETF jako Request for Comments:

Ostatecznie, wszystkie elementy zostały uznane za przestarzałe/historyczne przez RFC 2854 ↓ 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[12]. 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[13]. 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].

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

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[16]. 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[17]:

  • 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[18]. Ostatnia errata została wydana 12 maja 2001[19].

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[20].

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

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

Wersje XHTML edytuj

Osobny artykuł: 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[23].
  • 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[24].
  • 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[25].
  • XHTML 5, który jest aktualizacją XHTML-a 1.x, jest zdefiniowany wraz z HTML-em 5 w szkicu HTML 5[26].

Współczesność edytuj

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ą[27]. 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[28].

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

Komponenty języka HTML edytuj

Język HTML składa się z kilku kluczowych komponentów[32]:

  • znaczników (i ich atrybutów),
  • typów danych,
  • referencji znakowych,
  • odwołań w postaci encji,
  • deklaracji typu dokumentu.

Znaczniki (tagi) edytuj

Osobny artykuł: tag (znacznik).

Atrybuty edytuj

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[26] (np. ismap atrybut dla znacznika img[33]).

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[34][35].

Encje i referencje znakowe edytuj

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

Typy danych edytuj

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.[37]

Deklaracja typu dokumentu edytuj

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[38].

Przykład HTML 5 edytuj

<!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 edytuj

Istnieją dwie kategorie podziału języka HTML 4:

  1. HTML bazowany na języku SGML i HTML bazowany na języku XML (XHTML)[39].
  2. Strict, Transitional i Frameset[40][41][42].

Zobacz też edytuj

Przypisy edytuj

  1. Longer Bio for Tim Berners-Lee, www.w3.org [dostęp 2016-11-11].
  2. Tim Berners-Lee, The original proposal of the WWW, HTMLized, www.w3.org [dostęp 2016-11-12].
  3. Tags used in HTML, www.w3.org [dostęp 2016-11-12].
  4. Tim Berner-Lee, www-talk from September to October 1991: Re: status. Re: X11 BROWSER for WWW, lists.w3.org, 29 września 1991 [dostęp 2016-11-12].
  5. Index of the HTML 4 Elements, www.w3.org [dostęp 2016-11-12].
  6. Tim Berners Lee, www-talk from November to December 1991: Re: SGML/HTML docs, X Browser, lists.w3.org, 9 grudnia 1991 [dostęp 2016-11-12].
  7. IETF and the RFC Standards Process, www.faqs.org [dostęp 2016-11-12] [zarchiwizowane z adresu 2016-07-03].
  8. HTML+ and HTML, [w:] HTML+ Discussion Document [online], www.w3.org, 8 października 1993 [dostęp 2018-08-10].
  9. T. Berners-Lee, D. Connolly, Hypertext Markup Language - 2.0, RFC 1866, IETF, listopad 1995, DOI10.17487/RFC1866, ISSN 2070-1721, OCLC 943595667 (ang.).
  10. WebPlatform WG Publication Status (PubStatus), www.w3.org [zarchiwizowane 2016-04-02].
  11. Tim Berners-Lee, Daniel Connolly, A sample HTML instance, www.w3.org, czerwiec 1993 [dostęp 2016-11-12].
  12. Dave Raggett, HyperText Markup Language Specification Version 3.0, www.w3.org, 25 września 1995 [dostęp 2016-11-12].
  13. Extensions to HTML 3.0, 29 marca 2006 [dostęp 2016-11-12] [zarchiwizowane z adresu 2006-03-29].
  14. Arnoud Engelfriet, Introduction to Wilbur, htmlhelp.com [dostęp 2016-11-12].
  15. Dave Raggett, HTML 3.2 Reference Specification, www.w3.org, 14 stycznia 1997 [dostęp 2016-11-12].
  16. Eric W. Sink, HTML Working Group of the IETF (at W3C), www.w3.org [dostęp 2016-11-12].
  17. Dave Raggett, Arnaud Le Hors, Ian Jacobs, HTML 4.0 Specification, www.w3.org, 18 grudnia 1997 [dostęp 2016-11-12].
  18. Dave Raggett, Arnauld Le Hors, Ian Jacobs, HTML 4.01 Specification, www.w3.org, 24 grudnia 1999 [dostęp 2016-11-12].
  19. HTML 4 Errata, www.w3.org [dostęp 2016-11-12].
  20. ISO/IEC 15445:2000(E) ISO-HTML, 21 grudnia 2010 [dostęp 2016-11-12] [zarchiwizowane z adresu 2010-12-21].
  21. Ian Hickson, David Hyatt, HTML 5, www.w3.org, 11 stycznia 2008 [dostęp 2016-11-12].
  22. HTML5, www.w3.org [dostęp 2017-02-13] (ang.).
  23. XHTML 1.0: The Extensible HyperText Markup Language (Second Edition), www.w3.org, 26 stycznia 2000 [dostęp 2016-11-12].
  24. Shane McCarron, Masayasu Ishikawa, XHTML™ 1.1 – Module-based XHTML – Second Edition, www.w3.org, 23 listopada 2010 [dostęp 2016-11-12].
  25. Jonny Axelsson i inni, XHTML™ 2.0, www.w3.org, 16 grudnia 2010 [dostęp 2016-11-12].
  26. a b HTML 5.2: 1. Introduction, w3c.github.io [dostęp 2016-11-12].
  27. XHTML™ 2.0, www.w3.org [dostęp 2016-11-12].
  28. Lachlan Hunt, HTML5 Reference, dev.w3.org [dostęp 2016-11-12].
  29. HTML is the new HTML5. Blog WHATWG. [zarchiwizowane z tego adresu]. (ang.).
  30. Jeff Jaffe: W3C and WHATWG to work together to advance the open Web platform. W3C, 2019-05-28. [dostęp 2023-09-06]. (ang.).
  31. HTML Living Standard. WHATWG. (ang.).
  32. Steve Faulkner i inni, HTML 5.1: 1. Introduction, www.w3.org, 1 listopada 2016 [dostęp 2016-11-11].
  33. Objects, Images, and Applets in HTML documents, www.w3.org [dostęp 2016-11-12].
  34. The global structure of an HTML document, www.w3.org [dostęp 2016-11-19].
  35. Global attributes – HTML5. www.w3.org. [dostęp 2017-08-31]. (ang.).
  36. Character entity references in HTML 4, www.w3.org [dostęp 2016-11-27].
  37. Basic HTML data types, www.w3.org [dostęp 2016-11-30].
  38. HTML 4 Document Type Definition, www.w3.org [dostęp 2016-11-30].
  39. XHTML 1.0: The Extensible HyperText Markup Language (Second Edition), www.w3.org [dostęp 2016-11-30].
  40. HTML 4 Transitional Document Type Definition, www.w3.org [dostęp 2016-11-30].
  41. HTML 4 Frameset Document Type Definition, www.w3.org [dostęp 2016-11-30].
  42. HTML 4 Changes, www.w3.org [dostęp 2016-11-30].

Linki zewnętrzne edytuj