URL-адрес данных - это схема URI, которая обеспечивает способ встраивания данных в документ и обычно используется для встраивания изображений в HTML и CSS.
Вступление
URL-адрес данных - это схема URI, которая позволяет встроить данные в HTML-документ.
Допустим, вы хотите встроить небольшое изображение. Вы можете пойти обычным путем, загрузить его в папку и использоватьimg
тег, чтобы браузер ссылался на него из сети:
<img src="image.png" />
или вы можете закодировать его в специальном формате, называемом URL-адресом данных, который позволяет встроить изображение непосредственно в HTML-документ, чтобы браузеру не приходилось делать отдельный запрос для его получения.
URL-адреса данных могут сэкономить время для небольших файлов, но для больших файлов есть недостатки в увеличенном размере файла HTML, и они особенно проблематичны, если изображение перезагружается на всех ваших страницах, поскольку вы не можете воспользоваться кешированием браузера. возможности.
Кроме того, изображение, закодированное как URL-адрес данных, обычно немного больше, чем такое же изображение в двоичном формате.
Они не очень практичны, если ваши изображения часто редактируются, поскольку каждый раз, когда изображение изменяется, его необходимо снова кодировать.
Тем не менее, у них есть свое место на веб-платформе.
Как выглядит URL-адрес данных
URL-адрес данных - это строка, которая начинается сdata:
за которым следует формат типа MIME. Например, изображение PNG имеет тип пантомимы.image/png
.
За ним следует запятая, а затем - фактические данные.
Текст обычно передается в виде обычного текста, а двоичные данные обычно кодируются в формате base64.
Вот пример того, как будет выглядеть такой URL-адрес данных:
<img src="data:image/png,%89PNG%0D%0A..." />
Ивот небольшая версия изображения баннера этой статьи, закодированная в ссылке
Вот как выглядит URL-адрес данных в кодировке base64. Обратите внимание, что это начинается сdata:image/png;base64
:
<img src="data:image/png;base64,iVBORw0KGgoAA..." />
Ивот небольшая версия изображения баннера этой статьи base64, закодированного в ссылке.
На этом сайте есть очень хороший генератор URL-адресов данных:https://dopiaza.org/tools/datauri/index.phpкоторый вы можете использовать для преобразования любого изображения, находящегося на вашем рабочем столе, в URL-адрес данных.
URL-адреса данных можно использовать везде, где можно использовать URL-адрес, как вы видели, вы можете использовать его для ссылок, но также их часто используют в CSS:
.main {
background-image url('data:image/png;base64,iVBORw0KGgoAA...');
}
Поддержка браузера
Они естьподдерживается во всех современных браузерах.
Безопасность
URL-адреса данных могут кодировать любую информацию, а не только изображения, и поэтому они имеют набор последствий для безопасности.
ИзВикипедия:
URI данных можно использовать для создания атакующих страниц, которые пытаются получить имена пользователей и пароли от ничего не подозревающих веб-пользователей. Его также можно использовать для обхода межсайтового скриптинга (XSS) ограничения, полностью встраивая полезную нагрузку в адресную строку и размещая через службы сокращения URL-адресов, вместо того, чтобы иметь полный веб-сайт, контролируемый третьей стороной.
Проверятьэта статья из блога Mozilla Firefoxдля получения дополнительной информации о том, как злоумышленники могут использовать URL-адреса данных для совершения вредоносных действий и как браузер Firefox снижает такие риски.
URL-адреса данных определены вRFC 2397.
Скачать мою бесплатнуюРуководство для начинающих по JavaScript
Больше руководств по браузеру:
- Некоторые полезные приемы, доступные в HTML5
- Как я заставил веб-сайт на CMS работать в автономном режиме
- Полное руководство по прогрессивным веб-приложениям
- API-интерфейс Fetch
- Руководство по Push API
- API обмена сообщениями канала
- Учебник для сервис-воркеров
- Руководство по Cache API
- Руководство по API уведомлений
- Погрузитесь в IndexedDB
- API селекторов: querySelector и querySelectorAll
- Эффективно загружайте JavaScript с помощью defer и async
- Объектная модель документа (DOM)
- API веб-хранилища: локальное хранилище и хранилище сеансов
- Узнайте, как работают HTTP-файлы cookie
- API истории
- Формат изображения WebP
- XMLHttpRequest (XHR)
- Подробное руководство по SVG
- Что такое URL-адреса данных
- Дорожная карта для изучения веб-платформы
- CORS, совместное использование ресурсов между источниками
- Веб-воркеры
- Руководство по requestAnimationFrame ()
- Что такое Doctype
- Работа с консолью DevTools и консольным API
- API синтеза речи
- Как дождаться события готовности DOM в простом JavaScript
- Как добавить класс к элементу DOM
- Как перебрать элементы DOM из querySelectorAll
- Как удалить класс из элемента DOM
- Как проверить, есть ли у элемента DOM класс
- Как изменить значение узла DOM
- Как добавить событие щелчка в список элементов DOM, возвращаемых из querySelectorAll
- WebRTC, веб-API реального времени
- Как получить позицию прокрутки элемента в JavaScript
- Как заменить элемент DOM
- Как принимать только изображения в поле входного файла
- Зачем использовать предварительную версию браузера?
- Объект Blob
- Файловый объект
- Объект FileReader
- Объект FileList
- ArrayBuffer
- ArrayBufferView
- Объект URL
- Типизированные массивы
- Объект DataView
- API BroadcastChannel
- API Streams
- Объект FormData
- Объект навигатора
- Как использовать API геолокации
- Как использовать getUserMedia ()
- Как использовать API перетаскивания
- Как работать с прокруткой на веб-страницах
- Обработка форм в JavaScript
- События клавиатуры
- События мыши
- Сенсорные события
- Как удалить всех дочерних элементов из элемента DOM
- Как создать атрибут HTML с помощью ванильного Javascript
- Как проверить, установлен ли флажок, используя JavaScript?
- Как скопировать в буфер обмена с помощью JavaScript
- Как отключить кнопку с помощью JavaScript
- Как сделать страницу редактируемой в браузере
- Как получить значения строки запроса в JavaScript с помощью URLSearchParams
- Как сразу удалить весь CSS со страницы
- Как использовать insertAdjacentHTML
- Safari, предупредить перед выходом
- Как добавить изображение в DOM с помощью JavaScript
- Как сбросить форму
- Как использовать Google Fonts