Socket
Un socket è un componente software che aiuta i programmi per computer a comunicare attraverso una rete. Il termine "socket" richiama una presa fisica in cui si collega un cavo di rete e attraverso la quale passano tutti i dati. Le applicazioni stabiliscono socket di rete software per uno scopo simile: tutti i dati che un'applicazione invia e riceve attraverso una connessione di rete passano dal suo socket.
I socket forniscono un metodo standard che consente a un programma di stabilire connessioni di rete. Gli sviluppatori software possono usare un'API per creare un socket gestito dal sistema operativo, senza dover scrivere da zero un metodo personalizzato. Quando l'applicazione deve inviare dati attraverso la rete, li scrive nel socket come se stesse scrivendo un file su un disco. Il sistema operativo rileva questa operazione e inoltra automaticamente il pacchetto di dati attraverso la rete fino alla destinazione.
Ogni socket ha un indirizzo socket univoco che combina un indirizzo IP e un numero di porta. Questo indirizzo identifica sia il computer specifico su cui è in esecuzione il socket sia l'applicazione che lo ha creato. Le applicazioni in esecuzione su un server creano socket quando vengono avviate e li mantengono in stato di ascolto, mentre le applicazioni sui client possono aprire e chiudere i socket quando necessario. Mentre un socket è aperto, il sistema operativo monitora i pacchetti di dati in entrata e in uscita e controlla l'indirizzo socket di ogni pacchetto per sapere dove inoltrarlo.
Ad esempio, quando visiti un sito web con il tuo browser web, questo crea un socket che si connette a un altro socket su un server web remoto usando il relativo indirizzo IP e numero di porta 80 per le connessioni (HTTP e 443 per le connessioni HTTPS). Il browser invia a questo socket una richiesta per una specifica pagina web; il sistema operativo la rileva e la inoltra al server web. Quando il server web invia la pagina richiesta al computer, il sistema operativo controlla l'indirizzo socket e sa che deve rimandarla al browser web.
Metti alla prova le tue conoscenze