Lynx as a HTTP/1.0 application (was Re: Call for compatibility testers)
Klaus Weide (kweide@tezcat.com)
Mon, 19 Aug 1996 11:45:55 -0500 (CDT)
On Sat, 17 Aug 1996, Roy T. Fielding wrote:
> >>There is a difference between being compatible with older versions
> >>of HTTP and being compatible with old browsers that do not implement
> >>any version of HTTP correctly.
> >
[Koen Holtman <koen@win.tue.nl>:]
> > You obviously have strong opinions about lynx not being a HTTP/1.0
> > application, but these are not universally held. If the conneg draft
> > would continue to use the 300 code (without providing an adequate
> > escape hatch) now that the lynx interoperability problems are known,
> > this would effectively encode your strong opinions in the spec. I
> > don't think that would be appropriate.
>
> I don't see how any application which fails to interpret a response
> simply because it doesn't understand a valid response code (a field which
> is and has always been extensible, and thus always intended to result in
> new codes being unrecognized by older applications) can be considered a
> valid implementation of HTTP/1.0. It is a bug which needs to be fixed.
> HTTP cannot be concerned about such bugwards-compatibility simply because
> it is impossible to extend HTTP at all if we don't assume some minimal
> level of functionality of the part of the applications. Implementations
> do need to be concerned with such bugwards-compatibility, but they do
> so by means already established by the protocol (User-Agent and Server
> identification and avoidance), not by changing the protocol every time
> somebody implements it wrong.
This has very recently been fixed in the latest Lynx code.
It would be helpful if readers of this lists who think a browser
is not "a valid implemetation of HTTP/1.0" would share that opinion
with the developers in the form of bug reports - in the case of Lynx,
send them to <URL:mailto:lynx-dev@sig.net>. If it's not known, it can't
be fixed.
> > [...]
> >> The only correct way to deal with such browsers is to
> >>exclude them on the basis of their User Agent field,
> >
> > Using this compatibility hack would be very expensive; you would have
> > to disallow proxies from ever sending a cached list (300) response to
> > a non-negotiating user agent, which means that you will have to handle
> > all these requests yourself.
No server will have to special-case Lynx for this purpose, at least
if the version in the User-Agent is Lynx/2.6 or greater...
Klaus