URL-адреси та рядки запитів

URL-адреси та рядки запитів

URL-адреси та рядки запитів

Шар URL реалізує парсинг у стилі WHATWG — таку ж поведінку, яку застосовують браузери — тому URL-адреси, витягнуті з документів, розв’язуються та нормалізуються так, як це робив би реальний агент користувача.


Парсинг та валідація

URL.parse() розбирає абсолютну або відносну URL-адресу; URL.can_parse() відповідає на питання про валідність без створення об’єкта. Помилки розбору викликають типізовану URLParseError.

Рядки запитів

URLSearchParams читає та редагує параметри запиту: append(), get(), get_all(), has() і delete() охоплюють круговий прохід, зберігаючи семантику множинних значень.


Поради та найкращі практики

  • Використовуйте can_parse() для недорогої валідації у фільтрах; створюйте за допомогою parse() лише коли потрібні компоненти
  • Пам’ятайте, що ключі запиту повторюються — використовуйте get_all(), коли параметр може з’явитися більше одного разу
  • Ловіть URLParseError замість попередньої валідації за допомогою регулярних виразів

Поширені проблеми

ПроблемаПричинаВиправлення
Не вдається розпарсити відносний URLНе вказано базуНадайте базу згідно URL.parse()
Повернено лише перше значення запитуВикористано get() для повторюваного ключаВикористовуйте get_all()
Дивні символи у компонентахНормалізація WHATWG у діїОчікується — це відповідає поведінці браузера

FAQ

Чи відповідає парсинг стандарту WHATWG?

Так — нормалізація та розподіл компонентів відтворюють поведінку браузера.

Як перевірити URL без його парсингу?

URL.can_parse() повертає валідність без створення об’єкта.

Чи можу я редагувати рядок запиту на місці?

Так — URLSearchParams підтримує кругові операції append/get/has/delete.


API Reference Підсумок

Клас/МетодОпис
URL.parseРозібрати URL
URL.can_parseПеревірка дійсності без створення
URLSearchParams.appendДодати параметр запиту
URLSearchParams.get_allУсі значення для ключа
URLParseErrorПомилка типізованого розбору

Дивіться також

 Українська