parser for rfc3986