« 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.

The comments to this entry are closed.