HTML (Hypertext Markup Language) - язык разметки (гипертекст), применяемый для создания электронных документов, содержащих форматирование: заголовки, таблицы, изображения, списки и т.п. Используется преимущественно во Всемирной паутине для оформления веб-страниц.
Важно отметить, что HTML не является полноценным (полным по Тьюрингу) языком программирования. В нем отсутствуют условные переходы, циклы, функции.
Принципы HTML
Основой HTML являются т.н. тэги - синтаксические конструкции, составляемые посредством "угловых скобок", роль которых играют математические символы "больше" и "меньше". Тэги заключают в себе фрагмент текста, который нужно тем или иным образом оформить.
Тэги (хотя и не все) имеют открывающую и закрывающую части. Закрывающая отличается наличием слэша (косой черты) после первой угловой скобки. Внутри открывающего тэга могут быть размещены т.н. атрибуты - пары "ключ/значение", разделенные знаком равенства. Значение атрибута может содержать любые буквенно-цифровые символы, в том числе на национальных языках, а также знаки препинания и пробелы. Имена же атрибутов могут состоять только из латинских букв и цифр (допускается использование дефиса).
При рендеринге (прорисовке) html-документа множественные пробелы, отступы и переносы строк игнорируются и никак не влияют на внешний вид (за исключением особо оговоренных случаев). Эти средства форматирования исходного html-текста служат лишь для удобства его написания.
Названия тэгов выбраны так, чтобы их было легко запомнить любому пользователю, знающему основы английского языка:
p
- параграф;br
- break, принудительный разрыв строки;b
- bold, выделение жирным текстом;img
- image, рисунок;ol
- ordered list, нумерованный список;table
- таблица;div
- division, раздел и т.п.
Рисунок 1. Некоторые html-тэги. Автор24 — интернет-биржа студенческих работ
История HTML
Для понимания особенностей HTML важно знать историю этого языка, поскольку многие его возможности появились в результате жесткой конкурентной борьбы между корпорациями.
Автором HTML, равно как и других составляющих Всемирной паутины (протокола http, концепций браузера, веб-сервера) является Тим Бернерс-Ли, физик CERN.
В 1991 г. он изложил идею создания сети World Wide Web (WWW) в рамках Интернета, самостоятельно разработав прототипы необходимого программного обеспечения и правил составления документов на основе известного еще с конца 1960-х гг. языка SGML.
Изначально спецификация HTML описывала лишь пару десятков тэгов, из которых многие к настоящему времени уже вышли из употребления. В наши дни количество используемых тэгов превышает 100.
HTML задумывался как язык с низким порогом вхождения, т.е. освоить его, по замыслу автора, должен был быть в состоянии среднестатистический пользователь персонального компьютера.
Война браузеров
Простота веб-технологий привела в 1990-х гг. к взрывообразному росту Всемирной паутины . Это вылилось, помимо огромного прогресса в распространении информации, в такое негативное явление, как Война браузеров. Независимая компания Netscape Communications, разрабатывавшая первый коммерчески успешный браузер Netscape Navigator, столкнулась с интересами софтверного гиганта Microsoft, доминировавшего на тогдашнем рынке операционных систем со своим продуктом Windows-95. Компания Билла Гейтса попыталась вытеснить конкурента своим продуктом Internet Explorer. В версию HTML для этого браузера Microsoft добавила некоторые тэги, не поддерживавшиеся в стандартной спецификации. Так же повели себя и конкуренты. Это привело к тому, что некоторые сайты некорректно отображались в Internet Explorer, некоторые же, напротив, искажались при открытии в Netscape Navigator.
Поскольку Netscape Navigator распространялся как коммерческий продукт, а Internet Explorer предлагался в составе ОС Windows бесплатно, Microsoft временно победила в этой борьбе, но в начале 2000-х гг. на рынке появились новые игроки. Netscape вернулся в качестве свободно распространяемого продукта Mozilla Firefox. Существенную долю рынка занял независимый браузер Opera. Собственным браузером Safari обзавелась компания Apple. Наконец, поисковый гигант Google также вступил в борьбу за пользователей с браузером Google Chrome.
Рисунок 2. Динамика популярности браузеров. Автор24 — интернет-биржа студенческих работ
Дополнительными факторами нестабильности в Войне браузеров стали:
- появление официальных стандартов HTML, XHTML, привнесших в веб новые возможности, которые каждый из участников гонки норовил интерпретировать в собственных интересах;
- появление технологий, нацеленных на придание веб-страницам дополнительной интерактивности (Java Applets, Microsoft ActiveX, Adobe Flash), также привнесших разночтения в стандарты обработки веб-страниц.
Начиная с 2000-х гг. в развитии HTML усиливается роль международного независимого консорциума W3C, взявшего на себя роль арбитра. После многосторонних консультаций было решено разработать стандарт HTML5, в котором, во-первых, были бы учтены новые потребности отрасли, во-вторых - прописаны однозначные интерпретации спорных моментов.
Ведущим производителям браузеров было рекомендовано доработать свои продукты таким образом, чтобы они поддерживали новый стандарт. HTML5 был успешно внедрен в 2014 г., что фактически положило конец Войне браузеров.
Современное состояние HTML
Стандарт HTML5 добавил в спецификацию новые возможности:
- группу семантических тэгов, позволяющих не столько оформлять текст визуально, сколько разбить его на смысловые разделы:
header
,footer
,article
,section
; - новые атрибуты, позволяющие отображать числа и числовые интервалы, даты, время, календари;
- тэги для работы с векторной и растровой графикой
svg
иcanvas
; - тэги для поддержки мультимедийных ресурсов
audio
иvideo
.
Всё это позволило отказаться от посторонних браузерных плагинов, дополнений и расширений (Java Applets, ActiveX, Flash), обеспечить высокий уровень интерактивности, а также существенно повысить безопасность веб-страниц.
Кроме того, из спецификации были исключены устаревшие тэги, такие, как applet
, center
, frame
и др.
Рисунок 3. Фрагмент кода на html5. Автор24 — интернет-биржа студенческих работ
HTML5 предоставил также расширенные возможности для интеграции веб-страниц со стилевыми таблицами (CSS) и программами, написанными на JavaScript. `