Декодер URL

Декодируйте закодированные URL-адреса в читаемый текст, чтобы проверять ссылки, веб-формы, параметры отслеживания и примеры для уроков о работе веба.

URL Парсер / Инспектор

Вставьте один или несколько полных URL-адресов (по одному на строку), чтобы разбить каждый из них на свой протокол, хост, путь, строку запроса и фрагмент с декодированием каждого параметра запроса.

Учитесь кодировать URL

URL может безопасно содержать только буквы, цифры и небольшой набор символов. Все остальное, включая пробелы, пунктуации и неанглийские символы, должно быть представлено с процентным кодированием, прежде чем оно сможет перемещаться по URL-адресу.

Кодирование процента заменяет символ знаком процента, за которым следует его двухзначное шестнадцатеричное значение байта, используя UTF-8 для чего-либо за пределами базового ASCII. Пространство становится %20, амперсанд — %26, а акцентированный или нелатинский символ может стать несколькими последовательностями %XX подряд, поскольку UTF-8 представляет его более чем одним байтом.

Такие символы, как ? & = # и / имеют особое значение в структуре URL: они помечают строку запроса, отдельные параметры или вводят фрагмент. Если ваши данные должны содержать один из этих символов в качестве значения, а не в качестве структуры, сначала закодируйте его, или браузер или сервер могут неправильно понять, где заканчивается одна часть URL-адреса и начинается следующая.

Декодирование переворачивает процесс: он считывает каждую последовательность %XX обратно в символ (или байт), который он представляет.

  • Закодируйте значение перед добавлением его в строку запроса или сегмент пути.
  • Декодируйте URL, который вам дали, когда вам нужно прочитать или отладить его.
  • Декодируйте только тот компонент, который вам нужен. Слепая декодировка всего URL-адреса может превратить закодированный амперсанд обратно в разделитель параметров.
  • Ожидается многобайтное кодирование символов более чем одной последовательности %XX, а не ошибка.

Общий URL Персонажи

характерзакодированныйГде используется
пространство%20Разделитель слов внутри значения
!%21
"%22
#%23Начинается фрагмент
%%25Начинается последовательность, закодированная в процентах
&%26Отдельные параметры запросов
'%27
(%28
)%29
+%2BЧасто читается как пространство внутри строки запроса.
,%2C
/%2FОтдельные сегменты пути
:%3AСледует схеме, например https:
;%3B
=%3DНазначает значение параметра запроса
?%3FЗапускает строку запроса
@%40
[%5B
]%5D

Этот инструмент вам помог?

3.8/5 от 48 рейтинги

Декодируйте URL-адреса, параметры запросов, пути и веб-данные в процентной кодировке для уроков, отладки и тестирования API

Ученик копирует веб-адрес из онлайн-формы и видит текст вроде science%20project%20notes. Начинающий разработчик изучает запрос к API и обнаруживает, что амперсанд внутри значения поиска отображается как %26. Ссылка работает, но её трудно читать и отлаживать.

Инструмент декодирования URL преобразует последовательности в процентной кодировке обратно в соответствующие символы. Например, %20 обычно становится пробелом, а %26 — амперсандом.

Декодирование полезно для понимания ссылок, изучения параметров запроса, анализа веб-кодировки и диагностики некорректно сформированных запросов. Выполнять его нужно аккуратно, поскольку зарезервированные символы после декодирования могут изменить структуру URL.

Инструмент не определяет, безопасен ли, корректен ли или авторизован ли адрес назначения. Он лишь меняет представление закодированных символов. Ученикам и разработчикам по-прежнему нужно самостоятельно проверять хост, путь, параметры и декодированные значения.

Как выглядит кодировка URL

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

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

Закодированное значение Декодированный символ Типичное значение
%20 Пробел Разделяет слова внутри значения
%21 ! Восклицательный знак
%23 # Знак решётки или маркер фрагмента
%26 & Амперсанд или разделитель запроса
%2B + Знак плюса
%2F / Косая черта или разделитель пути
%3A : Двоеточие
%3D = Знак равенства или разделитель параметра
%3F ? Знак вопроса или маркер запроса

Шестнадцатеричные буквы в процентных последовательностях не чувствительны к регистру, поэтому %2F и %2f обозначают один и тот же байт.

