<meta> - элемент для описания метаданных
========================================

**HTML-элемент `<meta>`** представляет такие метаданные, которые не могут быть представлены другими HTML-метатегами, такими как `<base>`, `<link>`, `<script>`, `<style>` или `<title>`.

| Категории контента | Мета данные. Если задан `itemprop` атрибут: flow content, phrasing content. |
| --- | --- |
| Допустимое содержимое | Отсутствует - это пустой элемент. |
| Пропуск тегов | Так как это пустой элемент, то открывающий тег должен присутствовать, а закрывающий - отсутствовать. |
| Допустимые родители | `<meta charset>`, `<meta http-equiv>`: `<head>` элемент. Если `http-equiv` это не заявленная декларация, то может быть внутри элемента `<noscript>` или `<head>`. |
| Допустимые ARIA-роли | Отсутствуют |
| DOM-интерфейс | `HTMLMetaElement` (en-US) |

Атрибуты
--------

Этот элемент включает в себя глобальные атрибуты.

**Примечание:** атрибут `name` имеет особое значение для элемента `<meta>` и атрибут `itemprop` не должен быть задан в `<meta>` элементе в котором уже определены какие-либо `name`, `http-equiv` или `charset` атрибуты.

`charset`

Этот атрибут задаёт кодировку символов, используемую на странице. Он должен содержать стандартное имя IANA MIME для кодировки символов. Хотя стандарт не требует определённой кодировки, он рекомендует:

* Авторам рекомендуется использовать `UTF-8 (en-US)`.
* Не следует использовать ASCII-несовместимые кодировки, чтобы избежать угроз безопасности: браузеры, не поддерживающие их, могут интерпретировать вредоносный контент как HTML. Это относится к семейству кодировок `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB` и `EBCDIC`.

**Примечание:** ASCII-несовместимые кодировки - это те, которые не преобразуют 8-битные коды точек `0x20`, `0x7E`, `0x0020`, `0x007E` в коды Unicode точек.

**Предупреждение:**

    + Авторы **не должны** использовать `CESU-8`, `UTF-7`, `BOCU-1` и/или `SCSU`, так как есть примеры атак межсайтового скриптинга (en-US) использующих данные кодировки.
    + Авторам не следует использовать кодировку `UTF-32`, потому что не все алгоритмы кодирования HTML5 могут отличить её от `UTF-16`.
     **Примечание:**
    + Указанный набор символов должен соответствовать одной странице.
     Нет веских оснований для объявления неточного набора символов.
    + `<meta>` элемент должен находиться внутри элемента `<head>` и задаваться в **1024 первых байтах** HTML страницы, поскольку некоторые браузеры смотрят только эти байты перед выбором кодировки.
    + Этот `<meta>` элемент - часть алгоритма, определяющего набор символов (algorithm to determine the character set) страницы, который браузер поддерживает. Заголовок `Content-Type` и любые Byte-Order Marks элементы переопределяют данный элемент.
    + Настоятельно рекомендуется определить кодировку символов. Если для страницы не определён набор символов, то некоторые cross-scripting технологии могут повредить страницу, например такие как UTF-7 fallback cross-scripting technique. Постоянная установка этого элемента будет защищать вас от этого риска.
    + Этот `<meta>` элемент это синоним для pre-HTML5 `<meta http-equiv="Content-Type" content="text/html; charset=IANAcharset">` где \*`IANAcharset` \*соответствует значению эквивалентного `charset` атрибута.
     Этот синтаксис по-прежнему разрешён, хотя и устарел и больше не рекомендуется.

`content`

Этот атрибут содержит значение для `http-equiv` или `name` атрибута, в зависимости от контекста.

`http-equiv`

Этот атрибут определяет прагму, которая может изменять поведение серверов и пользователей. Значение прагмы определяется с помощью `content` и может быть следующим:

`"content-language"`

Эта прагма определяет значение языка страницы по умолчанию.

**Примечание:** Не используйте эту прагму, так как она устарела Используйте глобальный атрибут `<html>` элемента вместо этого.

`"Content-Security-Policy"`

Это значение позволит администратору веб-сайта определить политику содержания для обслуживаемых ресурсов. За некоторыми исключениями, политика в основном включают в себя указание происхождения сервера и конечные точки сценария. Это помогает предотвратить атаки межсайтового скриптинга.

`"content-type"`

 Этот атрибут определяет MIME type документа. За ним следует синтаксис такой же как и в поле заголовка объекта содержимого HTTPI, однако как и внутри HTML-элемента, большинство этих значений не доступно.
 Поэтому допустимым синтаксисом для его содержимого является литеральная строка '`text/html`', за которой следует набор символов со следующим синтаксисом: '`; charset=`*`IANAcharset`*' где `IANAcharset` это предпочтительное *MIME имя* для набора символов, который определяется какIANA.

