Guzzle is a game changer in the world of PHP HTTP clients. Guzzle allows you to truly reap the benefits of the HTTP/1.1 spec. No other library makes it easier to manage persistent connections or send requests in parallel.
In addition to taking the pain out of HTTP, Guzzle provides a lightweight framework for creating web service clients. Most web service clients follow a specific pattern: create a client class, create methods for each action, create and execute a cURL handle, parse the response, implement error handling, and return the result. Guzzle takes the redundancy out of this process and gives you the tools you need to quickly build a web service client.
Start truly consuming HTTP with Guzzle.
Download the phar and include it in your project Download the phar.
Download Docs: www.guzzlephp.org
Supports GET, HEAD, POST, DELETE, PUT, PATCH, OPTIONS, and any custom verbs
Allows full access to request and response headers
Persistent connections are implicitly managed by Guzzle, resulting in huge performance benefits
Send requests in parallel
Cookie sessions can be maintained between requests using the CookiePlugin
Allows custom entity bodies, including sending data from a PHP stream
Responses can be cached and served from cache using the caching reverse proxy plugin
Failed requests can be retried using truncated exponential backoff
Entity bodies can be validated automatically using Content-MD5 headers
All data sent over the wire can be logged using the LogPlugin
Automatically requests compressed data and automatically decompresses data
Subject/Observer signal slot system for unobtrusively modifying request behavior
Supports all of the features of libcurl including authentication, redirects, SSL, proxies, etc
Web service client framework for building future-proof interfaces to web services
reference from here