Data: URL

Data: URL

data: URL

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

Эта схема в настоящее время поддерживается браузерами 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.

Содержание

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

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

Недостатки

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

Формат

data:[<mediatype>][;encoding],<data>

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

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

Примеры

XHTML

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

<img
src="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw
AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz
ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp
a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl
ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis
F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH
hhx4dbgYKAAA7"
alt="Larry" />

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

CSS

Правило CSS с внедрённым фоновым изображением (опять-таки переносы сделаны для большей ясности восприятия):

ul.checklist > li.complete {
    margin-left: 20px;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAA
        ABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeN
        Ge4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC) top left no-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');

См. также

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

  • MIME HTML (MHTML) используемый обычно в HTML сообщениях e-mail. Также может использоваться подобно data:URI в старых версиях Internet Explorer (data URL в IE).
  • Веб‐архивы браузера Konqueror — архивы tar+gzip или bzip2 с расширением .war[2]. Safari может сохранять в несовместимый закрытый производный формат.

Примечания

  1. http://msdn.microsoft.com/en-us/library/cc848897(VS.85).aspx
  2. Konqueror Plugins (англ.). docs.kde.org. Проверено 6 апреля 2008.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Data: URL" в других словарях:

  • data: URL — data: URL  это определённая стандартом RFC 2397 схема, которая позволяет включать небольшие элементы данных в строку URL, как если бы они были ссылкой на внешний ресурс. Она гораздо проще альтернативных методов включения, таких как MIME с… …   Википедия

  • Data: URL — Saltar a navegación, búsqueda El esquema data: URI definido en las normas IETF RFC 2397 en un esquema URI que permite la inclusión de pequeños elementos de datos en línea, como si fueran referenciados hacia una fuente externa. Suelen ser mucho… …   Wikipedia Español

  • Data-URL — Die Data URL ist ein URI Schema, welches ermöglicht, Daten so im (HTML )Quelltext einzubetten, als wären es externe Ressourcen. Sie tendiert dazu, einfacher zu sein als andere Einbettungsmethoden, wie MIME mit cid oder mid URIs. Data URLs werden… …   Deutsch Wikipedia

  • Data — bezeichnet: ein Android im Star Trek Universum, gespielt von Brent Spiner, siehe Figuren im Star Trek Universum #Lieutenant Commander Data ein URI Schema, siehe Data URL DATA steht für: Debt, AIDS, Trade in Africa, eine multinationale… …   Deutsch Wikipedia

  • Data URI scheme — The data URI scheme is a URI scheme (Uniform Resource Identifier scheme) that provides a way to include data in line in web pages as if they were external resources. It tends to be simpler than other inclusion methods, such as MIME with cid or… …   Wikipedia

  • URL — Единый указатель ресурсов (англ. URL Uniform Resource Locator)  единообразный локатор (определитель местонахождения) ресурса. По английски «URL» целиком произносится как /ɜː(ɹ)l/, по русски чаще говорят [у эр эл], [ю ар эл] или [урл]… …   Википедия

  • Url — Единый указатель ресурсов (англ. URL Uniform Resource Locator) единообразный локатор (определитель местонахождения) ресурса. По‐английски «URL» целиком произносится как /ɜː(ɹ)l/, по‐русски чаще говорят [у эр эл], [ю эр эл] или [урла] (сленг).… …   Википедия

  • Data URI scheme — Le Data URI scheme est un Schéma d URI, dans le contexte d Internet, qui contient directement des données. L IETF décrit ce schéma dans le RFC 2397[1]. Le schéma est le suivant : data:[<mediatype>][;base64],<data> Un… …   Wikipédia en Français

  • Data-link switching — (DLSw) is a tunneling protocol designed to tunnel unroutable, non IP based protocols such as IBM Systems Network Architecture (SNA) and NBF over an IP network.DLSw was initially documented in IETF RFC 1434 in 1993. In 1995 it was further… …   Wikipedia

  • URL normalization — (or URL canonicalization) is the process by which URLs are modified and standardized in a consistent manner. The goal of the normalization process is to transform a URL into a normalized or canonical URL so it is possible to determine if two… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»