В чём разница между URL и URI?

«В чём разница между URL и URI?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

URI (Uniform Resource Identifier) — это общий термин для строки, которая идентифицирует какой-либо ресурс.

URL (Uniform Resource Locator) — это подтип URI, который не только идентифицирует ресурс, но и предоставляет информацию о месте его нахождения (доступе) в сети.

Проще: Все URL являются URI, но не все URI являются URL.

Классификация URI:

  1. URL (Locator): Указывает как и где найти ресурс.
    • Пример: https://example.com/docs/page.html
    • Пример: ftp://files.example.com/archive.zip
  2. URN (Uniform Resource Name): Указывает уникальное имя ресурса в конкретном пространстве имён, но не путь к нему.
    • Пример: urn:isbn:0451450523 (книга)
    • Пример: urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66

Сравнение на примерах:

Пример Тип Объяснение
https://api.service.com/users/123 URL (и URI) Содержит протокол (https), хост (api.service.com) и путь (/users/123) для доступа к ресурсу.
mailto:user@domain.com URI (но не URL в строгом смысле) Идентифицирует ресурс (почтовый адрес), но не указывает его местоположение в сети для прямого доступа. Это URI scheme.
./config.yaml Относительный URI Идентифицирует ресурс относительно текущего контекста.

Техническая деталь: В современных спецификациях (RFC 3986) концепция URN и URL считается устаревшей, и все они рассматриваются просто как URI. Однако различие между "идентификатором" (URI) и "адресом" (URL) остаётся полезным на практике.