HTML
HTML (англ. HyperText Markup Language — мова розмітки гіпертексту) — стандартизована мова розмітки документів для перегляду вебсторінок у браузері. Браузери отримують HTML документ від сервера за протоколами HTTP/HTTPS або відкривають з локального диска, далі інтерпретують код в інтерфейс, який відображатиметься на екрані монітора. Елементи HTML є будівельними блоками сторінок HTML. За допомогою конструкцій HTML, зображення та інші об'єкти, такі як інтерактивні форми, можуть бути вбудовані у візуалізовану сторінку. HTML надає засоби для створення структурованих документів, позначаючи структурну семантику тексту, наприклад заголовки, абзаци, списки, посилання, цитати та інші елементи. Елементи HTML окреслені тегами, написаними з використанням кутових дужок. Теги на кшталт В HTML можна вбудовувати програми, написані на скриптових мовах, наприклад JavaScript, які впливають на поведінку та вміст вебсторінок. Включення CSS визначає вигляд і компонування вмісту. World Wide Web Consortium (W3C), який супроводжує стандарти HTML та CSS, заохочує використання CSS над явним презентаційним HTML з 1997 року[1]. HTML впроваджує засоби для[1]:
Історія розвитку HTML1980 року фізик Тім Бернерс-Лі, який на той час був співробітником CERN, запропонував і прототипував систему INQUIRE, яка мала полегшити сумісне користування документами для дослідників CERN. 1989 року Бернерс-Лі запропонував впровадити на базі Internet гіпертекстову систему документів[2]. Вже наприкінці 1990 року він розробив HTML і написав браузер та серверне програмне забезпечення для запропонованої системи. У цьому ж році Тім Бернерс-Лі та Роберт Кайо, інженер інформаційних систем CERN, подали спільну заявку на фінансування проєкту, проте цей проєкт не був офіційно прийнятий CERN. Наприкінці 1991 року Тім Бернерс-Лі опублікував в Інтернеті перший загальнодоступний опис мови розмітки HTML, відомий як документ «HTML-теги» (HTML Tags)[3]. В ньому були описані 18 елементів первісної, відносно простої схеми розмітки HTML. Всі вони, за винятком тегу гіперпосилання, були жорстко підпорядкований внутрішньому SGML-формату документації CERN. Одинадцять із тих елементів ще й досі існують у HTML4[4]. Бернерс-Лі розглядав HTML як похідну мову від SGML, і в середині 1993 року Спеціальна Комісія Інтернет-розробок (IETF) офіційно визначила її такою, опублікувавши першу специфікацію HTML: «Hypertext Markup Language (HTML)» Internet-проєкт [Архівовано 15 квітня 2009 у Wayback Machine.], авторами якої були Тім Бернерс-Лі та Ден Конолі. Ця специфікація вже містила визначення типу документа, яке чітко зазначало граматику HTML[5]. Проєкт втратив силу через 6 місяців, але відзначився використанням для браузера NCSA Mosaic тегу додавання зображень, відобразивши філософію IETF щодо базування стандартів на успішних прототипах[6]. Так само пізніше в 1993 році в конкуруючому Інтернет-проєкті Дейва Раджетта «HTML+ (Hypertext Markup Format)», було запропоновано стандартизувати вже запроваджені браузерами сенсаційні на той час можливості, такі як таблиці та перші інтерактивні форми. На початку 1994 року, після того, як проєкти «HTML» і «HTML+» втратили свою силу, IETF створив Робочу групу HTML (HTML Working Group). 1995 року Робоча група HTML завершила роботу над документом «HTML 2.0» (опублікований як RFC із номером 1866), першою специфікацією, що мала бути використана як базовий стандарт для подальших вдосконалень HTML[6]. Версія 2.0 окреслювала чіткі відмінності між новим виданням специфікації та попередніми проєктами. Подальші розробки під заступництвом IETF зіштовхнулися з конкуруючими інтересами. З 1996 року специфікації HTML затверджувались Консорціумом W3C, враховуючи доповнення до розмітки, що впроваджувалися компаніями-розробниками браузерів. Тим не менш, у 2000 році HTML стала міжнародним стандартом (ISO/IEC 15445:2000). Остання специфікація HTML, опублікована W3C наприкінці 1999 року, має назву «HTML 4.01 Recommendation». Усі спірні питання та помилки цієї специфікації були офіційно визнані у списку друкарських помилок, опублікованому в 2001 році. ВерсіїТім Бернерс-Лі представив HTML в дослідницькому центрі CERN в Женеві 1989 року[7].
Документ HTMLДля поліпшення взаємодії SGML вимагає аби кожна похідна мова (HTML у тому числі) визначала свою кодову таблицю для кожного документа, яка складається з репертуару (перелік різноманітних символів) та позиції символу (перелік цифрових посилань на символи з репертуару). Кожен документ HTML — це послідовність символів із репертуару. HTML використовує найповнішу кодову таблицю UCS (англ. Universal Character Set — Універсальний Набір Символів). Проте однієї кодової таблиці недостатньо для того, щоб браузери могли правильно відтворювати документи HTML. Для цього браузерам потрібно «знати» специфічну кодову таблицю документа, яку автор має зазначати завжди в елементі РозміткаРозмітка в HTML складається з чотирьох основних компонентів: елементів (та їхніх атрибутів), базових типів даних, символьних мнемонік та декларації типу документа. Загальна структураДокумент HTML 5.2 складається з трьох частин:
Нижче наведено приклад загальної структури HTML-документа: <! DOCTYPE html>
<html>
<head>
<title>Назва</title>
</head>
<body>
<p> Hello world!</p>
</body>
</html>
Елементи![]() Елементи являють собою базові компоненти розмітки HTML. Кожен елемент має дві основні властивості: атрибути та вміст (контент). Існують певні настанови щодо кожного атрибута та контенту елемента, які треба виконувати задля того, щоб HTML-документ був визнаний валідним. У елемента є початковий тег, який має вигляд Деякі елементи, наприклад Елементи структурної розмітки застосовують для опису семантики тексту, іншими словами ці елементи описують призначення тексту свого контенту. Вони не зазначають ніякого спеціального (візуального) відтворення тексту, проте більшість браузерів мають стандартні стилі форматування для кожного елемента. Для подальшого стилізування тексту рекомендується використовувати Каскадні таблиці стилів (CSS). Наприклад:
Елементи візуальної розмітки застосовуються задля опису візуальних ефектів тексту, не зазначаючи при цьому функції тексту свого контенту. Остання чинна специфікація HTML 4.01 визначає більшість з цих елементів такими, що не рекомендується застосовувати у розмітці. Наприклад:
Елементи розмітки гіпертексту застосовуються задля з'єднання частин документа з іншими документами. Наприклад:
АтрибутиБільшість з атрибутів елемента являє собою пару «назва-значення», розділених між собою знаком рівності, та записаних у початковому тегу одразу після назви елемента. Значення атрибуту може бути оточене лапками (подвійними або одиничними), також, якщо значення атрибуту складається з певних символів, його можна не виділяти лапками зліва. Проте невзяття значення атрибутів у лапки вважається небезпечним кодом. На відміну від атрибутів виду «назва-значення», є певні атрибути, що впливають на елемент, назва яких лише з'явилась в початковому тегу (наприклад, атрибут Більшість елементів можуть мати будь-який з загальних атрибутів:
Базові типи данихОскільки HTML є похідною мовою від SGML, усі типи даних HTML ґрунтуються на базових типах даних SGML (наприклад, Кожен елемент має дві властивості — атрибути і вміст, які мають певні значення. Всі можливі значення цих двох властивостей прописуються відповідно до визначених у DTD типів даних. Нижче наведено кілька типів даних HTML:
МнемонікиІснують такі випадки, коли в документі потрібно використати якийсь символ, якого немає в обраній для документа кодовій таблиці. Для таких випадків можливо замінити символ на еквівалентне йому SGML-посилання на символ (мнемоніку). Розрізняють мнемоніки двох видів:
Визначають кодову позицію символу із таблиці кодів UCS. Наприклад:
Такі мнемоніки використовують псевдоніми замість кодів символів. Проте в HTML не визначені псевдоніми для кожного символу із UCS. Наприклад:
HTML 4.01 підтримує три різні набори мнемонік:
ВалідаціяТак само як і кожна мова, будь-яка комп'ютерна мова має свою власну граматику, словник і синтаксис. І кожен документ, написаний цією мовою, має дотримуватися цих правил. HTML використовує машинно-зчитуючу граматику, яка називається DTD, механізм, успадкований від SGML. Проте, так само як і тексти природної мови можуть містити граматичні помилки, документи, що використовують мови розмітки можуть не дотримуватись визначеної граматики. Процес перевірки документа на дотримання визначених мовою правил називають валідацією, а інструмент, який здійснює перевірку — валідатором. Документ, що пройшов цей процес без помилок, називають валідним. Згідно з цією концепцією, «валідація HTML розмітки» визначається як процес перевірки вебдокумента за правилами граматики (визначеними в DTD), на які він посилається із елемента Один із важливих принципів програмування: «Будьте консервативні в тому, що ви робите; будьте ліберальним в тому, що ви приймаєте»[11]. Браузери дотримуються другої частини цього принципу: вони приймають вебдокументи такими, які вони є, та намагаються відтворити їх на екрані, навіть якщо вони не використовують стандартний HTML. Зазвичай це означає, що браузер спробує «здогадатися» про те, що автор документа мав на увазі. Проблема полягає в тому, що різні браузери (або навіть різні версії одного браузера) зроблять різні припущення щодо одних і тих же нестандартних конструкцій, і навіть гірше: якщо HTML-код дуже відрізняється від стандарту, браузер безнадійно заплутається і безладно відтворить сторінку на екрані, або навіть аварійно закриється. Саме тому дотримуватися першої частини принципу належить авторам документа, шляхом перевірки своїх документів на дотримання стандарту. Найкращий інструмент для цього — валідатор HTML-розмітки. ПереглядДля перегляду HTML-розмітки документа можна використовувати будь-який текстовий редактор. Для перегляду документа, відтвореного за правилами HTML-розмітки, використовується браузер. Транспортування в мережіHTML документи можуть бути транспортовані так само як і будь-які інші файли (наприклад, за допомогою протоколів FTP, TCP), проте зазвичай вони транспортуються із сервера за допомогою протоколу HTTP або електронною поштою. HTTP/HTTPSВсесвітня павутина складається в основному з HTML-документів, переданих з вебсерверів для браузерів, використовуючи протокол HTTP. До того ж HTTP використовується для передачі зображень, звуків, відео та іншого супутнього контенту. Для правильного відтворення документа браузером окрім нього самого передається ще й інша інформація (метадані), у якій зазвичай міститься визначення MIME типу (наприклад, Електронна поштаБільшість графічних поштових клієнтів дозволяють використовувати підмножину елементів HTML (часто визначених стандартом як застарілі та не рекомендовані у розмітці), щоб забезпечити візуальне форматування тексту, роблячи неможливою семантичну розмітку тексту засобами поштового клієнта. Багато таких клієнтів містять у собі WYSIWYG-редактор HTML для складання повідомлень. Використання HTML у повідомленнях електронної пошти є спірним питанням через проблеми з сумісністю у різних поштових клієнтів; також HTML може допомогти приховати фішинг. Поточні напрямки розвитку і використання HTMLЗ моменту свого створення HTML і пов'язані з нею протоколи порівняно швидко отримали визнання. Однак у перші роки існування цієї мови розмітки не було жодних чітких стандартів. Хоча її творці спочатку і задумували HTML як семантичну мову, позбавлену презентаційних можливостей[12], її практичне використання із різними браузерами призвело до додавання багатьох презентаційних елементів і атрибутів в HTML. Останні стандарти, пов'язані з HTML, відображають зусилля з подолання хаотичного розвитку мови і створення раціональної основи для розробки як змістовних, так і виразних документів[13]. Щоб повернути HTML її роль семантичної мови, Консорціум Всесвітньої павутини розробив мови стилізування, такі як Каскадні таблиці стилів та Розширена мова таблиць стилів, аби перенести на них відповідальність за вигляд документа. У зв'язку з цим специфікація HTML повільно почала повертатися виключно до семантичних елементів. Семантичний HTMLСемантичний HTML — спосіб написання HTML, що віддає перевагу підкресленню смислу закодованої інформації радше за її подання (зовнішній вигляд). Ще з самого початку свого розвитку HTML мав у складі елементи семантичної розмітки[14], проте також мав і елементи презентаційної розмітки, такі як У 2001 році в статті про Семантичну павутину Тім Бернерс-Лі та інші навели приклади шляхів, за якими одного дня «агенти» інтелектуального програмного забезпечення зможуть автоматично прочесати Всесвітню мережу та відшукати, відфільтрувати та встановити співвідношення попередньо непов'язаних фактів на благо користувачів[16]. Такі агенти є незвичайними навіть зараз, але деякі з ідей Web 2.0, мешапів та сервісів порівняння цін стають все ближчими до реалізації. Основна відмінність між цими гібридними вебзастосунками та семантичним агентом, який згадується у статті Бернерса-Лі, полягає в тому, що нинішні шляхи збирання та гібридизації інформації, як правило, створені веброзробниками, які вже точно знають де шукати потрібну інформацію і яка в неї API-семантика. Важливими типом вебагента, який прочісує і читає вебсторінки автоматично, проте без знання того, що він може виявити, є пошуковий робот. Цей програмний агент залежить від семантичної ясності вебсторінок, які він знаходить, оскільки в ньому використовуються різні методи і алгоритми зчитування та індексації мільйонів вебсторінок в день, що забезпечує користувачів Інтернету пошуковими можливостями, без яких Всесвітня павутина була б корисна тільки на малу частину від її сучасних можливостей. Для того щоб пошукові роботи мали можливість оцінити значення фрагментів тексту, які вони знаходять в документах HTML, а також для тих, хто створює мешапи та інші гібридні агенти, так само як і для більш автоматизованих агентів, необхідно аби семантичні структури, які існують в HTML, набули широкого і рівномірного застосовування, щоб виділити зміст опублікованого тексту[17]. Елементи презентаційної розмітки є забороненими в останніх чинних специфікаціях HTML і XHTML, а також і в проєкті HTML 5. Добрий семантичний HTML також покращує доступність вебдокументів. Наприклад, коли браузер або аудіо-браузер може правильно встановити структуру документа, він не буде витрачати час користувачів з вадами зору на прочитання повторюваної або неактуальної інформації, якщо вона була розмічена правильно. Проєкт специфікації HTML 5HTML 5 — це наступна значна переробка стандарту HTML. Робота над створенням специфікації, відома під назвою «Web Applications 1.0», розпочата WHATWG в червні 2004 року[18]. HTML 5 спрямований на скорочення використання заснованих на плагінах RIA-технологій, таких як Adobe Flash, Microsoft Silverlight і Sun JavaFX, хоча досягнення цієї мети займе багато років[19]. Специфікація HTML 5 зводиться до надання семантичного рівня мови розмітки і пов'язаних з ними семантичних рівнів API для сценаріїв задля авторизації доступних сторінок у Всесвітній павутині, починаючи від статичних документів і закінчуючи динамічними застосунками[20]. HTML 5 вводить ряд нових елементів і атрибутів, які відображають типову архітектуру сучасних вебсторінок. Деякі з них є семантичними замінами загально-використовуваних блочних ( Наразі специфікація має статус «у розробці», та, як очікується, матиме його ще протягом трьох років, хоча розробка частин HTML 5 буде завершена і реалізована в браузерах ще до того, як специфікація отримає остаточний статус Рекомендації W3C[21]. XHTML
Ймовірно, HTML — найуспішніша мова розмітки документів у всьому світі[22]. Проте, коли світові представили XML, було вирішено створити нову версію HTML, похідну від XML. Адже з XML-заснованим HTML інші XML-мови могли би включати частини XHTML, а XHTML-документи могли б включати частини інших мов розмітки. Також автори вебдокументів могли б скористатися перевагами редизайну задля очищення деяких з найбільш неохайних частин HTML, а також додати деякі з нових необхідних функцій, таких як покращені форми[22]. Нижче зазначені деякі переваги використання XHTML замість HTML. Якщо документ є лише чистим XHTML 1.0 (не включає інші мови розмітки), то різниця між XHTML та HTML майже не помітна. Проте, оскільки стають доступними все більше і більше XML-інструментів (наприклад, XSLT для перетворення документів), переваги використання XHTML стають все помітнішими. Наприклад, XForms дозволяє досить просто керувати редагуванням документів XHTML (або будь-яких інших видів документа XML). Семантичні вебзастосунки також зможуть скористатися документами XHTML за своїми потребами[23]. Якщо документ містить більш ніж просто XHTML 1.0 (наприклад, у документі використовуються мови розмітки MathML, SMIL, або SVG), тоді переваги використання XHTML значно помітніші, адже HTML не підтримує такі комбінації мов розмітки в одному документі. Див. також
Примітки
Посилання
Валідатори HTML-розмітки
Підручники
Специфікація W3C
|