← Blog
monitoringUgur Demirel6 aprile 20267 min di lettura

HTTP vs TCP vs Ping monitoring: quale protocollo usare?

Confronto pratico tra protocolli di monitoring HTTP, TCP e Ping. Scopri quando usarli e come costruire una copertura completa.

HTTP vs TCP vs Ping monitoring: quale protocollo usare?

Quando configuri l'uptime monitoring, una delle prime decisioni è quale protocollo usare per i check. HTTP, TCP e Ping (ICMP) testano strati diversi dell'infrastruttura e la scelta giusta determina quali problemi puoi intercettare.

Capire gli strati

Lo stack applicativo ha più livelli e ogni protocollo di monitoring testa una profondità diversa:

```
┌─────────────────────────┐
│ Application (HTTP) │ ← HTTP monitoring testa qui
├─────────────────────────┤
│ Service (TCP ports) │ ← TCP monitoring testa qui
├─────────────────────────┤
│ Network (ICMP) │ ← Ping monitoring testa qui
├─────────────────────────┤
│ Physical / Cloud │
└─────────────────────────┘
```

Uno strato può fallire mentre quelli sotto restano sani. Il server può rispondere al ping (rete ok) mentre il processo web è crashato (HTTP fallirebbe, TCP sulla porta 80 fallirebbe). Capirlo aiuta a scegliere il protocollo giusto per ogni servizio.

Monitoring HTTP / HTTPS

Come funziona

Un Monitor HTTP invia una richiesta HTTP completa (di solito GET) a un URL e valuta la risposta. Controlla:

  • Connessione: riusciamo a stabilire TCP e completare il TLS handshake?
  • Status code: il server ha restituito lo status atteso (200, 301, ecc.)?
  • Response body: la risposta contiene (o non contiene) contenuto specifico?
  • Response time: quanto ha impiegato l'intero ciclo richiesta/risposta?
  • Certificato SSL: valido e non in scadenza imminente?

Quando usare HTTP monitoring

Siti e applicazioni web: qualsiasi URL raggiungibile dal browser. Scelta predefinita per la maggior parte dei casi.

REST API: monitora health check (/health, /api/status) per verificare che l'API risponda correttamente.

Webhooks: verifica che gli endpoint accettino richieste.

Verifica contenuto: quando serve verificare non solo il caricamento ma il contenuto giusto. Un server può restituire 200 OK con una pagina di errore — le keyword HTTP intercettano questo.

Vantaggi

  • Testa lo stack applicativo completo, incluso il codice applicativo
  • Può verificare il contenuto della risposta, non solo la connettività
  • Monitora validità e scadenza del certificato SSL
  • Misura response time percepito dagli utenti reali
  • Supporta autenticazione (header, cookie)

Limitazioni

  • Funziona solo con servizi HTTP/HTTPS
  • Overhead per check maggiore di TCP o Ping
  • Non può monitorare servizi non web (database, mail, game server)

Esempi

| Target | URL | Atteso |
|--------|-----|--------|
| Homepage | https://example.com | Status 200 |
| API health | https://api.example.com/health | Status 200, body contiene "ok" |
| Login | https://app.example.com/login | Status 200 |
| Webhook | https://hooks.example.com/ingest | Status 200 o 405 |

Monitoring TCP

Come funziona

Un Monitor TCP tenta di aprire una connessione a un indirizzo IP e a un numero di porta. Verifica:

  • Porta aperta: si stabilisce una connessione TCP?
  • Tempo di connessione: quanto velocemente la porta accetta?
  • Risposta della porta: il servizio risponde entro il timeout?

Il monitoring TCP non invia dati a livello applicativo — testa solo se la porta è in ascolto e accetta connessioni.

Quando usare TCP monitoring

Database: PostgreSQL (5432), MySQL (3306), MongoDB (27017), Redis (6379) per verificare che accettino connessioni.

Server di posta: SMTP (25/587), IMAP (143/993), POP3 (110/995).

Servizi custom: qualsiasi servizio su porta TCP che non parla HTTP — game server, broker MQTT, FTP, SSH.

Load balancer: verifica che la porta del load balancer sia aperta e accetti connessioni.

Vantaggi

  • Funziona con qualsiasi servizio TCP, non solo HTTP
  • Overhead inferiore ai check HTTP
  • Nessuna configurazione a livello applicativo
  • Intercetta problemi a livello porta (servizio crashato, firewall sbagliato)

