You know what I mean... Hmmm... Perhaps you don't.
Clearly you either don't know what you mean, or don't know what you're
talking about. Let's be clear: CGI does not have to send HTML! It can
send, for example, a dynamically-generated JPEG, directly to the web
server, which in turn (if the CGI has also sent the proper HTTP headers)
sends it to the client. There's no HTML involved.
All a CGI program needs to return is a valid HTTP header and content.
Sometimes you want a CGI to send text/html; sometimes you don't.
Perhaps you are confusing what everyone has been telling you with
sending HTML like <img src="/blah.img"> . If you send that as HTML
from your CGI, then the client sends another request for /blah.img,
and the webserver handles that separately, outside the CGI. But one
could also send <img src="/cgi-bin/blah.pl"> , where /cgi-bin/blah.pl in
turn is a dynamic image creator. Surely even you can see that blah.pl
must send back an appropriate HTTP Content-type header (e.g., image/jpeg)
and the same binary data that generating and saving the image to
blah.img would make the webserver send if requested statically.
If you don't understand the above, you should really learn more about
CGI before giving advice on it (not to mention arguing with folks far
more experienced in CGI than you or me).
--keith