I use the URI.merge method, and I met something incorrect. It is a bug of URI lib? For example: require 'uri' site_url = 'http://www.try.com/test.aspx' cur_url ='?page=2' site=URI.parse(site_url) cur=URI.parse(cur_url) p farther.merge(cur) The result: #<URI::HTTP:0x15bc060 URL:http://www.try.com/?page=2<http://www.try.com/?page=2> > But what I want is: *http://www.try.com/test.aspx?page=2* So I think this is a bug,because the ?page=2 is legal relative url in html.
on 2007-07-30 13:39
on 2007-07-30 13:47
nan wu wrote: > site=URI.parse(site_url) > > *http://www.try.com/test.aspx?page=2* > > So I think this is a bug,because the ?page=2 is legal relative url in html. > It's legal under RFC 3986, but not under RFC 2396, as far as I know. The URI library is written to conform to the latter. There was a suggestion a little while ago to update it, but I don't know that anything came of it. If I had the time I'd do it myself, but I'm under the gun at the moment.
on 2007-07-30 13:57
Maybe I should report it to the Akira Yamada the original author of URI lib. The URI lib should be updated since we will meet many cases like that with RFC 3986. I have checked the source codes of URI lib. I found it completely follow the RFC 2396. 2007/7/30, Alex Young <email@example.com>: