Bug #8352

uri squeezes a sequence of slashes in merging paths when it shouldn't

Added by Akinori MUSHA 12 months ago. Updated 12 months ago.

[ruby-core:54729]
Status:Open
Priority:Normal
Assignee:akira yamada
Category:lib
Target version:-
ruby -v:ruby 2.1.0dev (2013-05-01 trunk 40540) [x86_64-freebsd9] Backport:1.9.3: UNKNOWN, 2.0.0: UNKNOWN

Description

RFC 2896 (on which the library currently is based) or RFC 3986 says nothing about a sequence of slashes in the path part except for parsing rules when a URI (path) starts with two slashes.

It should be perfectly valid to have a slash right after another, and there is no reason to "normalize" a sequence of slashes into a single slash, which uri actually does in merging paths:

URI.parse('http://example.com/foo//bar/')+'.'
=> #

Fixing this may be as easy as changing the regexp in URI::Generic#split_path from %r{/+} to %r{/}, but I wonder how the impact of incompatibility it may introduce would be.


Related issues

Related to ruby-trunk - Feature #2542: URI lib should be updated to RFC 3986 Assigned 01/01/2010

History

#1 Updated by Akinori MUSHA 12 months ago

s/RFC 2896/RFC 2396/

Also available in: Atom PDF