Отметь меня, отметь меня
HTML не был первым языком разметки, который использовался в ЦЕРНе. ченые уже обменивались документами, написанными в стиле SGML-Standard Generalized Markup Language (стандартном обобщенном языке разметки). Тим Бернерс-Ли взял существующий в ЦЕРНе словарь SGML и использовал его в качестве отправной точки для своего нового языка разметки. И снова имело смысл опираться на то, с чем люди уже были знакомы, а не создавать что-то с нуля. Первая версия HTML содержала в общей сложности 21 элемент. Многие из этих элементов мы знаем и сегодня – TITLE, P, UL, LI, H1, H2 и т.д., и, конечно же, элемент A. Другие элементы канули в прошлое – ISINDEX, PLAINTEXT, LISTING, HP1, HP2 и т.д., а также собственный элемент NEXTID, который имел смысл только при использовании компьютера под управлением операционной системы NeXTSTEP. Именно эту ОС использовал Тим Бернерс-Ли, когда создал HTTP, HTML и первый в мире веб-браузер, названный непонятно как WorldWideWeb, который работал только на машинах NeXT.
Для демонстрации возможностей и совместимости Интернета был необходим кроссплатформенный браузер, который мог бы установить и использовать любой человек, независимо от того, какую операционную систему он использует. Задача создания этого браузера легла на студента ЦЕРН по имени Никола Пеллоу. Она создала браузер (Line Mode Browser). Он был простым, но мощным. Он не обладал таким уровнем интерактивности, как браузер WorldWideWeb, но тот факт, что его можно было запустить на любой машине, означал, что Интернет теперь доступен каждому.
Крупный план экрана с зеленым текстом на черном фоне. Браузер Line Mode Browser в действии.
Как только в мире появилось два веб-браузера, важными вопросами стали совместимость и обратная совместимость.
Например, что должен делать браузер Line Mode , когда он встречает непонятный ему элемент HTML, такой как NEXTID?
Ответ можно найти в скудной документации, которую Тим Бернерс-Ли написал для своей первоначальной коллекции под названием HTML Tags. Под заголовком " NEXTID " он написал:
Программное обеспечение браузера может игнорировать этот тег.
Это безобидное на первый взгляд решение имело далеко идущие последствия для будущего Всемирной паутины.
Тим Бернерс‐Ли, улыбается. Сэр Тим Бернерс-Ли. Фотография Пола Кларка. Лицензировано по лицензии Creative Commons Attribution-ShareAlike 4.0 International.
Рекомендации
Information Management: A proposal by Tim Berners-Lee
Telecom Maps by TeleGeography
As We May Think by Vannevar Bush
Глава 2: Материалы
Рискуя научить
бабушку сосать яйца, я бы хотел, чтобы вы подумали о том, что происходит, когда браузер разбирает элемент HTML. Возьмите, например, элемент абзаца с каким-то текстом внутри него. Есть открывающий Р-тег, закрывающий Р-тег, и между этими тегами есть текст.
<p>some text</p>
Веб-браузер, столкнувшись с этим элементом, отобразит текст между открывающим и закрывающим тегами. Теперь рассмотрим, что произойдет, если тот же веб-браузер встретит элемент, который он не распознает.
<marklar>some more text</marklar>
И снова браузер отображает текст между открывающим и закрывающим тегами. Здесь интересно то, что браузер не делает. Браузер не выдает ошибку. Браузер не останавливает разбор HTML на этом этапе, отказываясь идти дальше. Вместо этого он просто игнорирует теги и отображает содержимое внутри них.
Такое либеральное отношение к ошибкам позволило со временем расширить словарный запас HTML с первоначального 21 элемента до 121 элемента в HTML5. Каждый раз, когда в HTML появляется новый элемент, мы точно знаем, как к нему отнесутся старые браузеры: они будут игнорировать теги и отображать содержимое.
Это удивительно мощная функция. Она позволяет браузерам внедрять новые возможности HTML с разной скоростью. Нам не нужно ждать, пока каждый браузер распознает новый элемент. Вместо этого мы можем начать использовать новый элемент в любое время, будучи уверенными, что не поддерживающие его браузеры не подавятся им.
<main>this text will display in any browser</main>
Если веб-браузеры относятся ко всем тегам одинаково – отображают их содержимое – тогда какой смысл в наличии словаря элементов в HTML?
Значение разметки
Некоторые элементы HTML буквально бессмысленны. Элемент SPAN ничего не говорит о содержимом внутри него. С точки зрения веб-браузера, вы можете использовать несуществующий элемент MARKLAR. Но это исключение. Большинство элементов HTML существуют не просто так. Они были созданы и согласованы для того, чтобы учитывать конкретные ситуации, с которыми могут столкнуться такие авторы, как вы и я.