Sources used:
Each of the difference noted below should be categorized as follows:
- RFC 3986 is wrong
- uri_validate.py doesn't match RFC 3986
- URL Living Standard is wrong
- URL reference implementation doesn't match URL Living Standard
- Scripts used to gather the results has a bug
- Intentional difference between URL Living Standard and RFC 3986
Currently conforming URLs that are not valid URI references
Excluding URLs containing non-ASCII characters
- "\t :foo.com \n"
- " foo.com "
- " \t"
- ":foo.com/"
- ":"
- ":a"
- ":/"
- ":#"
- ":23"
- "::"
- "::23"
Bug 27687
is open to make all of these cases non-conforming.
Valid URI references that are non conforming URLs
- "http:foo.com"
- "http::@c:29"
- "http:/example.com/"
- "ftp:/example.com/"
- "https:/example.com/"
- "gopher:/example.com/"
- "ws:/example.com/"
- "wss:/example.com/"
- "http:example.com/"
- "ftp:example.com/"
- "https:example.com/"
- "gopher:example.com/"
- "ws:example.com/"
- "wss:example.com/"
- "http://192.0x00A80001"
- "http://user:pass@/"
- "http:/example.com/"
- "ftp:/example.com/"
- "https:/example.com/"
- "gopher:/example.com/"
- "ws:/example.com/"
- "wss:/example.com/"
- "http:example.com/"
- "ftp:example.com/"
- "https:example.com/"
- "gopher:example.com/"
- "ws:example.com/"
- "wss:example.com/"
- "http:@www.example.com"
- "http:/@www.example.com"
- "http:a:b@www.example.com"
- "http:/a:b@www.example.com"
- "http::b@www.example.com"
- "http:/:b@www.example.com"
- "http:/:@/www.example.com"
- "http://user@/www.example.com"
- "http:@/www.example.com"
- "http:/@/www.example.com"
- "http://@/www.example.com"
- "https:@/www.example.com"
- "http:a:b@/www.example.com"
- "http:/a:b@/www.example.com"
- "http://a:b@/www.example.com"
- "http::@/www.example.com"
- "http:a:@www.example.com"
- "http:/a:@www.example.com"
- "http:@:www.example.com"
- "http:/@:www.example.com"
- "http://ExAmPlE.CoM"
- "http://%ef%b7%90zyx.com"
- "http://%ef%bc%85%ef%bc%94%ef%bc%91.com"
- "http://%ef%bc%85%ef%bc%90%ef%bc%90.com"
- "http://%25"
- "http://hello%00"
- "http://%30%78%63%30%2e%30%32%35%30.01"
- "http://%30%78%63%30%2e%30%32%35%30.01%2e"
- "http://192.168.0.257"