В этой статье
Структура 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-запросы для больших объёмов данных.