httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j.@pa.dec.com (Jim Gettys)
Subject Re: Java1.2beta3 keep-alive bug
Date Mon, 27 Jul 1998 16:38:03 GMT

> Sender: new-httpd-owner@apache.org
> From: Dean Gaudet <dgaudet@arctic.org>
> Date: Mon, 27 Jul 1998 08:59:52 -0700 (PDT)
> To: new-httpd@apache.org
> Subject: Re: Java1.2beta3 keep-alive bug
> -----
> You know, if client writers can't get keep-alive right, just imagine the
> fun we'll have when they try to implement MUX.
> 
> Dean
> 

Maybe...

One of my problems with HTTP in general has been that it has almost too 
easy for anyone to "hack" a script (or a program) to talk to a server; 
there are unfortunately a fair number of significant problems when you 
build servers and clients using TCP  that it is not clear that this has 
been a feature (to just open a socket, and have a very stupid program 
write and read to a server without any help).  

Examples of TCP funnyness include resets causing transmitted data to be 
thrown away that have already be sent to a client, causing responses to 
vanish, or pauses caused by odd packets due to Nagle interacting with 
BSD every other packet ACK policy. Then people ship this code, and seem 
suprised when it doesn't work sometimes, or behaves in apparently strange
ways...

Most programmers, to be honest, haven't had their noses rubbed in the 
issues (and even myself, with all my X experience, had severe problems 
getting my head around the reset problem that caused PUT to fail and 
responses lost).  I thought I understood TCP's behavior, but was not used 
to a system in which connections are terminated by the server frequently.
It took Henrik several tries to get the problem into my thick skull.

Having one or more good support libraries for use with MUX (or any 
replacement for HTTP) written well by people who really understand the 
issues and problems of using TCP and the protocol is actually, therefore, 
a place I'm personally more comfortable with than the current situation,
which encourages people to open sockets and send bytes, and do their
testing on a LAN, and only later discover their brokenness.

In the Java programmer's case, he'd almost certainly be using the Java 
HTTP class library, rather than the socket level stuff a hard-core Apache 
jock would be using....  On Windows, most programs use uSoft's DLL for
their HTTP work.

But I understand your concern...  It is certainly not the "HTTP culture"
out of which Apache has sprung.
				- Jim

--
Jim Gettys
Digital Industry Standards and Consortia
Compaq Computer Corporation
Visting Scientist, World Wide Web Consortium, M.I.T.
http://www.w3.org/People/Gettys/
jg@w3.org, jg@pa.dec.com


Mime
View raw message