Os applets, bem como os pequenos programas em java-script, são descarregados desde
o provedor até o computador do usuário junto com a página HTML. Portanto devem ser
pequenos para não provocarem lentidão no processo de "download" (1).
Porém, com o avanço dos recursos na Web, muitas vezes necessitamos tarefas mais
elaboradas que, por sua complexidade, exigem programas mais pesados impróprios para
rodarem via página da Web.
Como exemplo, um programa que permita acesso ao banco de dados de uma instituição
bancária, acesso ao sistema de notas de uma escola, ou mesmo avaliação de provas
aplicadas em cursos à distância via internet.
Casos assim, exigem software mais complexo e que precisa rodar diretamente no
computador que hospeda as páginas e não na página Web no computador do usuário
navegador.
Para isso foram criados os programas CGI.
CGI, abreviação de Common Gateway Interface, ou seja, interface que permite ao usuário
que entre pelo portão de acesso do provedor onde a página está hospedada, não apenas
para ler a página armazenada mas também para executar alguma tarefa no computador
hospedeiro. Tarefas tais como acessar um banco de dados, verificar uma senha, transformar
os dados de um formulário preenchido via página da Web em e-mail ou mesmo providenciar a
gravação dos dados do formulário diretamente no banco de dados da empresa consultada.
Esta programação exige uma linguagem mais avançada cujos códigos são conhecidos pelos
programadores mas não pelo usuário leigo. A linguagem que mais vem sendo utilizada para
confecção de programas CGI é a Perl por várias razões, conforme justifica Eric
Hermann: