Los primeros servidores Web no tenían ningún medio de acceder a bases de datos y de devolver los resultados de una consulta en forma de HTML. Este problema se resolvió poco después con la aparición de CGI (Common Gateway Interface), una especificación algo tosca que define un medio para que los servidores Web intercambien información con software externo.Aunque CGI representó un gran hito en la extensión de las capacidades del Web, también acarreó numerosos problemas. El más destacado es el rendimiento. Cada vez que un servidor Web recibe una solicitud que necesita de CGI, el servidor debe iniciar una copia del programa CGI, pasar las fases de carga, inicialización, ejecución y finalmente, por la devolución de código HTML. Una elevada tasa de peticiones CGI simultáneas puede acabar desbordando a un servidor con mucho tráfico.Para solventar este problema, Netscape y Microsoft crearon API específicas de servidor, Netscape Server API (NSAPI) e Internet Services API (ISAPI), introduciendo mejoras notables en la velocidad además de abrir las puertas a un mayor número de componentes Web y perfeccionando la tecnología de scripting (fragmentos de código HTML o scripts que realizan una acción en función de una variable o una actuación del usuario) iniciada con lenguajes como Perl de modo que poco a poco comenzaron a acercar la apariencia y prestaciones de las páginas a las de las aplicaciones habituales no basadas en Web.