[web-devel] Re: CGI

Manlio Perillo manlio_perillo at libero.it
Sat Feb 21 08:21:58 EST 2009


Curt Sampson ha scritto:
> On 2009-02-21 12:23 +0100 (Sat), Johan Tibell wrote:
> 
>> On Fri, Feb 20, 2009 at 3:17 PM, Manlio Perillo
>> <manlio_perillo at libero.it> wrote:
>>
>>> I have some doubts about the name WAI. It means "Web application
>>> interface", but I think that the word "Gateway" should appear in it.
>> I don't have a strong attachment to the name. I'm not sure what the
>> word "gateway" means in this context, probably because I haven't
>> studied CGI in depth.
> 
> It's fairly meaningless. CGI stands for "common gateway interface," and
> is basically:
> 

A gateway is basically a program that sits between two other programs 
that speak different protocols.

As an example, Mailman come with a gateway that allow the integration of 
Mailman with NNTP.

> [...] 
  > I've spent more time than I care to over the last four or five years
> dealing with FastCGI on the application (i.e., opposite of web server)
> side, both as a client of existing libraries and a writer of new
> ones, and it's caused me much pain.
> 
> The one real 

The only one, I would say. :)

> advantage that FastCGI has is that it's supported across
> a lot of web servers, and some have some nice special features. For
> example, with lighttpd, you can avoid a lot of shoveling of data around
> by returning an "x-send-file: /some/path" header and no body;

This is not a FastCGI exclusive.

> [...] 
> But overall, I'd be much happier with a protocol that just handed me
> the raw HTTP request, and allowed me to send back a raw HTTP response.

It already exists, and it is called HTTP.
FastCGI is an "complex for nothing" protocol that translate a nice text 
based protocol to a complex binary protocol.

SCGI is what you should use, if you don't want to write an HTTP (1.0) 
server.

> The issue is, of course, getting the protocol implemented in various
> web servers. I could, I suppose, design a new protocol and write a
> C implementation for lighttpd. But then, given that I'd hope to be
> talking to a Haskell application server anyway, GHC has great support
> for building efficient, multiprocessing, highly concurrent servers, and
> Haskell is about a hundred times nicer to program in than C, I think I'd
> just write a high-performance web server in Haskell. (Except that it's
> already been done, anyway.)
> 

I, instead, think that Haskell is not yet mature for writing an 
high-performance web server.

 > [...]



Manlio Perillo


More information about the web-devel mailing list