Livelli Utente

I protocolli dello strato Applications del modello DoD girano nello spazio utente di Unix/Linux.

Richiedono i servizi di rete TCP/IP sottostanti tramite l'accesso ad un Socket Inet.

I servizi sono innumerevoli, ma si possono identificare quattro categorie principali, storicamente evolute da un servizio capostipite.

Telnet-logo

Telnet:

Il primo scopo della rete ARPAnet era di permettere l'accesso e l'uso di supercomputer (per quei tempi) da remoto. Il primo programma in tal senso è stato Telnet. (circa 1971)

Telnet ha introdotto il convetto di Network Virtual Terminal e ha riprodotto in gran parte il comportamento di un terminale locale di allora, ma in rete.

Ftp-logo

FTP:

I file di output prodotti su computer remoto rimanevano sfortunatamente su tale computer. Per trasferirli al computer locale è stato inventato il protocollo FTP - File Transfer Protocol. (circa 1972)

FTP ha introdotto un concetto importante: la differenziazione tra un canale comandi, su cui istruire il computer remoto, e un canale dati, su cui compiere il trasferimento file

FTP è un protocollo a dir poco bizantino, e ha causato numerosi problemi corretti in seguito da programmi di file transfer migliorati.

Smtp-logo

SMTP:

Un'attività frequente degli umani era di interscambiarsi files a contenuto informale, anzichè lavorativo.

Nonostante la contrarietà iniziale del management della rete, quest'attività si è formalizzata nella possibilità di interscambio di messaggi di posta, col protocollo SNTP - *Simple Mail Transfer Protocol. (circa dal 1974)

SMTP ha soprattutto formalizzato la struttura di un messaggio, aggiungendo, prima del corpo del messaggio, una testata di metadati.

Ulteriori migliorie, non tecnicamente fattibili nell'immediato, sono arrivate con la possibilità di aggiungere allegati al messaggio.

E' da notare che la posta elettronica esisteva già prima di Internet, in ambiente Unix, e così pure i cosiddetti newsgroups - bacheca pubblica a sottoscrizione.

SMTP ha soltanto esteso la possibilità di interscambio posta elettronica dalle previe reti store-and-forward alla moderna commutazione di pacchetto.

La posta elettronica ha introdotto il concetto di indirizzo di posta (inizialmente per pochi fortunati), che è una vera identità digitale univoca in rete. Quindi ha incoraggiato una postura sociale e partecipativa all'uso della rete - tendenze anarchiche avversate dal management.

Http-logo

HTTP:

Abbiamo dovuto attendere circa il 1990 prima della vera rivoluzione democratica di Internet: il World Wide Web.

Il Prof. Tim Bernars-Lee del CERN di Ginevra ci ha dato un prodotto costituito da:

  • un server per la distribuzione a richiesta di pagine Web
  • il linguaggio di redazione delle Pagine Web: HTML - Hyper Text Markup Language
  • la possibilità di collegare pagine ad altre pagine, anche su altri server, tramite degli Hyperlink
  • un client per accedere al server, in realtà sviluppato più da altri che non dall'originatore iniziale
  • il protocollo di comunicazione tra il client e il server: HTTP - Hyper Text Transfer Protocol

HTTP si è naturalmente molto evoluto, tecnicamente e socialmente, dagli albori, come tutto il mondo WWW.

Un'osservazione nostalgica. Così come non diciamo doppiavu-doppiavu-doppiavu, ma vu-vu-vu, anche in inglese c'è o c'era uno slang: dub-dub-dub. E la sigla http:// si pronunciava hitip.

HTTP ha una notevole importanza moderna come protocollo di accesso ad un servizio distribuito in rete, con tecnologie come Docker, Kubernetes, e altre simili.

Il server HTTP è diventato un punto di accesso e smistamento di richieste client ai vari componenti di un servizio distribuito, spesso a dei microservizi. A quale microservizio specifico è una route specificato da parte della stringa URL inviata al server.

I Verbi di HTTP (GET, HEAD, PUT, POST, ...) indicano azioni che il servizio deve compiere. I dati interscambiati col servizio di backend sono spesso in formato JSON - JavaScript Object Notation.

L'intera interfaccia è una API - Application Programming Interface e il metodo è detto REST - REpresentational State Transfer.

HTTP è quindi diventato un metodo standard di comunicazione per microservizi.

Micros