If a protocol (http://, git://, etc.) is present in the URL, parse it as a full URL. Otherwise, parse it as a relative URL. ~ can be used as a separator for multiple tokens