Как декодировать URL

  1. Скопируйте закодированный URL или значение. Сохраните каждый знак процента и следующую за ним пару символов.
  2. Определите часть, которую нужно проверить. Решите, идёт ли речь о полном URL, пути, имени параметра или значении параметра.
  3. Вставьте текст в инструмент декодирования URL. Убедитесь, что данные скопированы полностью.
  4. Запустите процесс декодирования. Инструмент преобразует поддерживаемые процентные последовательности.
  5. Просмотрите результат как текст. Не открывайте незнакомый адрес назначения автоматически.
  6. Сравните структуру и данные. Обратите внимание, меняют ли декодированные знаки вопроса, амперсанды, косые черты или знаки равенства вид адреса.
  7. Проверьте многоязычные символы. Убедитесь, что использовалась ожидаемая кодировка символов.
  8. Сохраните исходный текст. Он может понадобиться для отладки двойного кодирования или ошибочного шага декодирования.

Сначала разберитесь в частях URL

Рассмотрим такой пример:

https://example.edu/search?q=water%20cycle&level=grade%206#results

Его основные части:

  • Схема: https
  • Хост: example.edu
  • Путь: /search
  • Запрос: q=water%20cycle&level=grade%206
  • Фрагмент: results

Значения запроса декодируются в «water cycle» и «grade 6». Структурный амперсанд между параметрами не следует путать с амперсандом, закодированным внутри значения.

Декодируйте нужный компонент

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

Допустим, запрос содержит:

?topic=research%26writing

Закодированное значение представляет собой:

research&writing

Амперсанд здесь — часть значения темы. Если декодировать весь запрос целиком, а затем разобрать его неправильно, амперсанд можно ошибочно принять за разделитель, вводящий ещё один параметр.

Надёжное приложение анализирует URL в соответствии с его структурой и декодирует каждый компонент с помощью подходящего URL-API, а не выполняет произвольную замену строк.

Практикум по отладке URL

Шаг 1. Начните с читаемой ссылки

Ученики рассматривают:

https://example.edu/library?topic=space%20science

Они определяют хост, путь, имя параметра и закодированное значение.

Шаг 2. Декодируйте только значение

Значение space%20science превращается в space science. Ученики объясняют, почему обычный пробел, как правило, не пишется напрямую в общей ссылке.

Шаг 3. Введите зарезервированные символы

Учитель предлагает:

?title=Design%20%26%20Technology

Декодированное название — Design & Technology. Ученики замечают, что закодированный амперсанд относится к названию, а не разделяет параметры.

Шаг 4. Выполните обратный процесс

Ученики используют инструмент кодирования URL, чтобы подготовить новое значение, затем декодируют его и сравнивают результат.

Шаг 5. Диагностируйте ошибку

Одна из последовательностей содержит неполный процентный escape-код, например %2. Ученики выясняют, почему после знака процента ожидаются две шестнадцатеричные цифры.

Реальные примеры использования

1. Чтение параметров поиска

Ученик копирует ссылку поиска библиотеки с несколькими закодированными словами. Видимый URL трудно интерпретировать.

Ученик декодирует значения запроса и определяет, какие поисковые термины и фильтры были включены. Хост проверяется перед открытием ссылки.

Это помогает ученику понять, как сайт передаёт поисковую информацию между страницами.

2. Отладка запроса к API

Начинающий разработчик отправляет запрос с названием курса, содержащим амперсанд. Сервер получает название как два отдельных параметра.

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

Декодер помогает объяснить запрос, но постоянное решение использует структурированную обработку URL, а не ручную замену.

3. Расследование неработающей ссылки

Учитель получает ссылку на классный документ, но при переходе появляется сообщение, что файл не найден.

URL проверяется и декодируется. Имя файла содержит косую черту, которая могла быть воспринята как разделитель пути, либо пробел был скопирован некорректно.

Учитель запрашивает у владельца документа новую ссылку для общего доступа, а не редактирует вслепую незнакомый приватный адрес.

4. Понимание отправки формы

Ученики создают простую форму поиска и наблюдают за URL после отправки текста с пробелами и знаками препинания.

Они декодируют значения параметров и сравнивают их с исходными данными формы. Класс обсуждает, почему браузеры кодируют значения перед тем, как поместить их в URL.

