The real breakthrough in dynamic-content solutions came a few years ago with the definition of the CGI, in which a Web server executes an application rather than reading a static HTML file. The application then generates HTML output for the end user. CGI applications are either executable programs or interpreted scripts such as Perl. A good example of CGI at work is when a search engine is used to seek information on the Web. A CGI application knows it is going to be executed by a Web server, and it expects the server to provide certain things, like specific environment variables defined in the interface.
Environment variables define the Web server and the end user for the application.