apache 1.2b* and "lesser" browsers

apache 1.2b* and "lesser" browsers

Post by Carol Wan » Fri, 13 Dec 1996 04:00:00



i've recently upgraded our webserver to apache 1.2b1 and now b2.
netscape and msie had little problem with this, but websurfer
(netmanage) and both aolpress and gnnpress took it badly.  

there was some advertising type blurb on the main apache web page
about the 1.2b* being able to deal gracefully with http 1.0 browsers,
but this is not happening for me! 8(  8)  is there some compile or
configuration flag that i've missed?
--
Carol Wang        Keeper of www.skate.org, Founding Mother of the CWIA


 
 
 

apache 1.2b* and "lesser" browsers

Post by Jari Makel » Tue, 17 Dec 1996 04:00:00



> there was some advertising type blurb on the main apache web page
> about the 1.2b* being able to deal gracefully with http 1.0 browsers,
> but this is not happening for me! 8(  8)  is there some compile or
> configuration flag that i've missed?

There was a short text about this on the latest ApacheWeek
<http://www.apacheweek.com/>:

"HTTP Version Number

Apache 1.2 supports HTTP/1.1, so it marks all its responses as being
'HTTP/1.1'. This was reported as a bug because it responds with
HTTP/1.1 even if the request was from a HTTP/1.0 client. However this
is the correct and desired behaviour, not a bug. It allows browsers
which implement some features of HTTP/1.1, but not all, to know that
the server they are talking to can use those features. This browser
could not send HTTP/1.1 requests since it is not fully compliant."

So I guess Your browser doesn't work because it thinks it cannot while
it really could.

Jari
--
             Nothing is perfect - I've seen it and it is

 
 
 

apache 1.2b* and "lesser" browsers

Post by Larry Doolitt » Wed, 18 Dec 1996 04:00:00




: There was a short text about this on the latest ApacheWeek
: <http://www.apacheweek.com/>:

: Apache 1.2 supports HTTP/1.1, so it marks all its responses as being
: 'HTTP/1.1'. This was reported as a bug because it responds with
: HTTP/1.1 even if the request was from a HTTP/1.0 client. However this
: is the correct and desired behaviour, not a bug. It allows browsers
: which implement some features of HTTP/1.1, but not all, to know that
: the server they are talking to can use those features. This browser
: could not send HTTP/1.1 requests since it is not fully compliant."

: So I guess Your browser doesn't work because it thinks it cannot while
: it really could.