Limitazioni

  • Testa solo che la porta sia aperta, non che l'applicazione funzioni correttamente
  • Non può verificare il contenuto della risposta
  • Non testa la logica applicativa (un database può accettare connessioni ma fallire tutte le query)

Esempi

| Target | Host:Porta | Scopo |
|--------|------------|-------|
| PostgreSQL | db.internal:5432 | Disponibilità database |
| Redis | cache.internal:6379 | Disponibilità cache |
| SSH | bastion.example.com:22 | Accesso jump server |
| SMTP | mail.example.com:587 | Invio email |
| Custom API | service.internal:8080 | Salute microservizio |

Monitoring Ping (ICMP)

Come funziona

Il Ping invia pacchetti ICMP Echo Request a un host e attende Echo Reply. Testa:

  • Raggiungibilità dell'host: l'host risponde a livello di rete?
  • Round-trip time: quanto impiega il pacchetto ad andare e tornare?
  • Packet loss: qualche pacchetto viene perso?

Quando usare Ping monitoring

Infrastruttura di rete: router, switch, firewall e dispositivi senza servizi applicativi.

Disponibilità server: verifica rapida che un server sia acceso e connesso in rete, indipendentemente dai servizi.

Performance di rete: tempi di risposta del Ping e packet loss indicano la salute della rete tra la location di monitoring e il target.

Baseline: complemento ai check HTTP/TCP, il Ping aiuta a distinguere «server irraggiungibile» da «server raggiungibile ma applicazione rotta».

Vantaggi

  • Overhead minimo tra i protocolli di monitoring
  • Testa il livello più fondamentale di connettività
  • Utile per dispositivi senza servizi applicativi
  • Aiuta a capire se il problema è di rete o applicazione

Limitazioni

  • Testa solo raggiungibilità di rete — non salute applicativa
  • Alcuni host e firewall bloccano ICMP, rendendo il Ping inaffidabile
  • Gli ambienti cloud spesso non supportano ICMP verso certe risorse
  • Non verifica che un servizio specifico sia in esecuzione

Esempi

| Target | Host | Scopo |
|--------|------|-------|
| VPN gateway | vpn.example.com | Accesso di rete |
| Router | 10.0.0.1 | Infrastruttura di rete |
| Server | web-1.internal | Raggiungibilità base |
| ISP hop | isp-gateway.net | Salute del percorso di rete |

Scegliere il protocollo giusto

Schema decisionale:

È un sito, un'app web o una REST API?
→ Usa monitoring HTTP. Testa lo stack completo e dà i dati più utili.

È un servizio su porta TCP che non parla HTTP?
→ Usa monitoring TCP. Database, mail, game server, servizi custom.

È un dispositivo di rete o ti serve solo la raggiungibilità base?
→ Usa monitoring Ping. Router, switch, gateway VPN, salute base del server.

Non sei sicuro?
→ Inizia con HTTP per tutto ciò che ha un URL, TCP per tutto ciò che ha una porta, Ping per l'infrastruttura.

Combinare i protocolli per copertura completa

Le migliori strategie usano più protocolli per coprire diversi modi di fallimento. Per uno stack web tipico:

| Component | Protocol | Check |
|-----------|----------|-------|
| Website | HTTP | https://example.com → 200 |
| API | HTTP | https://api.example.com/health → 200 |
| Database | TCP | db.internal:5432 |
| Redis cache | TCP | cache.internal:6379 |
| Server | Ping | web-1.internal |

Quando il check HTTP fallisce ma TCP e Ping passano, sai che il server è su e la porta aperta — il problema è nel codice applicativo. Quando tutto fallisce, è un problema a livello server o rete. Questo approccio a strati accelera la diagnosi.

Conclusione

Non esiste un unico «miglior» protocollo di monitoring — ognuno testa uno strato diverso. HTTP è il più completo per i servizi web, TCP copre i servizi non HTTP, Ping dà visibilità di base a livello di rete.

Per la maggior parte dei team la risposta è «usa tutti e tre sui target giusti». Inizia con HTTP per i servizi user-facing, aggiungi TCP per l'infrastruttura e Ping per la salute di rete.


Monitora ogni strato dello stack. Inizia gratis — HTTP, TCP e Ping monitoring in ogni piano.

HTTP vs TCP vs Ping monitoring: quale protocollo usare?