Основы HTML
HTML (Hypertext Markup Language) был впервые разработан Тимом Бернерс-Ли (Tim Berners-Lee) в то время когда он работал в ЦЕРНе и приобрел популярность благодаря броузеру "Мозаика" разработанному в NCSA. Первая спецификация этого универсального и общедоступного языка разметки - HTML 0 была утверждена в 1991 году. Уже через два года W3C объявил о выходе HTML 3. Затем, почти сразу, последовала спецификация версии 3.2, с которой мы имеем дело сейчас на подавляющем большинстве Web-страниц. В HTML 4 произошла лишь переработка концепций, и не было добавлено ничего принципиально нового.
На сегодняшний день HTML остается самым универсальным, даже незаменимым средством разметки гипертекста, а, следовательно, и публикации в Интернет. Язык разметки гипертекста по определению должен интерпретироваться броузером. Это, безусловно, накладывает некоторые ограничения на возможности языка и на совместимость новых конструкций со старыми версиями броузеров.
Однако, именно эта особенность языков разметки оставляет прекрасную возможность генерировать HTML-код другими программами (CGI-скриптами). Современные Web-страницы уже не обходятся одним только HTML. Его гармонично дополняют средства динамического HTML: скрипт языки JavaScript и/или VBScript, каскадные таблицы стилей(CSS), иногда присутствуют Java-апплеты.
Web-страничка – это обычный текстовый файл в соответствующей кодировке. В нем описывается вся страничка с помощью языка гипертекстовой разметки – HTML (HyperText Markup Language). Когда вы в своем браузере (Internet Explorer / Nestcape Navigator) загружаете web-страничку, то браузер выполняет команды, записанные на языке HTML, и, подчиняясь им, выводит на экран страничку.
Создавать HTML-файлы нужно в текстовых редакторах, которые умеют сохранять файлы в формате "Только текст" (расширение .txt). Если вы создадите такой файл в Word'e и сохраните в формате "Документ", а потом поменяете расширение .doc на .html, то у вас получится полная абракадабра, т.к. Word и сам не лыком шит и добавляет в свои "фирменные файлы" массу специальных команд форматирования, очень сильно отличающихся от тэгов HTML. Поэтому на первое время, чтобы не запутаться, идеальным редактором является "Блокнот" (Notepad) из стандартной поставки Windows.
Для того, чтобы текстовый файл превратился в HTML-файл, поменять его расширение с ".txt" на ".html" недостаточно. Надо соблюсти "правило первой строки".
Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, обязан начинаться со строки декларации версии HTML , которая обычно выглядит так:
Эта строка поможет браузеру определить, как правильно интерпретировать данный документ. В данном случае мы говорим браузеру, что HTML соответствует международной спецификации версии 4.1, которая хоть и не отличается новизной, но, в отличие от более поздних версий, является полноценным, широко распространенным стандартом без каких-либо неопределенностей.
После
объявления версии и типа документа
необходимо обозначить его начало и
конец. Это делается с помощью тэга-контейнера
HTML. Необходимо отметить, что любой
HTML-документ открывется тэгом HTML и
им же закрывается.
Эти
тэги сообщают браузеру, что текст между
ними следует интерпритировать как
HTML-текст. Поскольку документы HTML чисто
текстовые, тэг говорит о том, что файл
написан на языке HTML (HyperTextMarkupLanguage - Язык
гипертекстовой разметки).
Итак, давайте попробуем создать страничку, на которой будет ваш портрет, заголовок и немного текста - один-два абзаца (параграфа). Чтобы не запутаться во вложенности тэгов и одновременно не пропустить какую-нибудь важную часть документа, нужно записывать тэги-контейнеры сразу парами, начиная с внешнего контейнера, а затем вкладывать внутренние.
Начнем с пары тэгов . Внутрь этого контейнера рядышком положим два "ящика" поменьше: и (именно в такой последовательности! не может же "голова" быть ниже "тела"!). Затем внутрь "ящика-головы" вложим "ящичек-название" -
и . Ну а теперь можно наполнить наши коробки содержимым - обычным текстом.
Если приведенный выше пример пояснить схематически, получится следующее:
Из схемы видно, что документ состоит из двух основных блоков - "заголовка" и "тела документа". Заголовок определяется с помощью элемента HEAD, а тело - элементом BODY.
Тэги-контейнеры можно (и нужно!) вкладывать друг в друга. При этом важно соблюдать правильную вложенность тэгов. Если вы представите себе тэги-контейнеры в виде настоящих ящичков, вы быстро разберетесь во вложенности. В самом деле, ведь нельзя вложить маленький ящик в большой, закрыв при этом большой ящик крышечкой от маленького! Нужно закрыть маленький ящичек маленькой крышечкой, поместить его вместе с крышечкой в большой ящик, а тот уже накрыть большой крышкой. Так же и с тэгами - один в другой нужно вкладывать целиком, нельзя оставлять закрывающий тэг или часть содержимого вместе с закрывающим тэгом снаружи!
Особенно важно соблюдать вложенность основных тэгов страниц, (особенно это важно для документов, использующих фреймы).
Атрибут HTTP-EQUIV
META-таги с атрибутом HTTP-EQUIV эквивалентны HTTP-заголовкам. Обычно они управляют действиями броузеров и могут быть использованы для совершенствования информации, выдаваемой обычными заголовками. Таги такой формы могут дать такой же эффект, что и HTTP-заголовки, и на некоторых серверах автоматически могут быть переведены в настоящие HTTP-заголовки. HTTP-заголовки описываются в RFC1945 (HTTP/1.0) и RFC2068 (HTTP/1.1).
HTTP-заголовки могут быть сгенерированы с помощью CGI-скриптов. Это позволяют сделать серверы Apache и CERN. В других серверах могут использоваться другие механизмы генерирования заголовков. Некоторые генерируемые сервером поля заголовков не могут быть подменены значениями из META-тагов (в частности Date), другие подменяются только при ненормальном статус-коде (не равных 200). Когда заголовок не понятен, то значение HTTP-заголовка превалирует над значением META-тагов.
Expires
Источники: HTTP/1.1 (RFC2068)
Дата устаревания. Управление кэшированием в HTTP/1.0. В Netscape Navigator это выглядит следующим образом: если указанная дата прошла, то очередной запрос этого документа вызывает повторный сетевой запрос, а не подгрузку документа из кэша. Дата со значением "0" интерпретируется как "сейчас". Такое значение заставляет броузер каждый раз при запросе проверять - изменялся ли этот документ. Это, кстати относится и к прокси-агентам. Поисковые роботы могут либо совсем не индексировать такой документ, либо постоянно "обнюхивать" его.
Дата должна быть задана в формате, описываемом в RFC850,
Источники: Jahn Rentmeister
Определяет окно текущей страницы; может быть использован для прекращения появления новых окон броузера при применении фреймовых структур. Действует для многих (но не для всех) броузеров.
Помимо перечисленных более или менее стандартных тагов существует еще множество других специализированных, например, для конкретной поисковой машины тагов.
Таг LINK
Таг LINK предоставляет документу независимый от среды метод определения отношения данного документа к другим документам и ресурсам Сети. Используется с аргументами REL и REV. С помощью тага LINK можно:
создавать в документе специальные навигационные кнопки или меню
управлять процессом отображения набора HTML файлов в печатные документы
привязывать такие ассоциированные ресурсы, как таблицы стилей и скрипты
предоставлять альтернативные формы для данного документа