« Plack FastCGI and lighttpd changes | Main | Github explorer graphs »



Feed You can follow this conversation by subscribing to the comment feed for this post.

Zbigniew Lukasiak

By the way at the latest London.pm technical meeting there was a presentation by a guy called Solli who claimed that the original CGI specification is nearly identical to your PSGI spec and that what we usually think about when we hear CGI is actually an implementation of that abstract interface (and for example the fact that the params are passed in environment is just an artefact of that interface). I think it can be useful to do such comparison.


PSGI vs CGI comparison is documented in PSGI::FAQ

Yes they're similar and the biggest key difference of CGI and PSGI/WSGI/Rack are that CGI uses environment variables and STDIN/STDOUT as an interface (hence portable and you can use any programming languages to implement) while PSGI etc. uses its programming language variables and callbacks as an interface which means it's more tied to the language.

Zbigniew Lukasiak

I think what he had on mind was:

A named parameter which carries information from the server to the
script. It is not necessarily a variable in the operating
system's environment, although that is the most common

(from http://www.ietf.org/rfc/rfc3875) so apparently using environment for CGI is only a 'most common implementation' not part of the specification (even though later when they walk through operating systems - there they do specify that UNIX uses environment).


Right, but that's just hypothetical talk since this RFC 3875 was created in 2004 October, which is 10 years after when WWW and CGI (for NCSA/UNIX) were invented.

So I think this RFC is like wrapping up what's out there in the wild and giving a higher layer abstraction the name of CGI and calling the actual implementations "System Specific". It's not like there was a "original" CGI abstract interface as an RFC and NCSA implemented that -- it's quite opposite.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.


Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)