URLclass allows you store absolute or relative URLs and access the various parts (scheme, host, port, part, query, fragment). It will also accept and attempt to resolve a relative URL against an absolute URL already stored.