knowledge-database (beta)

Current group: opera.tech

Unsolicitied URL correction

Unsolicitied URL correction  
Nisse_Engström
 Re: Unsolicitied URL correction  
Yngve Nysaeter Pettersen
 Re: Unsolicitied URL correction  
Nisse_Engström
 Re: Unsolicitied URL correction  
Yngve Nysaeter Pettersen
From:Nisse_Engström
Subject:Unsolicitied URL correction
Date:Sun, 16 Jan 2005 16:33:00 +0100
I was doing some testing, and entered a misspelled URL
in Opera's adress field:

http://foo.test/%7o/

I then entered the correct URL:

http://foo.test/%70/

Results:

Visible in URL field Sent in HTTP Request
-------------------- --------------------
Opera 7.54 : http://foo.test/x/ GET /%7o/ HTTP/1.1
Opera 7.60p1 : http://foo.test/x/ GET /%7o/ HTTP/1.1
Opera 7.60p2 : http://foo.test/x/ GET /%7o/ HTTP/1.1
Opera 7.60p3 : http://foo.test/x/ GET /%7o/ HTTP/1.1
Opera 7.60p4b: http://foo.test/%7o/ GET /%7o/ HTTP/1.1
Opera 7.60p4c: http://foo.test/%7o/ GET /%7o/ HTTP/1.1
Opera 8.00b1 : http://foo.test/%7o/ GET /%7o/ HTTP/1.1


What's going on here? Why does Opera insist on requesting
an unrelated and *invalid* URL, rather than the one I
typed in?


--n
From:Yngve Nysaeter Pettersen
Subject:Re: Unsolicitied URL correction
Date:Mon, 17 Jan 2005 21:40:38 GMT
On Sun, 16 Jan 2005 16:33:00 +0100, =?ISO-8859-1?Q?Nisse_Engstr=F6m?=
wrote:

>I was doing some testing, and entered a misspelled URL
>in Opera's adress field:
>
> http://foo.test/%7o/
>
>I then entered the correct URL:
>
> http://foo.test/%70/
>
>Results:
>
> Visible in URL field Sent in HTTP Request
> -------------------- --------------------
> Opera 7.54 : http://foo.test/x/ GET /%7o/ HTTP/1.1
> Opera 7.60p1 : http://foo.test/x/ GET /%7o/ HTTP/1.1
> Opera 7.60p2 : http://foo.test/x/ GET /%7o/ HTTP/1.1
> Opera 7.60p3 : http://foo.test/x/ GET /%7o/ HTTP/1.1

The visible display was a bug in the deescape-for-display code that
has now been fixed.

> Opera 7.60p4b: http://foo.test/%7o/ GET /%7o/ HTTP/1.1
> Opera 7.60p4c: http://foo.test/%7o/ GET /%7o/ HTTP/1.1
> Opera 8.00b1 : http://foo.test/%7o/ GET /%7o/ HTTP/1.1
>
>
>What's going on here? Why does Opera insist on requesting
>an unrelated and *invalid* URL, rather than the one I
>typed in?

AFAICT what Opera sends is what is in the address field the "%7o" URL
when that is entered, the "%70" when that is entered.

The %7o URL was what you entered, and it is what Opera stores in its
URL database. It may decode the %XX representation for display
purposes, but what you entered is what it will send to the server
(although Opera may escape characters on its own accord, as well). (In
the "x" cases what is displayed is due to a bug.)

