Почему python представляет URL-адрес (вместо базового в сочетании с URL-адресом), когда URL-адрес начинается с mailto?

Почему python представляет URL-адрес (вместо базового в сочетании с URL-адресом), когда URL-адрес начинается с mailto?

Это то, что произошло:

from urllib.parse import urljoin 

>>> urljoin('http://www.w3.org/Consortium/mission.html', 'mailto:site-comments@w3.org')
   'mailto:site-comments@w3.org'

но я ожидал, что результат будет:

   'http://www.w3.org/Consortium/mailto:site-comments@w3.org'

Поскольку:

>>> urljoin('http://www.w3.org/Consortium/mission.html', 'thing')
    'http://http://www.w3.org/Consortium/thing'

(Также см.: Python: путаница с urljoin)

Сначала я думал, что mailto присутствует в результате, потому что mailto - это абсолютный URL-адрес. Но mailto не начинается с // или схема: //, поэтому он не является абсолютным URL-адресом.

Примечание. Если URL-адрес является абсолютным URL-адресом (т. Е. Начинается с // или схема: //), имя хоста и / или схема URL-адреса будут присутствовать в результате.

См.: https://docs.python.org/3.0/library/urllib.parse.html

Итак, если "mailto:" не является абсолютным URL, почему "mailto:" является результирующим URL? Это поведение, которое я хочу, но я просто не понимаю, почему это происходит.

0 ответов

Другие вопросы по тегам