* * * * *
Just gotta love MSIE …
> I have a question about HTTP (HyperText Transport Protocol) for you. Okay.
> If you compile Seminole 2.14 [1] and go to a URL (Uniform Resource Locator)
> that is a directory with an index.html in it, you will find that (unlike
> Apache [2]), I instead just send out a temporary redirect to the
> /index.html URL instead of serving up the index.html as the directory URL.
>
> Now, it seems that this works fine with all browsers except one: Microsoft
> Internet Explorer. Apparently a 302 Redirect causes MSIE to just display
> the redirect page.
>
Question from Mark [3] via email
The solution Mark found was to not send out the HTTP header Content-Type: and
then MSIE would work properly. When I investigated though:
> Very curious. Using MSIE 5.0 (original and SP2) if I went to:
>
>
http://www.example.net/testredirect
>
> I got redirected. But if I go to
>
> www.example.net/testredirect
>
> I get the MSIE redirect page (and not the one from the web server!).
>
My reply to Mark's email
Mark then asked if it was a violation of RFC-2616 [4] to not send out the
Content-Type: header. Nope.
>
> 7.2.1 Type
>
> When an entity-body is included with a message, the data type of that
> body is determined via the header fields Content-Type and Content-
> Encoding. These define a two-layer, ordered encoding model:
>
> entity-body := Content-Encoding( Content-Type( data ) )
>
> Content-Type specifies the media type of the underlying data.
> Content-Encoding may be used to indicate any additional content
> codings applied to the data, usually for the purpose of data
> compression, that are a property of the requested resource. There is
> no default encoding.
>
> Any HTTP/1.1 message containing an entity-body SHOULD include a
> Content-Type header field defining the media type of that body. If
> and only if the media type is not given by a Content-Type field, the
> recipient MAY attempt to guess the media type via inspection of its
> content and/or the name extension(s) of the URI used to identify the
> resource. If the media type remains unknown, the recipient SHOULD
> treat it as type "application/octet-stream".
>
>
§ 7.2.1 of RFC-2616 [5]
The SHOULD gets Mark off the hook for not sending out the Content-Type:
header.
But then Mark also found:
> Internet Explorer does not properly handle an HTTP/1.1 302 redirect
> returned from a proxy server or Internet server when the HTTP/1.1 302
> redirect is sent to Internet Explorer in two separate TCP frames (one with
> the HTTP/1.1 302 redirect, and the other with a HTML body containing a page
> for the new location).
>
Internet Explorer Returns Error Message When Being Redirected [6]
Incredible. Not only is this for MSIE version FOUR but it still doesn't work
properly for MSIE version FIVE.
Just gotta love MSIE …
[1]
http://gladesoft.com/products/seminole/
[2]
http://httpd.apache.org/
[3]
http://www.conman.org/people/myg/
[4]
http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc2616.html
[5]
http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc2616.html
[6]
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q193489&LNG=ENG&SA=ALLKB&FR=0
Email author at
[email protected]