Získanie informácií o požiadavkách HTTP prostredníctvom cURL

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

Funkcia PHP `curl_getinfo()` poskytuje podrobné informácie o vykonanej požiadavke cURL. Tento článok vysvetľuje význam jednotlivých polí.

Príklad použitia

Volanie funkcie nad výsledkom kontextu z funkcie 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);

Tabuľka hodnôt

Funkcia curl_getinfo() vracia asociatívne pole, z ktorého možno získať jednotlivé kľúče a hodnoty.

Kľúč Príklad hodnoty Vysvetlenie
url 'https://baraja.cz/' Stiahnutá adresa URL.
content_type 'text/html; charset=utf-8' Použité kódovanie a typ obsahu (deklarované cieľovým serverom).
http_code 200 Vrátený stavový kód HTTP. 200 znamená OK.
header_size 462 Veľkosť hlavičky požiadavky HTTP v bajtoch.
request_size 47 Veľkosť požiadavky.
filetime -1
ssl_verify_result 0 Kontrola SSL.
redirect_count 0
total_time 0.233384 Celkový čas čakania na odpoveď. Uvedené v sekundách.
namelookup_time 0.021608 Čas potrebný na vyriešenie domény cez záznamy DNS. Zadané v sekundách.
connect_time 0.035031
pretransfer_time 0.187275
upload_size 0.0 Veľkosť nahraných údajov v bajtoch.
size_download 0.0 Veľkosť stiahnutých dát v bajtoch.
speed_download 0.0 Rýchlosť sťahovania v bajtoch za sekundu.
speed_upload 0.0 Rýchlosť nahrávania v bajtoch za sekundu.
download_content_length 15522.0 Veľkosť stiahnutých dát v bajtoch.
upload_content_length -1.0 Veľkosť nahraných dát v bajtoch.
starttransfer_time 0.233354 Udáva hodnotu TTFB (Time To First Byte) v sekundách.
redirect_time 0.0 Čas strávený presmerovaním na stiahnutie kanonického obsahu.
redirect_url ''
primary_ip '76.76.21.21' Z ktorej IP bol obsah stiahnutý.
certinfo array (0) Viac informácií o certifikáte cieľového miesta.
primary_port 443 Použitý sieťový port (80 znamená HTTP, 443 znamená HTTPS).
local_ip '192.168.0.186' Lokálna IP adresa počítača, ktorý odoslal požiadavku.
local_port 56568 Port lokálneho počítača, z ktorého bola žiadosť odoslaná.
http_version 3 Verzia protokolu HTTP.
protokol 2
ssl_verifyresult 0 Výsledok overenia SSL.
scheme 'HTTPS' Protokol na začiatku adresy URL.
appconnect_time_us 186220 Čas na nadviazanie spojenia s cieľovým serverom. Udáva sa v nanosekundách.
connect_time_us 35031
namelookup_time_us 21608
pretransfer_time_us 187275
redirect_time_us 0 Čas strávený presmerovaním na stiahnutie kanonického obsahu. Uvedené v nanosekundách.
starttransfer_time_us 233354 Udáva hodnotu času TTFB (Time To First Byte). V nanosekundách.
total_time_us 233384

Niektoré kľúče nemusia byť vždy k dispozícii. Pred načítaním hodnoty vždy overte existenciu kľúča a platnosť hodnoty.

Jan Barášek     Viac o autorovi

Autor pracuje ako senior vývojár a softvérový architekt v Prahe. Navrhuje a spravuje veľké webové aplikácie, ktoré poznáte a používate. Od roku 2009 získal bohaté skúsenosti, ktoré odovzdáva prostredníctvom tejto webovej stránky.

Rád vám pomôžem:

Kontakt