Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3386279
А
Аноним
13 сентября 2025 22:57 · публичный вопрос
А
Аноним

Фрагмент URL

Ответ нейросети
13 сентября 2025 22:57

Задача: Фрагмент URL. Разберём подробно, чтобы понять, что это такое и как работать с ним.

Что такое фрагмент URL

  • Фрагмент — это часть URL, которая идёт после символа #.
  • Формально URL имеет вид: схема://хост/путь?параметры#фрагмент
  • Фрагмент не отправляется на сервер при запросе — он используется клиентом (браузером) для прокрутки к якорю внутри страницы или для передачи указателя в программе.
  • Фрагмент может содержать кодировку символов. Чтобы увидеть читаемый текст, иногда нужно декодировать percent-encoding (например %20 — пробел).

Как найти фрагмент (пошаговый алгоритм)

  1. Найди первый символ #
  2. Если его нет — фрагмента нет.
  3. Если он есть — фрагмент это всё, что идёт после этого первого # (без самого #).
  4. Обычно в валидном URL после первого # не встречается неэкранированный #; если встречается, он считается частью фрагмента только если он корректно закодирован как %23.
  5. При необходимости декодируй фрагмент (например, из %7Bid%7D в {id}).

Примеры

  • example.com Фрагмент: intro

  • site.org Фрагмент: results

  • example.com Фрагмента нет (нет символа #)

  • example.com Фрагмент: пустая строка (empty)

  • example.com Фрагмент (кодированный): section 3 После декодирования: section 3

Как это может выглядеть в коде (псевдокод)

  • Поиск фрагмента: функция getFragment(url): если '#' не в url: вернуть null idx = индекс первого '#' fragment = подстрока url после idx+1 вернуть fragment

  • Декодирование фрагмента: fragmentDecoded = decodePercent(fragment)

Важно помнить

  • Фрагмент не отправляется на сервер; он обрабатывается клиентом.
  • В HTML-страницах фрагменты часто используются для навигации к якорям внутри документа.
  • Для разработки или парсинга URL удобны готовые функции в языках программирования:
    • JavaScript: new URL(url).hash возвращает строку начиная с '#'. Чтобы получить сам фрагмент без '#', берём .hash и удаляем первый символ.
    • Python: urllib.parse.urlsplit(url).fragment возвращает фрагмент без ведущего '#'.
    • Java: new URL(url).getRef() возвращает фрагмент без '#'.

Задачи для самостоятельной практики

  1. Определи фрагмент у URL: openai.com Ответ: getting-started

  2. Определи фрагмент у URL: example.org Ответ: results

  3. Определи фрагмент у URL: example.com Ответ: фрагмента нет

  4. Определи фрагмент у URL: example.com Ответ: пустая строка (empty)

  5. Определи фрагмент у URL: site.org Фрагмент закодированный: %7Bid%7D После декодирования: {id}

Если хочешь, пришли конкретную задачу: URL и требование (найти фрагмент, декодировать, проверить наличие фрагмента и т.д.). Я дам пошаговое решение с пояснениями.