Ogni app che ci chiede il permesso per connettersi ad Internet lo fa per instaurare una connessione remota con una macchina a sua volta connessa, probabilmente un server. Il server è – appunto – una macchina pronta a fornire un servizio alla nostra app. Quasi tutte le comunicazioni mobile avvengono attraverso la cosiddetta porta 80. Che cos’è la porta 80?
Il backend è, in termini informatici, quella parte del software che elabora le informazioni generate dal frontend. Certo così è un po’ generico. Per poter descrivere cosa è un backend è necessario contestualizzarlo, infatti ogni tipologia di applicazione software può essere accompagnata da backend tutto particolare. Un software alieno che vive su un server e comunica in una lingua sconosciuta al resto del mondo.
Proviamo a stringere il cerchio parlando limitatamente di app per i nostri dispositivi portatili, quelli che teniamo nel palmo di una mano e si connettono alla rete Internet per mezzo del nostro abbonamento dati o attraverso il Wi-Fi di casa, del bar, dell’ufficio, dell’aeroporto eccetera.
La più comune attività che un utente esegue su un dispositivo portatile connesso alla rete è scaricare le mail, sì, ma soprattutto utilizzare il World Wide Web (www) per visualizzare una o più pagine web.
Ecco, se voi foste il costruttore e/o amministratore di una connessione di rete Wi-Fi pubblica (come quella di un aeroporto) non vi converrebbe per nulla impedire agli utenti connessi di vedere una pagina web o scaricare le mail; creereste un disservizio.
Macchine parlanti
Quando due macchine si parlano su Internet lo fanno attraverso una serie di regole: una gamma di protocolli chiamata TCP/IP dove TCP e IP sono i due principali esponenti della lingua della rete. Il protocollo TCP rende la transmissione affidabile reinviando ogni pacchetto di dati non confermato in ricezione dal destinatario; IP invece fa sì che ogni pacchetto venga instradato ed indirizzato verso il destinatario attraverso una politica best effort, cioè se arriva arriva, altrimenti pace.
Su ogni pacchetto IP c’è scritto il destinatario, in modo che possa viaggiare in piena indipendenza dagli altri pacchetti. Non solo l’indirizzo del destinatario; ogni pacchetto TCP/IP viaggia anche con un un numero di porta espresso in 16 bit e compreso quindi tra 1 e 65.535. Il numero serve per distinguere a quale programma/servizio sul computer destinatario il pacchetto deve essere consegnato una volta terminato il viaggio.
Quindi, se io ed un amico ci mettessimo d’accordo per mandarci pacchetti TCP/IP, nel caso io facessi la parte di chi si mette in ascolto in attesa del suo pacchetto, dovrei comunicare –in qualche altro modo – al mio amico non solo il mio indirizzo IP necessario per raggiungermi, ma anche la porta sulla quale sto aspettando di ricevere un pacchetto.
Per le macchine che fungono da server, cioè sono in attesa di pacchetti su una o più porte, avere un indirizzo IP statico, che non cambia nel tempo, è un requisito non obbligatorio ma diciamo quantomeno necessario per garantirne la fruibilità (esistono sovrastrutture per aggirare parzialmente questa limitazione) e pertanto potremmo considerare come conosciuto a priori l’indirizzo IP del server dell’amico, come voi probabilmente conoscete l’indirizzo del sito web di Google.
Diritti in porta
Per la porta come ci regoliamo? Con il tempo sono stati determinati (dalla IANA) alcuni servizi talmente importanti da ufficializzare un numero di porta ad essi dedicato. Fra questi, al numero di porta 80, troviamo il servizio World Wide Web.
Significa che ogni pacchetto richiedente una pagina web ad un web server standard sarà un pacchetto destinato alla porta 80 di quella macchina.
Quindi ora sappiamo su quale porta provare a comunicare con un server qualora volessimo richiedere un certo tipo di servizio, ed il server dovrebbe rispondere – di conseguenza – con dati inerenti al tipo di servizio offerto.
Parlare di porta equivale spesso a parlare di protocollo. Un protocollo è una serie di regole formali precedentemente concordate alle quali due o più entità devono attenersi per favorire la comunicazione. La porta 80 equivale all’Hypertext Transfer Protocol o HTTP.
Tornando ad impersonificare il nostro amministratore di rete Wi-Fi pubblica, non vorreste quindi bloccare la comunicazione di quei pacchetti etichettati come “per porta 80” e altresì non vorreste – attraverso gli strumenti avanzati di cui disponete – eliminare dalla vostra rete quei pacchetti che non solo viaggiano con quell’etichetta, ma all’interno contengono pure un messaggio descritto attraverso le regole del protocollo HTTP.
La concezione comune vuole quindi che avere una connessione Internet sia sinonimo di le comunicazioni HTTP sulla porta 80 sono consentite su questa rete ed infatti nelle reti TCP/IP, ed in Internet in generale, generalmente questo tipo di comunicazioni non viene bloccato.
La porta 80 è un porto franco, specialmente se la utilizzate per parlare in lingua HTTP.
Ora non dovrebbe sorprendervi il motivo per il quale quasi tutti i produttori di app scrivono il loro backend nella forma di web service.