Protocolos

Assim que o cliente se conecta a um serviço em uma porta particular, ele acessa o serviço usando um protocolo específico. O protocolo é a maneira pré-definida de alguém que quer usar um serviço falar com aquele serviço. Esse "alguém" poderia ser uma pessoa, mas normalmente é um programa como um navegador Web. Os protocolos freqüentemente são textos e simplesmente descrevem como o cliente e o servidor terão sua conversação.

Talvez o protocolo mais simples seja o protocolo daytime (hora do dia). Se você se conectar à porta 13 de uma máquina que suporte um servidor de tempo diurno, o servidor enviará sua impressão da data e do horário atuais e então fechará a conexão. O protocolo diz: "Se você se conectar comigo, eu enviarei a data e a hora e então me desconectarei". A maioria das máquinas UNIX suporta esse servidor. Se você quiser experimentar, poderá se conectar a um deles usando um aplicativo Telnet. Em UNIX, a sessão seria como esta:

%telnet web67.ntx.net 13
Trying 216.27.61.137...
Connected to web67.ntx.net.
Escape character is '^]'.
Sun Oct 25 08:34:06 1998
Connection closed by foreign host.

Em uma máquina Windows, você pode acessar esse servidor digitando "telnet web67.ntx.net 13" no prompt do MSDOS.

Nesse exemplo, web67.ntx.net é a máquina UNIX do servidor e 13 é o número da porta para o serviço de hora do dia. O aplicativo Telnet se conecta com a porta 13 (a telnet se conecta naturalmente à porta 23, mas você pode direcioná-la para se conectar a qualquer porta); então, o servidor envia a data e a hora e se desconecta. A maioria das versões de Telnet permite que você especifique um número de porta, de modo que você pode tentar isso usando qualquer versão de Telnet disponível em sua máquina.

A maioria dos protocolos está envolvida em mais coisas do que a hora do dia e são especificados em documentos "Solicitação de Comentário" (em inglês, RFC) que estão disponíveis ao público (veja http://sunsite.auc.dk/RFC/ (em inglês) para um belo arquivo de todas as RFCs). Todo servidor Web na Internet está em conformidade com o protocolo HTTP. A forma mais básica do protocolo compreendida por um servidor HTTP envolve apenas um comando: GET (obter). Se você se conectar a um servidor que compreenda protocolo HTTP e disser a ele "GET nome do arquivo," o servidor responderá enviando o conteúdo do arquivo com aquele nome e, então, se desconectará. Aqui está uma sessão típica: 

%telnet www.hsw.com.br 80 Trying 216.27.61.137...
Connected to howstuffworks.com.
Escape character is '^]'.
GET http://www.hsw.com.br/





...


Connection closed by foreign host.

No protocolo HTTP original, tudo que você teria enviado seria o nome do arquivo real, como "/" ou "/servidores-da-web.htm." O protocolo foi modificado posteriormente para manipular o envio da URL completa. Isso permitiu que as companhias que hospedavam domínios virtuais, em que vários domínios residiam em uma única máquina, usasem um endereço IP para todos os domínios que elas hospedavam. Acontece que centenas de domínios são hospedados em 209.116.69.66, o endereço IP do HowStuffWorks.