Метатэги не несут никакой визуальной информации и располагаются в заголовочной части HTML-документа между тэгами <HEAD> и </HEAD>. В любом другом месте они будут проигнорированы. Особенно важны они для страниц, использующих фреймы.
Существует два вида метатэгов:
• метатэги – эквиваленты HTTP-заголовков, имеющие формат записи: <META HTTP-EQUIV="свойство" CONTENT="значение">
• информационно-указательные, записываемые следующим образом: <META NAME = "свойство" CONTENT="значение">
Элементом META задается свойство, которому присваивается значение. Метатэги первого вида эквивалентны HTTP-заголовкам и обычно управляют действиями браузеров. Они используются, чтобы оптимизировать информацию, которую содержат обычные заголовки, и особенно важны, если документы загружаются по протоколу HTTP (протоколу передачи гипертекста – ftp://ftp.nsc.ru/pub/rfc/rfc2068.txt). Серверы HTTP могут использовать имя свойства, указанное в атрибуте HTTP-EQUIV, для создания заголовка в ответе HTTP. Мета-тэги второго вида чрезвычайно важны для работы поисковых машин.
Элемент META лежит в основе механизма введения метаданных. Существуют, однако, некоторые тэги и атрибуты тэгов языка HTML, которые обрабатывают часть метаданных и могут использоваться авторами вместо элементов META: тэги TITLE, ADDRESS, INS и DEL, атрибуты тэгов TITLE и CITE.
Метатэги – эквиваленты HTTP-заголовков
Для метатэгов этого вида могут быть использованы следующие свойства:
• Expires;
• Pragma;
• Content-Type;
• Content-language;
• Refresh;
• Window-target;
• Content-Script-Type;
• Content-Style-Type.
Рассмотрим их применение.
Свойство Expires
В примере ниже показано, как выглядит формат метатэга со свойством Expires (Дата устаревания):
<META HTTP-EQUIV="Expires" C0NTENT="Mon, 29 Nov 2004 08:21:57 GMT">
Клиенту будет возвращен такой заголовок HTTP:
Expires: Mon, 29 Nov 2004 08:21:57 GMT
Заголовок данного вида используется для управления кэшированием. Если указанный в метатэге срок устаревания истек, то при запросе документа он будет доставлен по сети, а не загружен из кэша.
Нулевое значение даты (C0NTENT="0") приводит к тому, что браузер проверяет при каждом запросе, не изменился ли документ. Поисковые роботы могут либо совсем не индексировать его, либо постоянно отслеживать изменения в документе.
Формат даты описан в стандарте RFC850 (ftp://ftp.nsc.ru/pub/rfc/rfc850.txt).
Для решения ряда задач требуется, чтобы при каждом запросе документ загружался не из кэша браузера, а с сервера. Обычно это необходимо для сайтов, которые поставляют динамически изменяющееся содержание. В качестве примера можно привести результат какого-либо поиска (информация о курсе доллара в реальном режиме, электронный магазин или обычный чат). В таких случаях страница в кэше не обязательно соответствует реальной.
В подобной ситуации можно запретить браузеру кэшировать страницы при помощи свойства метатэга Expires, которое указывает дату устаревания содержимого страницы. Для того чтобы она не кэшировалась, достаточно установить прошедшую дату – например, вот так:
<META HTTP-EQUIV="Expires" CONTENT="Mon, 01 Jan 2000 00:00:00 GMT">
Если страница содержит постоянные данные и не требует регенерации при каждом запросе, то вам не следует отключать кэширование для браузера. Это позволит браузерам использовать сохраненную в кэше копию страницы в течение некоторого отрезка времени, которым вы можете управлять. Кэширование может значительно снизить нагрузку на вашем сервере.
Обычно имеет смысл отключать кэширование лишь для динамических страниц, которые содержат информацию, изменяющуюся со временем. И то далеко не всегда. Какие же из динамических страниц могут быть кандидатами на кэширование? Например, страница с прогнозом погоды, где информация обновляется каждые 5 минут. Или начальная страница сайта, которая содержит список материалов на сервере или официальные сообщения для печати, которые модифицируются два раза в день. Другие подобные страницы, где обновления происходят раз в несколько часов.
Заметьте, что с кэшированием в браузере вы получите меньшее количество посетителей, зарегистрированных на вашем сервере. Поэтому, если вы хотите точно измерять количество просмотров страниц или показов баннеров, то, скорее всего, вы откажетесь от кэширования.
Свойство Pragma
Свойство Pragma (Контроль кэширования) применяется для отказа от кэширования и задается следующим образом:
<META HTTP-EQUIV="Pragma" C0NTENT="no-cache">
Отказ от кэширования означает, что при запросе документа он будет доставлен по сети, а не загружен из кэша. Обратите внимание, что неразумное запрещение кэширования усложняет навигацию по сайту и увеличивает время ожидания. Так, при нажатии в браузере кнопки Back (Назад) происходит новый запрос сервера и приходится ждать загрузки страницы, которая минутой ранее была отправлена клиенту и уже есть у него в компьютере.