- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Wed, 04 Jan 2012 11:42:16 +0100
- To: "Martin J. Dürst" <duerst@it.aoyama.ac.jp>
- CC: httpbis Group <ietf-http-wg@w3.org>
On 2012-01-04 11:27, "Martin J. Dürst" wrote: > Hello Julian, others, > > On 2012/01/03 23:43, Julian Reschke wrote: >> On 2011-12-30 18:51, Julian Reschke wrote: >>> ... >>> Indeed; see my tests at >>> <http://greenbytes.de/tech/tc/httpredirects/#l-fragments> (note that >>> Safari appears to have funny issues filling the iframes; but navigating >>> to the linked resource gets you proper results). >>> ... >> >> I just realized that the rule we would need to describe *almost* is the >> one define in the URI spec >> (<http://greenbytes.de/tech/webdav/rfc3986.html#rfc.section.5.2>) as >> "relative resolution": > >> "Almost", because it doesn't use Base.fragment when R.frament is >> undefined. >> >> a) Should we try describe the algorithm based on RFC 3986 ("do relative >> resolution as defined by ..., then, if the result doesn't have a >> fragment, add the one from the Base URI")? > > I'm not at all sure that this description is correct. It would mean that > I can have something like: > Request URI: http://1.example.org/path1/file1.ext > Redirect URI: http://2.example.org#frag2 > > and the result would be: > http://2.example.org/path1/file1.ext#frag2 > ... I think that's incorrect. This should be resolved as per: if defined(R.scheme) then T.scheme = R.scheme; T.authority = R.authority; T.path = remove_dot_segments(R.path); T.query = R.query; else (left out) endif; T.fragment = R.fragment; thus to http://2.example.org#frag2 Best regards, Julian
Received on Wednesday, 4 January 2012 11:09:33 UTC