Ottenere informazioni sulle richieste HTTP tramite cURL

📅   06. 07. 2022
👤   Jan Barášek

La funzione PHP `curl_getinfo()` fornisce informazioni dettagliate sulla richiesta cURL eseguita. Questo articolo spiega il significato di ciascun campo.

Esempio di utilizzo

Richiama la funzione sul risultato del contesto da curl_init():

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://baraja.cz');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

dump($info);

Tabella dei valori

La funzione curl_getinfo() restituisce un array associativo da cui è possibile recuperare chiavi e valori individuali.

Chiave Valore d'esempio Spiegazione
url 'https://baraja.cz/' URL scaricato.
content_type 'text/html; charset=utf-8' Codifica e tipo di contenuto utilizzati (dichiarati dal server di destinazione).
http_code 200 Codice di stato HTTP restituito. 200 significa OK.
header_size 462 Dimensione dell'intestazione della richiesta HTTP in byte.
request_size 47 Dimensione della richiesta.
filetime -1
ssl_verify_result 0 Controllo SSL.
redirect_count 0
total_time 0.233384 Tempo totale trascorso in attesa di risposta. Dato in secondi.
namelookup_time 0.021608 Tempo impiegato per risolvere il dominio sui record DNS. Specificato in secondi.
connect_time 0.035031
pretransfer_time 0.187275
upload_size 0.0 Dimensione dei dati caricati in byte.
size_download 0.0 Dimensione dei dati scaricati in byte.
speed_download 0.0 Velocità di scaricamento in byte al secondo.
speed_upload 0.0 Velocità di caricamento in byte al secondo.
download_content_length 15522.0 Dimensione dei dati scaricati in byte.
upload_content_length -1.0 Dimensione dei dati caricati in byte.
starttransfer_time 0.233354 Indica il valore TTFB (Time To First Byte) in secondi.
redirect_time 0.0 Tempo trascorso per il reindirizzamento al download del contenuto canonico.
redirect_url ''
primary_ip '76.76.21.21' Da quale IP è stato scaricato il contenuto.
certinfo array (0) Ulteriori dettagli sul certificato del sito di destinazione.
primary_port 443 La porta di rete utilizzata (80 significa HTTP, 443 significa HTTPS).
local_ip '192.168.0.186' Indirizzo IP locale della macchina che ha inviato la richiesta.
local_port 56568 Porta del computer locale da cui è stata inviata la richiesta.
http_version 3 Versione del protocollo HTTP.
protocollo 2
ssl_verifyresult 0 Risultato della verifica SSL.
schema 'HTTPS' Protocollo all'inizio dell'URL.
appconnect_time_us 186220 Tempo per stabilire la connessione con il server di destinazione. Specificato in nanosecondi.
connect_time_us 35031
namelookup_time_us 21608
pretransfer_time_us 187275
redirect_time_us 0 Tempo trascorso per il reindirizzamento al download del contenuto canonico. Dato in nanosecondi.
starttransfer_time_us 233354 Indica il valore del tempo TTFB (Time To First Byte). In nanosecondi.
total_time_us 233384

Alcune chiavi potrebbero non essere sempre disponibili. Verificare sempre l'esistenza della chiave e la validità del valore prima di leggerlo.

Jan Barášek     Maggiori informazioni su l'autore

L'autore lavora come sviluppatore senior e architetto software a Praga. Progetta e gestisce grandi applicazioni web che conoscete e usate. Dal 2009 ha acquisito una grande esperienza che trasmette attraverso questo sito web.

Sarò felice di aiutare:

Contact