PHP: Guzzle, Curl, Laravel Http
Glossary overview

PHP: Guzzle, Curl, Laravel Http

🧱 1. cURL — это базовый инструмент

cURL — это низкоуровневая библиотека (и утилита), написанная на C,
которая умеет делать HTTP-запросы: GET, POST, PUT, DELETE и т.д.

📦 Она есть практически в каждой ОС и встроена в PHP.

Пример «чистого» cURL в PHP:

$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

echo $response;

Но это выглядит громоздко, неудобно и сложно масштабировать.

⚙️ 2. Guzzle — это современная PHP-библиотека на базе cURL

Guzzle — это “обёртка” над cURL, которая делает работу с HTTP-запросами удобной и объектно-ориентированной.

Ты можешь просто написать:

$client = new \GuzzleHttp\Client();
$response = $client->get('https://example.com');
echo $response->getBody();

И под капотом Guzzle уже:

  • вызывает cURL,
  • управляет заголовками, cookie, редиректами, SSL, таймаутами и т.д.,
  • умеет работать асинхронно (через промисы),
  • даёт единый интерфейс для работы с API.

🧰 3. Laravel Http — это обёртка над Guzzle

Когда ты пишешь в Laravel:

Http::get('https://example.com');

// или

Http::withHeaders([...])->post(...);

— Laravel на самом деле использует Guzzle внутри.

То есть цепочка такая:

Http (Laravel)
   ↓
Guzzle (удобная PHP-обёртка)
   ↓
cURL (низкоуровневый механизм HTTP)
   ↓
TCP/SSL (сетевые слои)

📋 Вывод

  • 🧩 cURL — базовый инструмент на уровне PHP/С.
  • 🧠 Guzzle — библиотека, которая делает cURL “человечной”.
  • Laravel Http — ещё более удобный слой поверх Guzzle.