Добре, конкретен въпрос. По какво се отличава хоста от пътя?
Ясно, че ако има порт, то това преди него е хост. А ако няма изрично споменат порт?
Ето и списък на компонентите:
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
Реално в момента ми е трудно да предположа как да се различи вторият от третият пример? Или да се промени начина на запис, така че да са различими...
Някакви идеи-коментари?