Aqui está uma espécie de definição de fuga:
Você saberá quando vir.
Este é um daqueles casos em que é muito difícil encontrar uma definição concisa que abranja todos os casos extremos. Mas também é um daqueles casos em que os casos secundários são completamente irrelevantes, porque simplesmente não ocorrem na vida real.
Quase todos os protocolos que você encontrará na vida real serão semelhantes a este:
> fg,m4wr76389b zhjsfg gsidf7t5e89wriuotu nbsdfgizs89567sfghlkf
> b9er t8ß03q+459tw4t3490ß´5´3w459t srt üßodfasdfäasefsadfaüdfzjhzuk78987342
< mvclkdsfu93q45324äö53q4lötüpq34tasä#etr0 awe+s byf eart
[Imagine uma tonelada de outras porcarias não imprimíveis ali. Um dos desafios em transmitir a diferença entre texto e binário é que você tem que fazer a transmissão em texto :-)]
Ou assim:
< HELLO server.example.com
> HELLO client.example.com
< GO
> GETFILE /foo.jpg
< Length: 3726
< Type: image/jpeg
< READY?
> GO
< ... server sends 3726 bytes of binary data ...
> ACK
> BYE
[Acabei de inventar isso na hora.]
Simplesmente não há muita ambigüidade aí.
Outra definição que tenho ouvido algumas vezes é
um protocolo de texto é aquele que você pode depurar usando telnet
Talvez eu esteja mostrando minha nerdice aqui, mas na verdade eu tenho escrito e lido e-mails via SMTP e POP3, lido artigos da Usenet via NNTP e visto páginas da web via HTTP usando telnet
, por nenhuma outra razão a não ser para ver se realmente funcionaria.
Na verdade, enquanto escrevia isso, meio que peguei a febre novamente:
bash-4.0$ telnet smtp.googlemail.com 25
Trying 74.125.77.16...
Connected to googlemail-smtp.l.google.com.
Escape character is '^]'.
< 220 googlemail-smtp.l.google.com ESMTP Thu, 15 Apr 2010 19:19:39 +0200
> HELO
< 501 Syntactically invalid HELO argument(s)
> HELO client.example.com
< 250 googlemail-smtp.l.google.com Hello client.example.com [666.666.666.666]
> RCPT TO:Me <Me@Example.Com>
< 503 sender not yet given
> SENDER:Me <Me@Example.Com>
< 500 unrecognized command
> RCPT FROM:Me <Me@Example.Com>
< 500 unrecognized command
> FROM:Me <Me@Example.Com>
< 500-unrecognized command
> HELP
< 214-Commands supported:
< 214 AUTH HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP ETRN
> MAIL FROM:Me <Me@Example.Com>
< 250 OK
> RCPT TO:You <You@SomewhereElse.Example.Com>
< 250 Accepted
> DATA
< 354 Enter message, ending with "." on a line by itself
> From: Me <Me@Example.Com>
> To: You <You@SomewhereElse.Example.Com>
> Subject: Testmail
>
> This is a test.
> .
< 250 OK id=1O2Sjq-0000c4-Qv
> QUIT
< 221 googlemail-smtp.l.google.com closing connection
Connection closed by foreign host.
Droga, já faz um bom tempo que não faço isso. Alguns erros aí :-)