**Примечание:**

* Не используйте эту прагму, так как она устарела. Используйте атрибут`charset` в элементе `<meta>` вместо этого.
* `<meta>` не может быть использована для выбора типа документа в XHTML документе, или в HTML5 документе, за которым следует XHTML синтаксис, никогда не задавайте MIME тип как XHTML MIME. Это будет некорректно.
* Только HTML документ может использовать контент-тип, так что большинство из них являются неиспользуемыми, поэтому они являются устаревшими и заменяются `charset` атрибутом.

`"default-style"`

Специализация этой прагмы - предпочтительный стиль таблиц, используемый на странице. `content` атрибут должен содержать заголовок `<link>` элемента который `href` связывает атрибут с CSS таблцей стилей, или заголовок `<style>` элемента, который содержит CSS таблицу стилей.

`"refresh"`

Эта прагма определяет:

* Количество секунд перезагрузки таблицы, если `content` атрибут содержит только целое положительное число;
* Время, в количестве секунд, за которое страница должна быть перенаправлена на другую, если `content` атрибут содержит целое положительное число, заканчивающийся строкой '`;url=`' и корректный URL.

`"set-cookie"`

Эта прагма определяет cookie для страницы. Её содержимое должно заканчиваться синтаксисом, определяемым IETF HTTP Cookie Specification.

**Примечание:** Не используете эту прагму, так как она устарела. Используйте HTTP header set-cookie вместо этого.



`name`

 Этот атрибут определяет имя уровня документа метаданных.
 Его не следует устанавливать, если один из атрибутов `itemprop`, `http-equiv` или `charset` также указан в наборе.
 Имя этого документального уровня метаданных связано со значением, которое содержится в `content` атрибуте.Допустимые значения для имени элемента, со связанными с ними значениями, хранятся посредством `content` атрибута:


* `application-name`, определяет имя веб-приложения, запущенного на веб-странице;

**Примечание:** Браузеры могут использовать его для идентификации приложения. Он отличается от `<title>` элемента, который обычно состоит из имени приложения, но также может содержать специальную информацию, как например имя документа или статус;

    + Простые веб-страницы не определяют application-name meta.
* `автор` определяет в свободном формате имя автора документа;
* описание, содержащее краткое и точное резюме содержания страницы. В некоторых браузерах, среди которых Firefox и Opera, этот мета используется как описание страницы по умолчанию в закладке;
* генератор, содержащий в свободном формате идентификатор программного обеспечения, создавшего страницу;;
* Ключевые слова, представленные строками, разделёнными запятыми, связанные с содержанием страницы
* `referrer` 
Экспериментальная возможность
 контролирует содержимое HTTP. `Referer` HTTP - заголовок, прикреплённый к любому запросу, отправленному из этого документа:


| `no-referrer` | Не отправлять HTTP `Referer` заголовок. |
| --- | --- |
| `origin` | Отправить оригинал. |
| `no-referrer-when-downgrade` | Отправить оригинал, как ссылку по умолчанию на безопасный пункт (https->https), но не отправлять ссылку на менее безопасную структуру (https->http). Это поведение по умолчанию. |
| `origin-when-crossorigin` | Отправляет полный URL (удалённый из параметров) при выполнении запроса с тем же источником, или только оригинал документа в других случаях. |
| `unsafe-URL` | Отправляет полный URL (удалённый из параметров), при выполнении запроса того же или перекрёстного происхождения. |

**Примечание:** Некоторые браузеры поддерживают ключевые слова всегда, по умолчанию и никогда для реферера. Эти значения устарели.

**Примечание:** Динамическая вставка `<meta name="referrer">` (с помощью document.write или appendChild) создаёт недетерминизм, когда дело доходит до отправки рефереров. Также стоит отметить, что когда определяется несколько конфликтующих политик, применяется No-referrer policy.Атрибут также может иметь значение, взятое из существующего листа определений WHATWG Wiki MetaExtensions page. Хотя ни один из них официально не был принят, в число предложений входят несколько часто используемых имён:
* `creator`, определят в свободном формате имя создателя документа. Это также может быть имя института. Если же имён больше чем одно, то несколько `<meta>` элементов должны быть использованы;
* `googlebot`, синоним `robots`, но только следует за Googlebot, сканирует индексы для Google;
* `publisher`, определяет в свободном формате имя того, кто опубликовал документ. Это также может быть имя института;
* `robots`, определяет поведение, поисковых роботов на странице. Список этих значений представлен ниже:


