Почему 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? Это поведение, которое я хочу, но я просто не понимаю, почему это происходит.