A maioria das pessoas pensa em um servidor web como uma caixa preta mágica que evoca páginas do nada. Não é. Em sua essência, o trabalho é surpreendentemente mundano. Um servidor web recupera um arquivo de um disco e o envia para o seu navegador. É isso. Simples. Direto.
Vamos rastrear o que acontece quando você digita um URL na barra de endereço. Imagine que você digite http://www.bygpub.com/books/tg2rw/author.htm. O servidor recebe uma solicitação para o caminho específico /books/tg2rw/author.htm. Se você pudesse dar uma olhada na configuração do servidor, veria um diretório raiz definido durante a configuração, algo como c:\Meus Documentos\www. O servidor não procura /books/tg2rw/author.htm em todo o disco rígido. Ele procura esse caminho relativo à raiz. Portanto, combina os dois: c:\Meus Documentos\www + /books/tg2rw/author.htm. Ele encontra o arquivo. Ele envia. Feito.
Mas o que acontece quando o URL termina com uma barra? Como http://www.bygpub.com/books/tg2rw/?
O servidor entende isso como uma solicitação de diretório, não como uma solicitação de arquivo. Ele precisa de um arquivo padrão para servir. Não adivinha aleatoriamente. Segue uma hierarquia estrita. Procura por index.html. Se estiver faltando, ele tenta index.htm. Se isso falhar, ele verifica default.html. Finalmente, ele tenta default.htm. A lista exata depende do software do servidor, mas a lógica é consistente. O servidor converte silenciosamente o URL do diretório em um URL de arquivo, anexando a primeira correspondência que encontrar. Portanto, essa solicitação de diretório se torna http://www.bygpub.com/books/tg2rw/index.htm. Você nunca vê a mudança no nome do arquivo. Você apenas vê o carregamento da página. Todos os outros arquivos nesse diretório exigem que você o nomeie explicitamente. Esta é a linha de base para lidar com arquivos estáticos.
Além dos arquivos estáticos: o papel do CGI
Arquivos estáticos são apenas metade da história. A maioria dos servidores web modernos também lida com arquivos dinâmicos. Eles não geram essas páginas do zero; eles transferem a solicitação para um programa externo. Esse mecanismo é chamado de Common Gateway Interface ou CGI.
Você usou CGI inúmeras vezes sem perceber. É o mecanismo por trás de qualquer página da web que muda com base na sua entrada. Considere estes exemplos:
-
Livros de visitas : você insere uma mensagem em um formulário HTML. O servidor não envia apenas uma página pré-escrita. Ele executa um script que anexa seu texto a um banco de dados ou arquivo e, em seguida, gera uma nova página mostrando sua entrada.
-
Pesquisas WHOIS : você digita um nome de domínio em um formulário. A página que você recebe depende inteiramente do domínio que você inseriu. O servidor não está servindo um arquivo estático; está pedindo a um programa para buscar dados ao vivo.
-
Mecanismos de pesquisa : você digita palavras-chave. O servidor executa uma consulta, verifica índices e cria dinamicamente uma página de resultados personalizada para sua pesquisa.
Todas essas interações dependem de CGI. O servidor web atua como um despachante, passando os dados do formulário do usuário para um programa e, em seguida, enviando a saída do programa de volta ao seu navegador. Essa separação permite que os servidores lidem com lógica complexa sem ficarem presos na



























