Re: plain text protocol [was: Re: Performance analysis questions]
Rick Troth ([email protected])
Fri, 3 Jun 1994 14:02:22 -0500 (CDT)
> I am suggesting we accept neither missing CR nor trailing whitespace.
> Just fix the broken code.
 
	Thank's for being consistent. 
 
> I say: be precise, strict, and exact, in all distributed computations.
 
	You can't do that in a truly heterogeneous world (or network). 
I'm not saying it's right to be imprecise, lax, or inexact, but that's 
what you're going to run into.   Be a boy scout,  "Be Prepared". 
 
> Suppose, in the future, we want to be able to take the md5 checksum of
> the HTTP headers. If you corrupt the bytes by throwing away whitespace
> at the end of a line, you defeat such efforts.
 
	You're saying that HTTP is  -not-  a plain text protocol. 
 
	If it's not a plain text protocol,  then GET should have been 
something like  (in C): 
 
		sprintf(GET_REQUEST,"%c%s",0x01,URL) 
 
	where 0x01 is just some arbitrary bit pattern that we chose 
to mean  "GET".   But it's not.   Blame this on Tim if you don't like it. 
Going with a plain text protocol made HTTP  1)  easier to debug,  and 
2)  easier to extend.   The same is true for ignoring trailing white 
space.   (optional CR is just a courtesy we give to UNIX,  I s'pose) 
 
> HTTP is currently based on a reliable 8-bit transport 
> (TCP, not just IP). Let's keep it that way. 
 
	TELNET is currently based on a reliable 8-bit transport, 
but you don't expect your shell to be as strict as you seem to want 
HTTP to be.   HTTPD's not a shell?   Sure it is.   "Shells take their 
input from humans only",  not true! 
 
> Dan 
 
	BTW,  all I'm suggesting is that we retain (formally) 
one aspect of current behaviour.   The servers I've been able 
to check don't care about trailing white space;  some even allow 
the blank line (end-of-header) to be just blank (not empty) already. 
Let's keep it that way. 
 
-- 
Rick Troth <[email protected]>, Rice University, Information Systems