In the case of "%70" which is a valid %XX code Opera will display that
in the address field as "p", since that is a more readable form of the
escapecode, but it will send "%70" since that was what you entered,
and the URI/HTTP specs specifically says that you should not deescape
unncessarily. If you later uses enter the same URL but replaces "%70"
with the letter "p" instead, Opera will still use the "%70" version if
it is still in the cache/visited links database since the two versions
are equivalent and the server must accept both as the same (except for
special characters).
From:Nisse_Engström
Subject:Re: Unsolicitied URL correction
Date:Tue, 18 Jan 2005 09:53:51 +0100
Yngve Nysaeter Pettersen wrote:
> On Sun, 16 Jan 2005 16:33:00 +0100, =?ISO-8859-1?Q?Nisse_Engstr=F6m?=
> wrote:
>
> >What's going on here? Why does Opera insist on requesting
> >an unrelated and *invalid* URL, rather than the one I
> >typed in?
>
> AFAICT what Opera sends is what is in the address field the "%7o" URL
> when that is entered, the "%70" when that is entered.
>
> The %7o URL was what you entered, and it is what Opera stores in its
> URL database. It may decode the %XX representation for display
> purposes, but what you entered is what it will send to the server
> (although Opera may escape characters on its own accord, as well). (In
> the "x" cases what is displayed is due to a bug.)

I see that a clarification is necessary. (I should have
been clearer in the first article. Sorry about that.)

If I enter "%7o", Opera displays "%7o".
If I enter "%70", Opera *changes* it to "%7o".

And this remains even after I clean out the
typed in and visited URLs.

New tests, with different domains to get around
the tainted URL cache:

[Entered IN THE ORDER LISTED]

URL Entered URL displayed
----------- -------------
http://1.test/%70/ http://1.test/p/
http://1.test/%71/ http://1.test/q/
http://1.test/%7e/ http://1.test/~/
!! http://1.test/%7g/ http://1.test/p/
!! http://1.test/%7h/ http://1.test/p/

http://2.test/%7g/ http://2.test/%7g/
!! http://2.test/%7h/ http://2.test/%7g/
!! http://2.test/%70/ http://2.test/%7g/
http://2.test/%71/ http://2.test/q/
http://2.test/%72/ http://2.test/r/
!! http://2.test/p/ http://2.test/%7g/
http://2.test/q/ http://2.test/q/

http://3.test/%7h/ http://3.test/%7h/
!! http://3.test/%7g/ http://3.test/%7h/
!! http://3.test/%70/ http://3.test/%7h/
http://3.test/%71/ http://3.test/q/
http://3.test/%72/ http://3.test/r/
!! http://3.test/p/ http://3.test/%7h/
http://3.test/q/ http://3.test/q/


It looks as if invalid characters in an escape
sequence are incorrectly decoded to '0'.

This took place on Windows 98SE, Opera 8.00b.7401.
No round-trip to a proxy or server was made this time.


--n
From:Yngve Nysaeter Pettersen
Subject:Re: Unsolicitied URL correction
Date:Tue, 18 Jan 2005 15:10:24 GMT
On Tue, 18 Jan 2005 09:53:51 +0100, =?ISO-8859-1?Q?Nisse_Engstr=F6m?=
wrote:

>Yngve Nysaeter Pettersen wrote:
>> On Sun, 16 Jan 2005 16:33:00 +0100, =?ISO-8859-1?Q?Nisse_Engstr=F6m?=
>> wrote:
>>
>> >What's going on here? Why does Opera insist on requesting
>> >an unrelated and *invalid* URL, rather than the one I
>> >typed in?
>>
>> AFAICT what Opera sends is what is in the address field the "%7o" URL
>> when that is entered, the "%70" when that is entered.
>>
>> The %7o URL was what you entered, and it is what Opera stores in its
>> URL database. It may decode the %XX representation for display
>> purposes, but what you entered is what it will send to the server
>> (although Opera may escape characters on its own accord, as well). (In
>> the "x" cases what is displayed is due to a bug.)
>
>I see that a clarification is necessary. (I should have
>been clearer in the first article. Sorry about that.)
>
>If I enter "%7o", Opera displays "%7o".
>If I enter "%70", Opera *changes* it to "%7o".

I fixed part of that problem yesterday, and completed the fix today.
Ot was a couple of problems related to how escaped characters was
handled when illegal characters was used in the %XX segments.

Thanks for the heads up.
   

Copyright © 2006 knowledge-database   -   All rights reserved