URL parser fixture matrix

Forty original fixtures. Y means the declared adapter returned fields; it is not a URL verdict.

40 of 40 rows

Node 24.22.1 LTS, Python 3.15.1, Ruby 4.0.9 (uri 1.1.1)
IDPurposeNode acceptedPython acceptedRuby acceptedEqual serialization
P01Userinfo and destination hostYYYN
P02Unicode and encoded path separatorYYN–
P03IPv6, explicit port and dot segmentsYYYN
P04Scheme-relative URL resolutionYYYN
P05Host case, default port and dot segmentsYYYN
P06Parent-relative referenceYYYY
P07Root-relative referenceYYYY
P08Query-only referenceYYYY
P09Fragment-only referenceYYYY
P10Empty relative referenceYYYY
P11Bare hostname-looking relative pathYYYY
P12HTTPS scheme without slashesYYYN
P13Backslash path separatorsYYN–
P14Encoded single-dot segmentYYYN
P15Encoded parent-dot segmentYYYN
P16Double-encoded dot textYYYY
P17Literal spaces in path and queryYYN–
P18Leading and trailing ASCII spacesYYN–
P19Embedded newline in hostnameYYN–
P20Embedded tab in hostnameYYN–
P21Encoded user-info delimiterYYYY
P22Synthetic username and passwordYYYY
P23Multiple at signsYYN–
P24Empty user informationYYYN
P25Default HTTP portYYYN
P26Nondefault HTTP portYYYY
P27Trailing-dot hostname and default portYYYN
P28ASCII punycode labelYYYY
P29Mixed-script subdomain; Cyrillic aYYN–
P30RFC5737 documentation IPv4YYYY
P31Integer spelling of documentation IPv4 192.0.2.1YYYN
P32Port zeroYYYY
P33Maximum unsigned 16-bit portYYYY
P34Out-of-range portNNY–
P35Negative port textNNN–
P36Invalid documentation IPv6 spellingNNN–
P37Empty explicit portYYYN
P38Repeated and empty query valuesYYYY
P39Percent-encoded ASCII host labelYYYN
P40Malformed percent escapesYYN–

CC BY 4.0 original compilation. No input is sent and no fixture is requested.