Menu
Coddy logo textTech

Cos'è una porta

Lezione 10 di 47 del corso Reti da terminale di Coddy.

Un indirizzo porta la tua richiesta alla macchina giusta. Ma una sola macchina può eseguire contemporaneamente un sito web, un database e un server di posta. Qualcosa deve indicare a quale di questi è destinata la richiesta.

Quella è una porta: un numero da 1 a 65535 che seleziona il programma. L’indirizzo è l’edificio, la porta è l’ingresso.

In un URL viene dopo i due punti:

curl -s http://127.0.0.1:9104/hello.txt
#                        ^^^^ la porta

Un indirizzo e una porta insieme identificano un’estremità di una conversazione, e questa coppia si chiama socket. Quando senti dire che un server «ha aperto un socket sulla porta 9104», significa proprio questo abbinamento.

Due programmi sulla stessa macchina non possono entrambi restare in ascolto sulla stessa porta: è questa la causa dell’errore che prima o poi ogni sviluppatore incontra: indirizzo già in uso.

challenge icon

Sfida

Difficile

Dimostra che la porta sceglie il programma, eseguendo due server su una sola macchina.

  1. Crea due cartelle, a e b
  2. Inserisci un file i.txt in ciascuna: AAA in a, BBB in b
  3. Servi a sulla porta 9104 e b sulla porta 9105
  4. Recupera i.txt da ciascuna porta, prima da 9104

Stesso indirizzo, stesso nome file, porta diversa:

AAA
BBB

(cd a && python3 -m http.server 9104 &) avvia un server per una cartella senza cambiare la cartella in cui ti trovi.

Provalo tu

Terminale
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Reti da terminale

Esercitati da solo: Playground Terminal