William V Wishon writes:
>
> The hyperlink that is in the email looks like what you said, like this
>
> http://mail.wishon.org/?redirect=http%3A%2F%2Fwww.nytimes.com%2F2001%2F06%
> 2F 05%2Fpolitics%2F05BUSH.html
>
> If I put that into a new window it successfully loads the sqwebmail page,
> I can see the background for a second before it redirects to what should
> be the real url. It is that second url that is the one in error. Using
> ethereal I was able to determine that the thing trying to cause the
> refresh is a Refresh Header like this:
>
> Refresh: 0; URL="http://www.nytimes.com/2001/06/05/politics/05BUSH.html"
>
> I couldn't find the Refresh header mentioned in the http spec, is it part
> of the http standard? Opera is interpreting the url as a url relative to
See http://www.w3.org/Protocols/HTTP/Issues/http-wg.html, scroll down to
"Issues for beyond HTTP/1.1".
> the current host and sending a get request to mail.wishon.org like this:
>
> GET /%22http://www.nytimes.com/2001/06/05/politics/05BUSH.html%22 HTTP/1.1
> User-Agent: Opera/5.0 (Linux 2.4.1 i686; U) [en]
> Host: mail.wishon.org
>
> Which is what causes the 404 on my server. Is this a missinterpretation of
> the Refresh header?
Yes. Opera should either ignore this header, and force you to manually
click on the link, or do it correctly.
I suspect that Opera can't swallow the fact that the argument to URL is
quoted. It doesn't see http:// immediately after URL=, then interprets the
whole bloody thing as a relative URL.
HTTP headers are derived from MIME headers, where MIME paramater arguments
can always be quoted.
--
Sam