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 portaUn 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.
Sfida
DifficileDimostra che la porta sceglie il programma, eseguendo due server su una sola macchina.
- Crea due cartelle,
aeb - Inserisci un file
i.txtin ciascuna:AAAina,BBBinb - Servi
asulla porta 9104 ebsulla porta 9105 - Recupera
i.txtda 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
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