- When a user generates a URL in a browser, a request is created that goes to a server
- Until now, the most common way of generating dynamic content was through the Common Gateway Interface, CGI
- CGI has a drawback: for each user request, the CGI script must be loaded, run, and unloaded