Non è che molti protocolli Internet siano basati su testo. In effetti, se dovessi indovinare, direi che i protocolli basati su testo sono in minoranza. Per quasi tutti i protocolli testuali che vedi su Internet ci sono almeno due protocolli binari che le persone hanno inventato per inviare dati uguali o simili.
Ma è vero che la maggior parte del traffico Internet utilizza protocolli basati su testo. Questo fatto è interessante se si presume che ci siano molti più protocolli binari rispetto al testo ma molti più traffico di testo rispetto al binario. Significa che la maggior parte dei protocolli di successo su Internet sono basati su testo. Fatta eccezione per un numero limitato di applicazioni (bittorrent è un esempio) i protocolli binari tendono a morire.
All'inizio di Internet, le società tendevano a progettare e utilizzare il protocollo binario (ad esempio MSN, non il sito Web MSN di oggi, l'originale MicroSoft Network proprietario che avrebbe dovuto sostituire HTTP) mentre i militari, gli istituti di ricerca e gli accademici tendevano a progettare e utilizzare il protocollo basato su testo. Parte del motivo era che la costruzione e il debug dei protocolli binari era difficile e le aziende possono permettersi di pagare le persone per farlo mentre i militari, i ricercatori e gli accademici lo facevano nel loro tempo libero senza pagare (la maggior parte delle persone che hanno sviluppato Internet avevano lavori non legati allo sviluppo di Internet).
Quando scrivi il codice nei fine settimana come hobby e non sei pagato per fare ciò che fai, tendi a scegliere la soluzione più semplice: il testo. Quindi i protocolli basati su testo sono stati utilizzati da più persone rispetto ai protocolli binari.
Ma questa non è la storia completa. Costruire una rete è difficile. Davvero difficile. Oggi siamo così abituati a Internet che non ci rendiamo pienamente conto di quale miracolo dell'ingegneria sia. Quasi ogni aspetto di Internet si è evoluto da una correzione di bug. Ad esempio, utilizziamo l'indirizzo IP anziché l'indirizzo MAC perché ci consente di costruire router con solo kilobyte (o in questi giorni megabyte) anziché terabyte di RAM per la tabella di routing. Più problemi abbiamo cercato di risolvere, più tendiamo a preferire i protocolli testuali per eseguirne il debug. Una volta che abbiamo avuto abbastanza esperienza nello sviluppo di protocolli di rete di basso livello, quando è arrivato il momento di sviluppare protocolli applicativi, la maggior parte dei programmatori e ingegneri esperti tendeva a preferire i protocolli di testo.
Per esperienza personale, ho lavorato per un'azienda che costruisce router e ho anche lavorato per un'azienda che costruisce apparecchiature di telemetria, quindi ho molta esperienza lavorando con protocolli binari come TCP / IP, ARP, IEC60870-5- 101 e DNP3. Ho anche lavorato con protocolli di testo come HTTP, POP3 e NMEA. Ho anche lavorato con formati di dati binari come ASN.1 e formati di dati di testo come JSON e XML. Se dovessi scegliere, sceglierei il testo quasi ogni volta. L'unica volta che sceglierei binario è se il protocollo è veramente di basso livello (quindi implementerei quel tanto che basta per poter scrivere un protocollo basato su testo in cima o esso) o i dati sono naturalmente binari (come i file audio) .