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