79 lines
1.6 KiB
Plaintext
79 lines
1.6 KiB
Plaintext
Already normal form
|
|
http://example.com/
|
|
http://example.com/
|
|
|
|
Add a trailing slash
|
|
http://example.com
|
|
http://example.com/
|
|
|
|
Remove an empty port segment
|
|
http://example.com:/
|
|
http://example.com/
|
|
|
|
Remove a default port segment
|
|
http://example.com:80/
|
|
http://example.com/
|
|
|
|
Capitalization in host names
|
|
http://wWw.exaMPLE.COm/
|
|
http://www.example.com/
|
|
|
|
Capitalization in scheme names
|
|
htTP://example.com/
|
|
http://example.com/
|
|
|
|
Capitalization in percent-escaped reserved characters
|
|
http://example.com/foo%2cbar
|
|
http://example.com/foo%2Cbar
|
|
|
|
Unescape percent-encoded unreserved characters
|
|
http://example.com/foo%2Dbar%2dbaz
|
|
http://example.com/foo-bar-baz
|
|
|
|
remove_dot_segments example 1
|
|
http://example.com/a/b/c/./../../g
|
|
http://example.com/a/g
|
|
|
|
remove_dot_segments example 2
|
|
http://example.com/mid/content=5/../6
|
|
http://example.com/mid/6
|
|
|
|
remove_dot_segments: single-dot
|
|
http://example.com/a/./b
|
|
http://example.com/a/b
|
|
|
|
remove_dot_segments: double-dot
|
|
http://example.com/a/../b
|
|
http://example.com/b
|
|
|
|
remove_dot_segments: leading double-dot
|
|
http://example.com/../b
|
|
http://example.com/b
|
|
|
|
remove_dot_segments: trailing single-dot
|
|
http://example.com/a/.
|
|
http://example.com/a/
|
|
|
|
remove_dot_segments: trailing double-dot
|
|
http://example.com/a/..
|
|
http://example.com/
|
|
|
|
remove_dot_segments: trailing single-dot-slash
|
|
http://example.com/a/./
|
|
http://example.com/a/
|
|
|
|
remove_dot_segments: trailing double-dot-slash
|
|
http://example.com/a/../
|
|
http://example.com/
|
|
|
|
Test of all kinds of syntax-based normalization
|
|
hTTPS://a/./b/../b/%63/%7bfoo%7d
|
|
https://a/b/c/%7Bfoo%7D
|
|
|
|
Unsupported scheme
|
|
ftp://example.com/
|
|
fail
|
|
|
|
Non-absolute URI
|
|
http:/foo
|
|
fail |