RPC::Any::Interface::CGI - HTTP support for RPC::Any::Server in CGI environments


In a CGI environment (like running under mod_cgi or mod_perl in Apache), the HTTP headers aren't available on STDIN--instead they are in special environment variables. So RPC::Any CGI servers get their input partly from the environment. So the "input" to handle_input is just the RPC data, and the HTTP headers are read from the environment. (However, you can still pass a CGI server an HTTP::Request object, in which case it will ignore the environment.)

Also, in a CGI environment, you can't just print the HTTP/1.1 200 OK line at the top of the HTTP response, you have to send a special header, like Status: 200 OK. So CGI servers return their output in that slightly different way.

All CGI servers are also HTTP servers, so they have all the capabilities specified in RPC::Any::HTTP. They just take their input and produce their output differently.