| Значение | Описание | Используется |
| --- | --- | --- |
| `index` | Позволяет роботу индексировать страницу | All |
| `noindex` | Освобождает робота от индексирования страниц | All |
| `follow` | Позволяет роботу переходить по ссылкам со страницы | All |
| `nofollow` | Запрещает роботу переходить по ссылкам со страницы | All |
| `none` | Эквивалентно `noindex, nofollow` | Google |
| `noodp` | Запрещает использование Open Directory Project описания, если таковые имеются, как описание страницы на странице результатов поиска | Google, Yahoo, Bing |
| `noarchive` | Запрещает поисковой системе кешировать содержимое страницы. | Google, Yahoo, Bing |
| `nosnippet` | Запрещает отображение любого описания страницы на странице результатов поиска | Google, Bing |
| `noimageindex` | Запрещает отображение этой страницы в качестве ссылающейся страницы индексированного изображения. | Google |
| `nocache` | Синоним `noarchive` | Bing |

**Примечание:**

    + Только кооперативные роботы будут следовать правилам, определённым именем роботов.
    + Роботу необходимо получить доступ к странице, чтобы считать мета значение. Если вы хотите скрыть от них информацию, то используйте *robots.txt* файл.
    + Если вы хотите удалить страницу индекса, изменение мета в noindex будет работать, но только тогда, когда робот снова посетит страницу. Убедитесь, что файл robots.txt не предотвращает такие посещения. Некоторые поисковые системы имеют инструменты, позволяющие быстро удалить какую-либо страницу.
    + Некоторые возможные значения взаимно исключают друг друга, такие как использование индекса и noindex или follow и nofollow одновременно. В этих случаях поведение робота не определено и может варьироваться от одного к другому. Поэтому избегайте этих случаев.
    + Некоторые поисковые роботы-роботы, такие как Google, Yahoo Search или Bing, поддерживают те же значения в директиве HTTP, X-Robot-Tags: это позволяет им использовать эту прагму для документов, отличных от HTML, например изображений.
* `slurp`,синоним `robots`, но следует только за Slurp, индексирующим роботом от Yahoo Search;Наконец несколько общих терминов:
    + `viewport`, который даёт подсказки о размере изначального размера viewport. Эта прагма используется только на некоторых мобильных устройствах.

| Значение | Допустимые значения | Описание |
| --- | --- | --- |
| `width` | целое положительное число или литерал `device-width` | Определяет ширину области просмотра в пикселях |
| `height` | целое положительное число или литерал `device-height` | Определяет высоту области просмотра в пикселях |
| `initial-scale` | положительное число между `0.0` и `10.0` | Определяет соотношение между шириной устройства и размером области просмотра |
| `maximum-scale` | положительное число между `0.0` и `10.0` | Определяет максимальное значение зума; должен быть больше или равен минимальному масштабу или быть неопределённым. |
| `minimum-scale` | положительное число между `0.0` и `10.0` | Определяет минимальное значение зума; должен быть меньше или равен максимальному масштабу или быть неопределённым. |
| `user-scalable` | булевское значение (да или нет) | Если весь набор содержит значения нет, то пользователю не доступен зум на веб-странице. По умолчанию задано значение да. |

**Примечание:**

    + Хотя и не стандартизирован, этот атрибут используется разными мобильными браузерами, например Safari Mobile, Firefox for Mobile or Opera Mobile.
    + Значения по умолчанию могут быть изменены у разных браузеров или устройств..
    + Для изучения этой прагмы на Firefox for Mobile, посмотрите статью this article.

`scheme`

 Этот атрибут определяет схему, которая описывает метаданные.
 Схема - это контекст, ведущий к правильной интерпретации `content` значения, например формата.


**Примечание:** Не используйте этот атрибут, так как он устарел. Для него нет никакой замены, поскольку реально он не использовался. Опустите его.

Замечания
---------

В зависимости от установленных атрибутов, тип метаданных может быть одним из следующих:

* Если в наборе `name`, то это *document-level metadata*, применяемая ко всей странице.
* Если в наборе`http-equiv` , то это *pragma directive*,
 то есть информация, веб-сервер предоставляет информацию о том, как должна обслуживаться веб-страница.
* Если в наборе `charset`, то это *charset declaration*,
 то есть кодировка, используемая для сериализованной формы веб-страницы.
* Если в наборе `itemprop`, то это *user-defined metadata*,
 прозрачна для агента пользователя, поскольку семантика метаданных зависит от пользователя. 
Экспериментальная возможность
Пример
------


```html
<!-- В HTML5 -->
<meta charset="utf-8" />

<!-- Переход на другую страницу через три секунды -->
<meta http-equiv="refresh" content="3;url=https://www.mozilla.org" />
```

Спецификации
------------

| Specification |
| --- |
| HTML Standard # the-meta-element |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Другие элементы, содержащие метаданные: `<base>`, `<head>`, `<link>`, `<style>`,`<title>`.