use URI v URL, to avoid URL resolution for map equals, etc
no need for toString() calls