Oтримання інформації HTTP-запиту по cURL
Функція 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() повертає асоціативний масив, з якого можна отримати окремі ключі та значення.
| Ключ | Приклад значення | Пояснення | Пояснення
|---------------------------|----------------------------|------------------------------------------------------------------------------------|
| "https://baraja.cz/" | Завантажена URL-адреса.
| content_type | 'text/html; charset=utf-8' | Використане кодування та тип контенту (заявлений цільовим сервером).
| Повернуто код статусу HTTP. 200 означає, що все гаразд.
| header_size | 462 | Розмір заголовка HTTP-запиту в байтах.
| Розмір запиту. 47. Розмір запиту.
| | | filetime | -1 | Час файлу (вимоги сервера).
| Перевірка SSL.
| | | redirect_count | 0 | Кількість перенаправлень до досягнення цільового документа.
| total_time | 0.233384 | Загальний час, витрачений на очікування відповіді. Дається в секундах.
| namelookup_time | 0.021608 | Час, необхідний для вирішення домену по DNS-записам. Вказано в секундах.
| | | connect_time | 0.035031 | Час встановлення з'єднання з сервером призначення. Вказано в секундах.
| | | pretransfer_time | 0.187275 | Час, необхідний для передачі даних. Вказано в секундах.
| upload_size | 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. 3. Версія протоколу HTTP.
| Код протоколу, що використовується. 2 | Код протоколу, що використовується.
| ssl_verifyresult | 0 | Результат перевірки SSL.
| 'Схема' | '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 | Загальний час, витрачений на очікування відповіді. Вказано в мікросекундах.
Деякі ключі можуть бути не завжди доступні. Завжди перевіряйте наявність ключа та дійсність значення перед зчитуванням значення.