Sounds like B.S. to me.  If a browser was written _before_ 1.1 existed
(and it arguably doesn't exist even today), sends a 1.0 request, and gets
back a 1.1 answer, that's a server bug.


 
 
 

apache 1.2b* and "lesser" browsers

Post by Drazen Kac » Thu, 19 Dec 1996 04:00:00



>Sounds like B.S. to me.  If a browser was written _before_ 1.1 existed
>(and it arguably doesn't exist even today), sends a 1.0 request, and gets
>back a 1.1 answer, that's a server bug.

Not so, because 1.1 was designed with installed 1.0 base in mind. There
are some headers that 1.1 server must not send to 1.0 client and I
believe this is not the case here. Without consulting the spec, IIRC
2.x server must not send 2.x response to 1.x client because different
major numbers in protocol version indicate incompatible changes.
Everything is OK with different minor numbers, as long as server doesn't
send stuff that client can't understand. And if it does, it can't label
itself as 1.1, because it's not 1.1 compliant.

--
Life is a *ly transmitted disease.



 
 
 

apache 1.2b* and "lesser" browsers

Post by Chuck Murck » Thu, 19 Dec 1996 04:00:00





> : There was a short text about this on the latest ApacheWeek
> : <http://www.apacheweek.com/>:

> : Apache 1.2 supports HTTP/1.1, so it marks all its responses as being
> : 'HTTP/1.1'. This was reported as a bug because it responds with
> : HTTP/1.1 even if the request was from a HTTP/1.0 client. However this
> : is the correct and desired behaviour, not a bug. It allows browsers
> : which implement some features of HTTP/1.1, but not all, to know that
> : the server they are talking to can use those features. This browser
> : could not send HTTP/1.1 requests since it is not fully compliant."

> : So I guess Your browser doesn't work because it thinks it cannot while
> : it really could.

> Sounds like B.S. to me.  If a browser was written _before_ 1.1 existed
> (and it arguably doesn't exist even today), sends a 1.0 request, and gets
> back a 1.1 answer, that's a server bug.



Well, according to HTTP 1.1 standard, that's legal, BS or not.

--
chuck
Chuck Murcko
The Topsail Group, West Chester PA USA

 
 
 

apache 1.2b* and "lesser" browsers

Post by Laurent PREVOS » Thu, 19 Dec 1996 04:00:00


Mhhh...
Maybe this could explain the following problem :
I got java applets that download various stuff (textplain, gif)
from the server.

Everything worked fine with apache 1.1.1 but, using apache 1.2b2,
appletviewer will fail (pretending that so called gifs are no gifs).
Netscape 3 works flawlessly with both servers.

I suspect some problem in appletviewer (consequently even in the whole
java.net.* of jdk 1.02) having it not handle http 1.1 correctly.

Any ideas ?

Laurent

 
 
 

apache 1.2b* and "lesser" browsers

Post by Larry Doolitt » Thu, 19 Dec 1996 04:00:00



: >Sounds like B.S. to me.  If a browser was written _before_ 1.1 existed
: >(and it arguably doesn't exist even today), sends a 1.0 request, and gets
: >back a 1.1 answer, that's a server bug.

: Not so, because 1.1 was designed with installed 1.0 base in mind. There
: are some headers that 1.1 server must not send to 1.0 client and I
: believe this is not the case here. Without consulting the spec, IIRC
: 2.x server must not send 2.x response to 1.x client because different
: major numbers in protocol version indicate incompatible changes.
: Everything is OK with different minor numbers, as long as server doesn't
: send stuff that client can't understand. And if it does, it can't label
: itself as 1.1, because it's not 1.1 compliant.

This point of view was discussed with me by e-mail, also.
It says "The 1.0 spec as covered in RFC 1945 allows us to change minor
versions from request to response."  That presupposes that all (pragmatically)
working 1.0 browsers conform -- to a spec that may well have been
approved _after_ the browser was written.  Furthermore, when I reread
RFC 1945 I don't see that it _requires_ 1.0 browsers to accept headers
other than 0.9 and 1.0, although it implies that they would work if they
knew enough to ignore messages that they don't understand.

I have patched my copy of Chimera-1.65 to fix this problem: change the
"8" to "7" in line 173 of src/http.c.

I am unconvinced that breaking browsers is the Right Thing To Do [TM],
when the server could just as easily send back a minor version number
that is lower of (what it knows, what the client sent).


 
 
 

apache 1.2b* and "lesser" browsers

Post by Drazen Kac » Fri, 20 Dec 1996 04:00:00



>This point of view was discussed with me by e-mail, also.
>It says "The 1.0 spec as covered in RFC 1945 allows us to change minor
>versions from request to response."  That presupposes that all (pragmatically)
>working 1.0 browsers conform -- to a spec that may well have been
>approved _after_ the browser was written.  Furthermore, when I reread
>RFC 1945 I don't see that it _requires_ 1.0 browsers to accept headers
>other than 0.9 and 1.0, although it implies that they would work if they
>knew enough to ignore messages that they don't understand.

There is no headers in 0.9, I think. :)
Not all browsers which label themself as HTTP/1.0 implement 1.0 protocol.
The most notorious example is parsing correctly

   Content-type: text/html; charset=whatever

WWW Library was (until 1994?) brain damaged in this respect.
There are two things 1.1 implementation can do.
  1. Pretend to be 1.0 implementation. This can cause performance downgrade
     because HTTP version you get is from the immediate client. There
     can be 1.1 browser going through 1.0 (non-cacheing) gateway to
     the 1.1 server.
  2. Send a 1.1 version in response and break really stupid clients.

Quote:>I have patched my copy of Chimera-1.65 to fix this problem: change the
>"8" to "7" in line 173 of src/http.c.

See? It was so simple. The charset example is simple, too. Client is not
required to do something with charset, just to parse correctly the header.
One if(c = strchr(header, ';')) *c = 0; is enough. Change strchr() with
index() for BSD systems.

Quote:>I am unconvinced that breaking browsers is the Right Thing To Do [TM],
>when the server could just as easily send back a minor version number
>that is lower of (what it knows, what the client sent).

Server is not breaking 1.0 browsers. All it can break are some programs
masquerading as HTTP/1.0 clients. And I'm convinced this is the right thing
to do. The convinction is based on a number of CGI programs which were
inspecting user-agent header and acted accordingly for brain damaged
clients. After a time I decided to send them straight to Hell.
I can't tell you how pleased I'd be if all CGIs and servers that do not
honor HEAD request disappeared one day. Really.
And browsers that change POST to GET upon receiving 301 or 302 redirection.
And, to be really fanatical, all those servers that terminate the
status-line after sending status-code. They need not output reason-phrase,
but they are required to output space after status-code. Ha!

--
Life is a *ly transmitted disease.



 
 
 

apache 1.2b* and "lesser" browsers

Post by Michael McClenne » Fri, 20 Dec 1996 04:00:00


I am just about to hack the apache source to fix this "feature" on my
site.  The reason?  because the browser used by America Online refuses
to access Apache 1.2b, claiming that the protocol version is wrong.

I think that the folks at AOL are total bastards for providing a
browser that behaves this way, but the hits at my site are down over
30% and that's just not something we can let go by.  So, for the time
being, my apache 1.2b implementation will be pretending that it can
only talk HTTP/1.0 to any client that sends an HTTP/1.0 request.

  -- Michael McClennen, system administrator for the Internet Public Library

 
 
 

apache 1.2b* and "lesser" browsers

Post by Jon Drukm » Mon, 23 Dec 1996 04:00:00




> I am just about to hack the apache source to fix this "feature" on my
> site.  The reason?  because the browser used by America Online refuses
> to access Apache 1.2b, claiming that the protocol version is wrong.

> I think that the folks at AOL are total bastards for providing a
> browser that behaves this way, but the hits at my site are down over
> 30% and that's just not something we can let go by.  So, for the time
> being, my apache 1.2b implementation will be pretending that it can
> only talk HTTP/1.0 to any client that sends an HTTP/1.0 request.

hi michael... i'm in exactly the same predicament.  have you successfully
created a patch that fixes this?  if you have, can you email it to me?

imagine my surprise when i was woken up at 8am on a sunday with my boss
saying "our web site isn't working for aol!"

*shudder*

--jon