В упражнении не используются настоящие пароли, данные учеников или личные ответы.

5. Изучение аналитических ссылок

Ссылка в школьной рассылке содержит несколько параметров отслеживания. Учитель хочет понять, какая информация в неё включена, прежде чем поделиться ею.

URL разбивается на параметры, и их значения декодируются. Ненужные значения отслеживания можно удалить, только если это не нарушает работу требуемого адреса назначения.

Итоговая ссылка тестируется, а не считается рабочей просто после ручного редактирования.

6. Изучение многоязычной кодировки URL

На уроке информатики тестируют короткую неанглийскую фразу в URL. Закодированный результат содержит несколько процентных последовательностей, поскольку символы UTF-8 могут занимать несколько байт.

Ученики декодируют полную последовательность и сравнивают её с исходной фразой. Удаление одного закодированного байта может привести к появлению символа-заменителя или недействительного текста.

Это упражнение показывает, что один видимый символ не всегда соответствует одному закодированному байту.

7. Диагностика двойного кодирования

Разработчик ожидает пробел, но видит %2520. Последовательность %25 означает знак процента, поэтому первый проход декодирования даёт %20, а второй может дать пробел.

Разработчик отслеживает, где значение было закодировано дважды. Поток данных исправляется, вместо того чтобы повторно декодировать каждый ввод.

8. Проверка адресов перенаправления

Ссылка содержит ещё один закодированный URL внутри параметра, например redirect или next.

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

Декодер URL в сравнении с другими декодерами

Ввод Вероятная кодировка Подходящий инструмент Пример декодирования
lesson%20notes Процентная кодировка URL Декодер URL lesson notes
<p> HTML-сущности Декодер HTML <p>
SGVsbG8= Base64 Декодер Base64 Hello
u003F Escape-последовательность Unicode Парсер JSON или другой языковой парсер ?

Используйте инструмент декодирования HTML для ссылок на сущности и инструмент декодирования Base64 только тогда, когда точно известно, что данные представлены именно в этих форматах.

Пробелы и знаки плюса

Пробелы обычно представляются как %20. В кодировке запросов в стиле форм знак плюса также может интерпретироваться как пробел.

Отсюда возникает важное различие:

  • class%20notes обычно декодируется в class notes.
  • class+notes может декодироваться в class notes в контексте запроса формы.
  • Буквальный знак плюса может потребоваться закодировать как %2B.

Используйте метод декодирования, предназначенный для конкретного компонента и формата. Декодер пути и декодер запроса формы могут по-разному обрабатывать знаки плюса.

Многобайтовые символы

Процентная кодировка работает на уровне байтов. Символ за пределами базового ASCII может быть представлен несколькими закодированными байтами.

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

Если в результате появляются символы-заменители, проверьте следующее:

  • Отсутствует один закодированный байт.
  • Последовательность была декодирована с неверной кодировкой символов.
  • Текст был скопирован не полностью.
  • Значение было декодировано слишком много раз.
  • Исходные данные уже были повреждены.

Распространённые проблемы, которые решает этот инструмент

  • URL содержит нечитаемые процентные последовательности.
  • Ученику нужно проверить параметры поиска.
  • Значение запроса API содержит закодированные пробелы или знаки препинания.
  • Общая ссылка, похоже, содержит ещё один закодированный адрес назначения.
  • Разработчик подозревает двойное кодирование.
  • Отправку формы нужно изучить на уроке программирования.
  • Многоязычный путь или параметр трудно читать.
  • Неработающая ссылка может содержать неверно закодированное значение.

Частые ошибки при декодировании URL

Декодирование всего URL без понимания его структуры

Зарезервированные символы могут изменить структуру после декодирования. Разделите URL на компоненты и декодируйте только нужное значение.

Повторное декодирование

Повторное декодирование может превратить ранее безопасные данные в активные разделители или неожиданные пути. Выясните, почему существует несколько уровней кодирования.

Использование ручного поиска и замены

Замена %20 на пробелы не обрабатывает все закодированные символы, последовательности UTF-8, некорректно сформированный ввод или правила для знака плюса. Используйте в коде структурированный парсер URL или стандартный API.

Открытие незнакомого декодированного адреса назначения

