Разъяснение по компоненту пути URI?
В соответствии с RFC 3986 Раздел 3 - Синтаксические компоненты:
Компоненты схемы и пути являются обязательными, хотя путь может быть пустым (без символов).
Может кто-нибудь уточнить, как может потребоваться компонент пути, если он может быть пустым? Может быть, я неправильно понимаю определение "требуемый" в этом контексте, но я предположил, что оно означает что-то вроде "должно быть непустым", что, очевидно, противоречит спецификации здесь.
2 ответа
Здесь "обязательный" означает просто "всегда присутствующий": компоненты схемы и пути абсолютного URI всегда присутствуют.
Компонент схемы не может быть пустым, поскольку для производственной "схемы" требуется хотя бы один символ.
Компонент пути может быть пустым, потому что производственный "путь-пустой" (часть "hier-part") состоит из нулевых символов.
Обычный практический пример пустого, точнее, пустого пути, имеет вид URI http://stackru.com
где путь пуст. Компонент власти (в данном случае это stackru.com
) недостаточно информации для идентификации ресурса.
Когда полномочия пусты, путь должен начинаться с /
чтобы отличить путь от власти - scheme:///
является допустимым URI - следовательно, путь является пустым. Также взгляните на этот ответ для дальнейшего чтения.