Форматы файлов
Что такое HTML? История, парсинг и DOM
HTML - язык разметки, который описывает структуру веб-страниц и лежит в основе почти любого сайта. Рассказываем о его истории, о том, как браузеры его обрабатывают, и о тонкостях превращения HTML в документы.
Автор: Hemen Dönüştür Editör EkibiОпубликовано: 7 мин чтения

Почти все, что вы видите в вебе, включая эту страницу, написано на HTML. HTML (HyperText Markup Language) - не язык программирования, а язык разметки, который описывает структуру документа: это заголовок, это абзац, это ссылка, это таблица. И HTML нужен не только для сайтов. Он встречается в шаблонах писем, справочной документации, выгруженных отчетах и документах, «сохраненных как веб-страница». В этой статье расскажем об истории HTML, о том, как браузер его читает и выводит на экран, о частых проблемах и о том, что учитывать при конвертации файлов HTML в Word или PDF.
Что такое HTML?
HTML - это язык в виде простого текста, который размечает содержимое с помощью тегов. Теги записываются в угловых скобках, и большинство из них образуют элемент из открывающего и закрывающего тега:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sample page</title>
</head>
<body>
<h1>Hello</h1>
<p>This paragraph contains a <a href="https://example.com">link</a>.</p>
</body>
</html>
Раздел <head> содержит сведения о странице (кодировку символов, заголовок, таблицы стилей), а <body> хранит видимое содержимое. Внешний вид добавляется с помощью CSS, а поведение с помощью JavaScript. При таком разделении HTML описывает, что представляет собой содержимое, CSS отвечает за то, как оно выглядит, а JavaScript за то, что оно делает.
Краткая история
HTML родился как часть проекта World Wide Web, который Тим Бернерс-Ли предложил в CERN в 1989 году. Его первый браузер работал на компьютере NeXT в 1990 году. Первые версии языка были не столько формальным стандартом, сколько списком тегов, задокументированным в CERN. Ключевые вехи с тех пор:
- Ноябрь 1995 года, HTML 2.0: RFC 1866 за авторством Тима Бернерса-Ли и Дэна Коннолли впервые определил HTML как формальный стандарт.
- Январь 1997 года, HTML 3.2: версия, которую W3C официально одобрил как общеотраслевую спецификацию.
- 24 декабря 1999 года, HTML 4.01: долгие годы оставался основной спецификацией веба; 27 марта 2018 года W3C официально пометил его как замененный.
- 28 октября 2014 года, HTML5: W3C опубликовал HTML5 в статусе Рекомендации. Вместе с ним были стандартизированы видео, аудио, семантические элементы разделов и точно определенный алгоритм парсинга.
- 28 мая 2019 года, единый стандарт: W3C и WHATWG, сообщество, созданное производителями браузеров, подписали меморандум о взаимопонимании. Согласно ему, HTML и DOM развиваются в основном в WHATWG как «живой стандарт» (Living Standard) без номеров версий.
Поэтому «HTML5» сегодня фактически означает «актуальный HTML»; официальной спецификацией является постоянно обновляемый HTML Living Standard.
Насколько он распространен? По статистике W3Techs на 15 октября 2026 года, 97,8% сайтов с известным языком разметки используют HTML. Тот же источник сообщает, что 99,1% сайтов с известной кодировкой символов используют UTF-8.
Как браузер обрабатывает HTML?
От других форматов документов HTML отличает то, что даже плохо написанные документы интерпретируются одинаково во всех браузерах. Для этого HTML Living Standard определяет подробную модель парсинга:
- Определение кодировки: сначала браузер должен превратить поступающие байты в символы. Он по порядку проверяет BOM, кодировку, объявленную в HTTP-заголовке сервера, и объявление
<meta charset>в первых 1024 байтах документа; если ничего не найдено, он делает обоснованное предположение. - Токенизация: конечный автомат разбивает текст на токены: открывающие теги, закрывающие теги, комментарии, DOCTYPE и символы.
- Построение дерева: токены обрабатываются согласно режимам вставки, например «in body» или «in table». Парсер ведет стек открытых элементов и исправляет неправильно вложенные теги по заданным правилам.
- DOM: в результате получается дерево объектов, называемое Document Object Model (DOM). К этому дереву применяется CSS, а JavaScript читает и изменяет его.
Спецификация прямо говорит, что обработка ошибок парсинга четко определена. Например, если написать <div/>, HTML проигнорирует косую черту в конце, и следующие элементы окажутся внутри этого div. Незакрытый <p> автоматически закрывается, когда появляется следующий блочный элемент. Такая терпимость позволяет вебу работать, несмотря на бесчисленные несовершенные страницы, но она же означает, что любой инструмент, превращающий HTML в формат документа, должен следовать тем же правилам.
Где используется HTML?
- Сайты и веб-приложения: каркас любой веб-страницы.
- Электронная почта: оформленные письма и рассылки пишутся на HTML.
- Документация: справочные страницы, документация к программам и сайты, сгенерированные из Markdown.
- Электронные книги: формат EPUB упаковывает содержимое в виде документов XHTML.
- Отчеты и выгрузки: многие приложения формируют отчеты в HTML, и результат команды Word «Сохранить как веб-страницу» тоже является HTML.
Сильные и слабые стороны
| Сильные стороны | Слабые стороны |
|---|---|
| Открывается в браузере на любом устройстве | Внешний вид зависит от внешних CSS, шрифтов и изображений |
| Открытый, бесплатный и постоянно обновляемый стандарт | Слабо поддерживает печатные понятия вроде страниц и полей |
| Гибкая верстка, подстраивающаяся под размер экрана | Трудно переносить одним файлом (изображения хранятся отдельно) |
| Семантическая структура для доступности и поисковых систем | Требует осторожности, если содержит JavaScript |
| Простой текст, поэтому хорошо работает с контролем версий | Хуже PDF подходит для фиксации окончательной версии |
Какие программы открывают HTML?
HTML отображает любой браузер, включая Chrome, Firefox, Safari и Edge. Для редактирования исходного кода достаточно редактора кода вроде Visual Studio Code или любого текстового редактора. Microsoft Word и LibreOffice Writer умеют открывать файлы HTML и редактировать их как документы, хотя сложная верстка на CSS при этом упрощается.
Частые проблемы и их решение
Специальные символы отображаются искаженно
Кодировка страницы не указана или указана неверно. Добавьте <meta charset="utf-8"> в начало <head> и убедитесь, что файл действительно сохранен в UTF-8. Если сервер объявляет другую кодировку, исправьте и HTTP-заголовок.
В сохраненной странице нет изображений или стилей
Файлы HTML часто подключают изображения и CSS из отдельных файлов или по адресам в интернете. Если перенести только файл .html, эти ссылки ломаются. Используйте в браузере вариант сохранения «Веб-страница полностью» или встройте изображения в документ.
Страница ломается при печати
Верстка, рассчитанная на экран, может не помещаться на бумаге. Правила @media print и настройка размера бумаги и полей через @page в CSS заметно улучшают печатный результат.
Советы по конвертации файлов HTML
В нашем конвертере файлы HTML загружаются на наш сервер и удаляются в течение 30 минут. При чтении файла кодировка определяется по BOM, затем по объявлению <meta charset>, затем по самому содержимому; если ничего не объявлено, а страница не в UTF-8, она читается как Windows-1254 (устаревшая турецкая кодовая страница), поэтому для старых страниц в Windows-1251 или KOI8-R обязательно указывайте <meta charset>. Сохраняется содержимое <body> документа и блок <style> страницы, а фрагменты HTML без тега <body> обрабатываются как есть.
- HTML в PDF работает в браузерном движке: применяются стили для печати, учитывается размер страницы, заданный через
@page(иначе A4), и печатаются фоновые цвета. В целях безопасности JavaScript не выполняется, а изображения, шрифты и таблицы стилей из интернета не загружаются; используются только ресурсы, встроенные в документ (data: URI). Если вам нужны изображения в результате, встройте их в HTML. - HTML в Word с помощью LibreOffice переносит в DOCX заголовки, списки, таблицы, выравнивание и встроенные изображения. У сложной верстки на CSS (flex, grid) нет аналога в Word, поэтому она упрощается.
- HTML в Markdown идеально подходит, чтобы перенести веб-страницу или справочную статью в репозиторий документации: заголовки, выделение, списки, таблицы, ссылки и блоки кода сохраняются, а информация о стилях отбрасывается.
- В обратную сторону Word в HTML встраивает изображения внутрь файла и создает единый самодостаточный документ HTML с объявленной кодировкой, поэтому символы с диакритикой и кириллица правильно отображаются в браузере.
Часто задаваемые вопросы
Является ли HTML языком программирования?
Нет. HTML - язык разметки: он описывает структуру содержимого, но в нем нет циклов, условий или вычислений. Чтобы добавить странице поведение, используется JavaScript.
Чем HTML5 отличается от HTML?
HTML5 - название основной версии, ставшей Рекомендацией W3C в 2014 году. С 2019 года HTML развивается в WHATWG без номеров версий как «HTML Living Standard». На практике HTML5 и HTML сегодня означают одно и то же.
Как открыть файл HTML?
Дважды щелкните по нему, и он откроется в браузере по умолчанию. Чтобы увидеть исходный код, откройте файл в текстовом редакторе или воспользуйтесь в браузере командой «Просмотр кода страницы».
Почему при конвертации HTML в PDF пропадают изображения?
Если изображения загружаются по адресу в интернете, наш конвертер в целях безопасности их не скачивает. Встройте изображения в HTML как data: URI или сначала конвертируйте документ в Word и добавьте изображения там.
Безопасно ли открывать файл HTML?
HTML может содержать JavaScript, поэтому будьте осторожны с файлами из неизвестных источников. HTML-страницы, которые приходят во вложениях писем и просят ввести пароль, - распространенный прием фишинга.
Источники
- WHATWG: HTML Living Standard, Parsing HTML documents
- Меморандум о взаимопонимании W3C и WHATWG (28 мая 2019 года)
- Пресс-релиз W3C: HTML5 Recommendation (28 октября 2014 года)
- W3C: HTML 4.01 Specification
- IETF RFC 1866: Hypertext Markup Language - 2.0
- Дэйв Рэггетт: A history of HTML
- W3Techs: статистика использования языков разметки на сайтах


