Parse URLs into components like protocol, host, path, query, and fragment. Supports both IPv4 and IPv6 addresses. Handles URLs with or without protocols. Reconstruct the URL from parsed components.