Добре, конкретен въпрос. По какво се отличава хоста от пътя?
Ясно, че ако има порт, то това преди него е хост. А ако няма изрично споменат порт?
Ето и списък на компонентите:
  struct URLparts
    .scheme    dd  ?   ; https://  двойния слеш част от схемата ли е или разделител?
    .user      dd  ?   ; username:
    .password  dd  ?   ; passw0rd@
    .host      dd  ?   ; localhost
    .port      dd  ?   ; :8080
    .path      dd  ?   ; /path/path/path/file.txt
    .query     dd  ?   ; ?arg=adoifjas
    .fragment  dd  ?   ; #local_fragment
  ends
Примери:
    /path/path/file.txt  просто абсолютен път на текущия хост (от рута)
    path/path/file.txt   относителен път на текущия хост, спрямо текущия път.
    host/path/file.txt   абсолютен път на хоста "host"
    https://host/path/file.txt  първото след схемата е хоста? Или след двойния слеш?
    user@host/path/file.txt     първото след юзера е хоста? Или не?
    google.com?q=something@myhost/path/ тук хоста е myhost, а не google.com
Реално в момента ми е трудно да предположа как да се различи вторият от третият пример? Или да се промени начина на запис, така че да са различими...
Някакви идеи-коментари?