Отримання інформації HTTP-запиту по cURL

06. 07. 2022

Obsah článku

Функція PHP `curl_getinfo()` надає детальну інформацію про виконаний cURL-запит. У цій статті пояснюється значення кожного поля.

Приклад використання

Викликати функцію над результатом контексту з 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);

Таблиця значень

Функція curl_getinfo() повертає асоціативний масив, з якого можна отримати окремі ключі та значення.

Ключ Приклад значення Пояснення
url 'https://baraja.cz/' Завантажена URL-адреса.
content_type 'text/html; charset=utf-8' Використане кодування та тип контенту (заявлений цільовим сервером).
http_code 200 означає, що все гаразд.
header_size 462 Розмір заголовка HTTP-запиту в байтах.
request_size 47 Розмір запиту.
filetime -1 Час файлу (вимоги сервера).
ssl_verify_result 0 Перевірка SSL.
redirect_count 0 Кількість перенаправлень до досягнення цільового документа.
total_time 0.233384 Загальний час, витрачений на очікування відповіді. Дається в секундах.
namelookup_time 0.021608 Час, необхідний для вирішення домену по DNS-записам. Вказано в секундах.
connect_time 0.035031 Час встановлення з'єднання з сервером призначення. Вказано в секундах.
pretransfer_time 0.187275 Час, необхідний для передачі даних. Вказано в секундах.
size_upload 0.0 Розмір даних, що завантажуються, в байтах.
size_download 0.0 Розмір завантажених даних в байтах.
speed_download 0.0 Швидкість завантаження в байтах в секунду.
speed_upload 0.0 Швидкість завантаження в байтах в секунду.
download_content_length 15522.0 Розмір завантажених даних в байтах.
upload_content_length -1.0 Розмір завантажених даних в байтах.
starttransfer_time 0.233354 Вказує значення TTFB (Time To First Byte - час до першого байта) в секундах.
redirect_time 0.0 Час, витрачений на перенаправлення для завантаження канонічного контенту.
redirect_url '' канонічна URL-адреса та пункт призначення перенаправлення.
primary_ip '76.76.21.21' З якого IP був завантажений контент.
certinfo array (0) Більш детальна інформація про сертифікат цільового сайту.
primary_port 443 Використовуваний мережевий порт (80 означає HTTP, 443 - HTTPS).
local_ip '192.168.0.186' Локальна IP-адреса машини, яка відправила запит.
local_port 56568 Порт локального комп'ютера, з якого був відправлений запит.
http_version 3 Версія протоколу HTTP.
protocol 2 Код протоколу, що використовується.
ssl_verifyresult 0 Результат перевірки SSL.
scheme 'HTTPS' Протокол на початку URL-адреси.
appconnect_time_us 186220 Час встановлення з'єднання з цільовим сервером. Вказано в мікросекундах.
connect_time_us 35031 Час з'єднання з сервером призначення. Вказано в мікросекундах.
namelookup_time_us 21608 Час, необхідний для перезапису домену через DNS-записи. Вказано в мікросекундах.
pretransfer_time_us 187275 Час, витрачений на передачу даних. Вказано в мікросекундах.
redirect_time_us 0 Час, витрачений на перенаправлення для завантаження канонічного контенту. Дано в мікросекундах.
starttransfer_time_us 233354 Вказує значення часу TTFB (Time To First Byte). За мікросекунди.
total_time_us 233384 Загальний час, витрачений на очікування відповіді. Вказано в мікросекундах.

Деякі ключі можуть бути не завжди доступні. Завжди перевіряйте наявність ключа та дійсність значення перед зчитуванням значення.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
9.