У цій статті
Розуміння структури URL
URL (Uniform Resource Locator) — це адреса ресурсу в інтернеті. Кожна URL слідує структурованому формату, який вказує браузеру, куди йти та як туди дістатися. Розуміння цієї структури необхідне для веб-розробників, SEO-спеціалістів та всіх, хто працює з веб-API.
Повна URL може містити до семи окремих компонентів: схема (протокол), ім'я користувача та пароль (автентифікація), хост (домен), порт, шлях, рядок запиту та фрагмент (хеш). Більшість URL використовують лише кілька з них, але знання всіх допомагає налагоджувати складні URL.
Як працює парсинг URL
Парсинг URL розбиває рядок URL на окремі компоненти відповідно до RFC 3986. Кожен компонент має специфічні правила щодо дозволених символів та їх значення.
- Протокол (схема) — метод доступу до ресурсу: http, https, ftp, mailto або користувацькі схеми як myapp://
- Хост — доменне ім'я або IP-адреса сервера. Може включати субдомени (api.example.com) або бути адресою IPv4/IPv6
- Шлях — конкретне розташування ресурсу на сервері. Сегменти розділені прямими скісними рисками та можуть містити закодовані символи
Спробуйте безкоштовно — реєстрація не потрібна
Розібрати URL →Робота з параметрами запиту
Параметри запиту — це пари ключ-значення, додані до URL після знаку питання (?). Вони є найпоширенішим способом передачі даних у GET-запитах та широко використовуються в API, аналітиці та функціональності пошуку.
- Базовий формат — параметри використовують пари ключ=значення, розділені амперсандами: ?page=2&sort=name&order=asc
- URL-кодування — спеціальні символи повинні бути закодовані: пробіли стають %20 або +, амперсанди у значеннях стають %26
- Параметри масивів — деякі API використовують повторювані ключі (color=red&color=blue) або нотацію з дужками для масивів
- Порожні та відсутні значення — ?key= (порожній рядок) відрізняється від ?key (без значення) у багатьох серверних фреймворках
- Порядок параметрів — технічно параметри URL невпорядковані, але деякі API залежать від порядку для кешування або валідації підпису
Поради щодо налагодження URL
URL, що виглядають правильно на перший погляд, можуть містити тонкі проблеми кодування, відсутні компоненти або неочікувані символи. Ці поради допоможуть швидко виявити поширені проблеми.
- Завжди декодуйте перед читанням — URL з відсотковим кодуванням важко читати. Спочатку декодуйте, щоб побачити фактичні значення
- Перевіряйте подвійне кодування — %2520 означає, що сам знак відсотка був закодований (%25 = %), що вказує на подвійне кодування URL
- Стежте за кінцевими скісними рисками — /api/users та /api/users/ можуть маршрутизуватися по-різному залежно від конфігурації сервера
- Перевіряйте фрагмент — хеш-фрагмент ніколи не надсилається на сервер. Якщо вашому серверному коду він потрібен, використовуйте інший підхід
- Валідуйте хост — друкарські помилки в доменних іменах поширені. Перевіряйте відсутні точки, переставлені символи або неправильні TLD
Часті запитання
Яка різниця між URL, URI та URN?
URI (Uniform Resource Identifier) — це загальний термін для будь-якого ідентифікатора ресурсу. URL (Uniform Resource Locator) — це URI, що включає розташування та метод доступу. URN (Uniform Resource Name) — це URI, що називає ресурс без вказівки розташування. На практиці більшість людей використовують URL та URI як синоніми.
Чому деякі символи URL кодуються знаками відсотка?
URL-кодування перетворює символи зі спеціальним значенням в URL у безпечний формат. Наприклад, пробіл стає %20, оскільки пробіли недійсні в URL. Амперсанд (&) розділяє параметри запиту, тому літеральний амперсанд у значенні повинен бути закодований як %26.
Якої довжини може бути URL?
Офіційного обмеження в специфікації HTTP немає. Більшість браузерів підтримують URL до приблизно 2 048 символів. Сучасні браузери, як Chrome, підтримують до 2 МБ. Серверні обмеження варіюються. Для максимальної сумісності тримайте URL менше 2 000 символів та використовуйте POST-запити для великих обсягів даних.