META - теги (часть I)

 

META-теги (или как еще говорят, META-определители) - служебные элементы заголовков web-страничек. Они никаким образом не влияют на содержимое web-странички и ее отображение в браузере (за исключением неправильной установки кодировки). Поэтому многие web-мастера эти теги вообще не используют, но это не совсем правильно. Итак, для чего же нужны различные META-теги и какую они несут информацию?

   Все META-теги записываются в заголовке web-странички, то есть между тегами <HEAD> и </HEAD> и желательно записывать META-теги после тегов <TITLE> и </TITLE>. Существует 2 типа META-тегов, различающихся атрибутами и соответственно назначением:

- <META HTTP-EQUIV="имя" CONTENT="содержимое">
- <META NAME="имя" CONTENT="содержимое">



   Рассмотрим сначала META-теги, использующие атрибут HTTP-EQUIV.

   META-теги с атрибутом HTTP-EQUIV эквивалентны HTTP-заголовкам. Обычно они управляют действиями браузеров и могут быть использованы для совершенствования информации, выдаваемой обычными заголовками с сервера. Теги такой формы могут дать такой же эффект, что и HTTP-заголовки, и на некоторых серверах автоматически могут быть переведены в настоящие HTTP-заголовки.
   HTTP-заголовки могут быть сгенерированы с помощью CGI-скриптов. Это позволяют сделать серверы Apache и CERN. В других серверах могут использоваться другие механизмы генерирования заголовков. Некоторые генерируемые сервером поля заголовков не могут быть подменены значениями из META-тагов (в частности Date), другие подменяются только при ненормальном статус-коде (<>200). Когда заголовок не понятен, то значение HTTP-заголовка превалирует над значением META-тагов.
   Возможные значения атрибута HTTP-EQUIV (вместо имя):

   Refresh

Значение атрибута CONTENT число, определяющее время в секундах, после которого, браузер автоматически произведет обновление документа (это аналогично нажатию кнопки Reload / Обновить в браузере). Это приведет к тому, что страница с таким meta-тегом будет автоматически обновляться через указанное количество секунд:

<META HTTP-EQUIV="Refresh" Content="3">

Используя дополнительный параметр (URL) в атрибуте CONTENT, Вы можете создать, так называемый "редирект" или "перенаправление" пользователя на другой адрес:

<META HTTP-EQUIV="Refresh" Content="3; URL=http://webholm.ru">

Включение такого тега обеспечит автоматический переход браузера на страницу http://webholm.ru через 3 секунды. Редирект применяется в случае, если Ваш сайт "переехал" на другой хост и сменил адрес. Тогда на сервере со старым адресом Вы оставляете, как правило, в файле index.htm или index.html предупреждение о "переезде" Вашего сайта, а в заголовке используете вышеприведенный meta-тег. Иногда, эта конструкция находит применение, когда необходимо через некоторое время перенаправить пользователя с главной страницы сайта на страницу новостей.

   Content-Type

Указание типа документа. Может быть расширено указанием кодировки страницы (charset). Если указать charset в содержании META-тега, то браузер выведет web-страницу в кодировке, заданной в charset:

<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=KOI8-R">

   Использовать возможность "жесткой" установки кодировки следует крайне осторожно, поскольку, если в META-теге задана одна кодировка, а страничка находится в другой кодировке, бывает очень сложно перевести такую web-страничку в читаемый вид.
   А как такое вообще может произойти? Например, Вы создаете страничку в Блокноте, т.е. в кодировке Windows и указываете в META-теге эту кодировку: windows-1251, тестируете - все нормально, но на сервере, где располагается Ваш сайт, все документы находятся в кодировке KOI8-R и автоматически перекодируются в эту кодировку при копировании на сервер через протокол FTP. А в META-теге то указана кодировка Windows!
   Если же http-сервер поддерживает функцию автоматического изменения кодировки в зависимости от настроек браузера, то использовать данный META-тег вообще не следует, а файлы "заливать" (копировать на сервер через FTP) в кодировке, указанной при регистрации или в FAQ для данного хостинга.

   Expires

Определяет дату "устаревания" страницы для протокола HTTP. Для браузера это выглядит следующим образом: если указанная дата прошла, то содержимое странички загружается с сервера, а данные из кеша браузера не используются. Зачастую в данной директиве указывают заведомо устаревшую дату, чтобы избежа&#