KB

Base64, URL-кодирование, JSON, MIME-типы и конвертер временных меток

Base64, URL-кодирование, форматирование JSON, поиск MIME-типа и конвертация временных меток Unix — пять повседневных утилит разработчика.

Пять небольших преобразований, с которыми разработчики сталкиваются постоянно

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

Base64 — кодирование, а не шифрование

Base64 кодирует обычный текст в Base64 и декодирует строки Base64 обратно в исходное содержимое.

Когда использовать: декодирование значения Base64 из ответа API, JWT или конфигурационного файла; кодирование бинарных или текстовых данных для передачи в форматах без поддержки бинарных данных, например JSON или URL; быстрый просмотр заголовка Basic Auth, закодированного в Base64.

Как читать результаты: Base64 — это кодирование, не шифрование: декодировать его может кто угодно мгновенно, поэтому сам по себе он не даёт защиты. Читаемый Base64 в заголовке или токене — это нормально; никогда не принимайте его наличие за признак защищённости данных.

URL-кодирование / декодирование — безопасные символы в URL

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

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

Как читать результаты: пробел превращается в %20 (или + именно в строках запроса — более старое соглашение), а зарезервированные символы вроде &, = и / кодируются, когда находятся внутри значения параметра, а не выполняют функцию структуры URL. Двойное кодирование — частая ошибка: проверяйте, не закодирована ли строка уже, прежде чем кодировать снова.

Форматирование JSON — валидация и чтение payload

Форматирование JSON проверяет синтаксис JSON и переформатирует его с правильными отступами, указывая точное место синтаксической ошибки.

Когда использовать: диагностика ответа API или payload, который не парсится; превращение минифицированного JSON в читаемый вид; быстрая проверка валидности конфигурационного файла перед развёртыванием.

Как читать результаты: указанное место ошибки обычно соответствует точке, где парсер «сдался», и часто оно чуть позже фактической ошибки — например, пропущенной запятой на предыдущей строке. Если указанное место выглядит корректным, сначала проверьте строку прямо перед ним.

MIME-тип — что должен отдавать сервер

MIME-тип ищет стандартный MIME-тип, связанный с расширением файла — что сервер должен отправлять в заголовке Content-Type для этого файла.

Когда использовать: установка правильного Content-Type при отдаче файла из собственного кода; диагностика, почему браузер скачивает файл вместо отображения (или наоборот); настройка сопоставления MIME-типов для нестандартного расширения.

Как читать результаты: некоторые расширения соответствуют более чем одному допустимому типу в зависимости от контекста — например, .js как text/javascript против устаревшего application/javascript. При наличии выбора предпочитайте актуальную стандартную рекомендацию, а не устаревшие значения из старых конфигураций.

Временная метка — epoch в понятную дату

Временная метка конвертирует временные метки Unix (секунды с 1 января 1970 года) в понятные даты и обратно, с учётом часовых поясов.

Когда использовать: чтение сырых epoch-значений в логах, ответах API или полях базы данных; конвертация обычной даты в epoch для API-запроса или скрипта; проверка, во сколько на самом деле истекает токен, сертификат или сессия по местному времени.

Как читать результаты: обратите внимание на секунды или миллисекунды — 13-значное число почти всегда миллисекунды, 10-значное — секунды, и их путаница даёт дату совершенно не из того века. Всегда уточняйте, в каком часовом поясе показан результат, прежде чем на него полагаться в чём-то важном по времени.

Как это работает вместе

Base64 и URL-кодирование/декодирование оба решают задачу безопасной передачи данных, но на разных уровнях — один для бинарных данных в тексте, другой для спецсимволов в URL. Форматирование JSON, MIME-тип и Временная метка ближе к повседневным утилитам отладки: переформатировать payload, проверить значение заголовка или разобраться в числе, которое на самом деле является датой.