Сначала декодируйте его как текст. Изучите схему, имя хоста, путь и параметры, прежде чем решать, стоит ли его посещать.

Путаница между кодировкой URL и кодировкой HTML

%26 и & в разных контекстах могут представлять амперсанд. Выбирайте декодер исходя из фактического представления.

Игнорирование недействительных процентных последовательностей

После знака процента должны следовать две шестнадцатеричные цифры. Неполные или недействительные последовательности могут указывать на повреждённый ввод.

Размещение паролей в URL

URL-адреса могут появляться в истории браузера, журналах, аналитике, скриншотах и общих сообщениях. Конфиденциальные учётные данные не следует помещать в строки запроса.

Вопросы безопасности

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

Приложения должны:

  • Анализировать URL с помощью стандартных URL-API.
  • Декодировать только подходящий компонент.
  • Проверять ожидаемые имена и значения параметров.
  • Ограничивать адреса перенаправления.
  • Избегать построения запросов к базе данных или команд оболочки из ненадёжного ввода.
  • Экранировать выходные данные с учётом контекста отображения.
  • Отклонять некорректно сформированные последовательности, когда это необходимо.
  • Регистрировать ошибки, не раскрывая конфиденциальные данные.

Декодирование — это не очистка данных. Оно раскрывает представленные символы, но не определяет, безопасны ли они для HTML, путей файлов, запросов к базе данных или перенаправлений.

Конфиденциальность и ответственное использование

URL может содержать поисковые термины, идентификаторы документов, адреса электронной почты, коды классов, имена файлов, данные отслеживания и другую информацию. Декодирование делает эту информацию более удобной для чтения, но не удаляет её.

Не вставляйте в сторонний инструмент приватные школьные ссылки, токены сброса пароля, подписанные URL-адреса, адреса записей учеников или данные аутентификации. Заменяйте конфиденциальные значения вымышленными примерами во время уроков и демонстраций отладки.

Перед тем как поделиться скриншотом декодированного URL, удалите имена учётных записей, приватные хосты, токены и идентификаторы документов.

Практический пример для разработчиков

Начинающим разработчикам стоит отдавать предпочтение структурированным URL-API. В JavaScript значение запроса можно проверить так:

const url = new URL(
  "https://example.edu/search?q=water%20cycle"
);

const query = url.searchParams.get("q");

console.log(query);
// water cycle

Такой подход анализирует URL и возвращает декодированное значение параметра. Он, как правило, безопаснее и понятнее, чем вручную разбивать всю строку по каждому знаку вопроса, амперсанду и знаку равенства.

Итоговый контрольный список

  • Исходный закодированный ввод сохранён.
  • Определён компонент URL, который нужно декодировать.
  • Процентные последовательности содержат две допустимые шестнадцатеричные цифры.
  • Знаки плюса интерпретированы с учётом правильного контекста.
  • Многобайтовые символы отображаются корректно.
  • Декодированные хост и адрес назначения проверены перед открытием.
  • Зарезервированные символы случайно не изменили предполагаемую структуру.
  • Двойное кодирование было отслежено, а не предположено.
  • Не были раскрыты пароли, токены или данные учеников.
  • Код приложения по возможности использует структурированные URL-API.

Похожие инструменты

Используйте инструмент кодирования URL, чтобы подготовить текст для использования в качестве компонента URL, а затем декодируйте его, чтобы проверить пример для урока.

Если ввод содержит сущности вроде < или ", используйте инструмент декодирования HTML. Для заведомо Base64-текста используйте инструмент декодирования Base64.

Выбор правильного декодера предотвращает ненужные преобразования и делает отладку более надёжной.

Заключение

Декодирование URL превращает последовательности в процентной кодировке в читаемые символы. Оно помогает ученикам понимать веб-адреса, а разработчикам — изучать значения запросов, запросы к API, многоязычный текст, перенаправления и проблемы двойного кодирования.

Самый безопасный способ — определить компонент URL, декодировать только необходимое и сохранить исходный ввод. Относитесь к результату как к данным, которые всё ещё требуют проверки.

Читаемую декодированную ссылку легче исследовать, но это не делает её автоматически безопасной или корректной. Перед использованием проверьте её структуру, адрес назначения, параметры, конфиденциальность и предполагаемую кодировку символов.

Для учителейДля студентов