data: URL

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 30 января 2024 года; проверки требуют2 правки.
Перейти к навигацииПерейти к поиску

data: URL — определённая стандартомRFC 2397 схема, которая позволяет включать небольшие элементы данных в строкуURL, как если бы они были ссылкой на внешний ресурс. Она гораздо проще альтернативных методов включения, таких, как MIME с cid: или mid:. Согласно букве RFC, «data: URI» это фактически «data: URL» (URL — унифицированный указатель ресурса), хотя реально он ни на что не указывает.

Эта схема в настоящее время поддерживаетсябраузерамиGoogle Chrome,Mozilla (и его производными типаFirefox),Opera,Safari иKonqueror.Internet Explorer версии 7 не поддерживает data: URI. Ранние версии Internet Explorer принимали неопознанные «about: URI» за HTML-ресурс, так чтоabout:<b>bold</b> соответствовалоdata:text/html,<b>bold</b> в браузерах, которые поддерживают data: URI.

Содержание

Преимущества

[править |править код]
Информация должна бытьпроверяема, иначе она может быть удалена. Вы можетеотредактировать статью, добавив ссылки наавторитетные источники в видесносок.(5 апреля 2023)
  • Для внедрённых данных не требуются заголовкиHTTP, так что data: URI позволяет уменьшить нагрузку на сеть в тех случаях, когда встроенное содержимое меньше, чем заголовок HTTP.
  • Браузеру требуется меньше записей в кэш для файлов, содержащих data: URI.
  • Окружения с ограниченным доступом к внешним ресурсам могут внедрить контент, даже если к нему закрыт доступ. Например, расширенное поле редактирования HTML может принять вставленное изображение и конвертировать его в data: URI, чтобы скрыть сложность обращения к внешним ресурсам от пользователя.
  • Может использоваться, чтобы создать документыXML, содержащие изображения, но остающиеся в пределах контекста XML (нет нужды использовать MIME/MHTML методы, нарушающие правильность XML).

Недостатки

[править |править код]
  • Чтобы внести изменения во внедрённый контент, его нужно сначала извлечь и декодировать, потом снова закодировать и встроить.
  • Закодированные таким образом вBase64 данные примерно на 33 % больше по размеру, чем их бинарный эквивалент.
  • Текст, закодированный в форматеURLEncode, может быть в три раза больше первоначального (наихудший вариант, когда в тексте присутствуют только не-ASCII символы).
  • Внедрённая неоднократно информация повторно загружается как часть содержащего файла, и таким образом не извлекается выгода из кэша браузера.
  • Браузеры имеютограничения по длине URL, что определяет максимальный размер данных. Например, предел URI в Internet Explorer — около 2 КБ[1].
  • Данные включаются как простой поток, и многие среды обработки (типа веб-браузеров) не могут поддерживать контейнеры (вроде multipart/alternative или message/rfc822), чтобы обеспечить большую гибкость, типа метаданных, сжатия данных или content negotiation (согласования контента по языку).

Формат

[править |править код]

data:[<MIME-type>][;base64],<data>

<MIME-type> — спецификация типа носителей данных (с дополнительными параметрами; см.MIME). Появление «; base64» означает, что данные закодированы вbase64. Без «; base64» данные (как последовательностьбайтов) представляются с использованием кодировкиASCII в диапазоне безопасных символов URL и используя стандартное %xx шестнадцатеричное кодирование URL для символов вне этого диапазона. Если <MIME-type> опущен, значение по умолчанию — text/plain; charset=US-ASCII. Для краткости можно опустить «text/plain», оставив параметр charset.

Схема data: URI не поддерживает относительные формы URL.

Примеры

[править |править код]

XHTML

[править |править код]

Фрагмент внедрённого вXHTML небольшого изображения (перенос на новую строку осуществлён для облегчения восприятия):

<imgsrc="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFzByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSpa/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJlZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uisF81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PHhhx4dbgYKAAA7"alt="Larry"/>

Следует помнить, что data: URI, как любой URI, должен выдерживать форматирование отступами, но на практике существуют проблемы с кодированием в base64. Нужно избегать использования отступов в data: URIs с закодированными в base64 данными.

CSS

[править |править код]

ПравилоCSS с внедрённым фоновым изображением (переносы сделаны для облегчения восприятия):

ul.checklist>li.complete{margin-left:20px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC)topleftno-repeat;}

JavaScript

[править |править код]

ИнструкцияJavaScript, открывающая встроенное окно-сноску:

window.open('data:text/html;charset=utf-8,%3C!DOCTYPE%20HTML%20PUBLIC%20%22-'+'%2F%2FW3C%2F%2FDTD%20HTML%204.0%2F%2FEN%22%3E%0D%0A%3Chtml%20lang%3D%22en'+'%22%3E%0D%0A%3Chead%3E%3Ctitle%3EEmbedded%20Window%3C%2Ftitle%3E%3C%2Fhea'+'d%3E%0D%0A%3Cbody%3E%3Ch1%3E42%3C%2Fh1%3E%3C%2Fbody%3E%0D%0A%3C%2Fhtml%3E'+'%0D%0A','_blank','height=300, width=400');

См. также

[править |править код]

Похожие форматы:

Примечания

[править |править код]
  1. Максимальная длина URL-адреса в Internet Explorer составляет 2083 символа . microsoft.com. Дата обращения: 6 июля 2016. Архивировано 15 ноября 2016 года.
  2. Konqueror Plugins (англ.). docs.kde.org. Дата обращения: 6 апреля 2008. Архивировано 6 июля 2008 года.

Ссылки

[править |править код]
В статье есть списокисточников, ноне хватаетсносок.
Без сносок сложноопределить, из какого источника взято каждое отдельное утверждение. Вы можете улучшить статью, проставивсноски на источники, подтверждающие информацию. Сведения без сносокмогут быть удалены.(5 февраля 2009)
Перейти к шаблону «Схемы URI»
СхемыURI
Официальные
Неофициальные
Источник —https://ru.wikipedia.org/w/index.php?title=Data:_URL&oldid=146198310
Категория:
Скрытые категории: