in reply to CGI program

This url: http://www.perlmonks.org/?node_id=796987 is an example of the easiest way for a client to send some information to a web server. In this case the perlmonks.org server has some code that understands that the "?" means that there is some more info coming. "node_id" isn't some generic term, it is something that the permonks server specifically understands and will interpert as a request for this posting thread! That is what you get back... a page about this thread. This is called a "get" request.

There is another way to send info to the server, a "post" request. This is not sent as a simple URL like you can type into your browser.

This whole business can get complex in the details, but the basic idea is the web browser sends some info to the server and the web server responds with a web page that can be displayed in a browser (protocol is generically called HTTP). CGI provides the basic mechanism for this transfer of information from client to server, an API, Application Program Interface.