Вот это своего рода определение:
Ты узнаешь это, когда увидишь.
Это один из тех случаев, когда очень сложно найти краткое определение, которое охватывает все угловые случаи. Но это также один из тех случаев, когда угловые случаи совершенно не имеют значения, потому что они просто не встречаются в реальной жизни.
Практически все протоколы, с которыми вы столкнетесь в реальной жизни, будут выглядеть так:
> fg,m4wr76389b zhjsfg gsidf7t5e89wriuotu nbsdfgizs89567sfghlkf
> b9er t8ß03q+459tw4t3490ß´5´3w459t srt üßodfasdfäasefsadfaüdfzjhzuk78987342
< mvclkdsfu93q45324äö53q4lötüpq34tasä#etr0 awe+s byf eart
[Вообразите тонну других непечатных дерьма там. Одна из трудностей при передаче разницы между текстом и двоичным файлом заключается в том, что вам нужно выполнить передачу в тексте: -)]
Или вот так:
< 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
[Я только что сделал это на месте.]
Там просто не так много двусмысленности.
Другое определение, которое я иногда слышал, это
текстовый протокол - это протокол, который вы можете отлаживать с помощью telnet
Может быть, я показываю здесь свое занудство, но у меня есть , на самом деле написанное и прочитанное по электронной почте через SMTP и POP3, читаю статьи usenet через NNTP и просматривал веб-страницы через HTTP, используя telnet
, ни за что другая причина, чем посмотреть, будет ли это на самом деле работать.
Вообще-то, когда я писал это, я снова подхватил лихорадку:
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.
Черт, давно я не делал этого. Там довольно много ошибок: -)