PackageTrack
Sign in Get early access

sabre/http

The sabre/http library provides utilities for dealing with http requests and responses.

7.1.0 16M downloads/mo #1149 most downloaded on Packagist sabre-io/http

What this package is like to depend on

Last release 2 months ago

31 May 2026

Release timing varies

gaps range from 9 days to 12 months

Nearly every release is documented

notes for 57 of 58 stable releases

Nothing withdrawn

no release was ever pulled

14 years old

63 releases · first in 2012

6 releases in the last 12 months

see the full history below

Release timeline

63 releases · Oct 2012 to May 2026
2013 2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 60 of 63
  1. 7.1.0 31 May 2026
    Release notes

    7.1.0 (2026-05-31)

    This release drops support for PHP 7.4 8.0 and 8.1

    Open source →
    Release notes
    • #280 chore: support PHP 8.2 and up ( @phil-davis )
    • #282 test: migrate to phpunit 11 ( @phil-davis )
    Open source →
  2. 7.0.6 27 Apr 2026
    Release notes

    7.0.6 (2026-04-27)

    This release continues to support PHP 7.4 and 8.0 through 8.5

    Open source →
    Release notes
    • #259 chore (ci): add CI for PHP 8.5 on 6.0 branch ( @phil-davis )
    • #273 test: adjust code style ( @phil-davis )
    • #272 fix(http/client): prefer CURLOPT_PROTOCOLS_STR over deprecated bitmask constants ( @ralflang )
    • #255 chore: update to phpstan major version 2
    • #278 chore: add rector ( @phil-davis )
    Open source →
  3. 7.0.5 09 Sep 2025
    Release notes

    7.0.5 (2025-09-09)

    Open source →
    Release notes
    • #257 properly compute absolute URL (@skjnldsv)
    Open source →
  4. 7.0.4 06 Sep 2024
    Release notes

    7.0.4 (2024-09-06)

    Open source →
    Release notes
    • #227 Remove redundant PHP doc to make cs-fixer pass ( @phil-davis )
    • #229 ci: Create dependabot.yml ( @DeepDiver1975 )
    • #231 Add PHP 8.3 to CI ( @phil-davis )
    • #234 use php-cs-fixer 3.51 ( @phil-davis )
    • #235 adjust for php-cs-fixer 3.54.0 ( @phil-davis )
    • #237 stop exporting php-cs-fixer config ( @phil-davis )
    • #247 tool changes - add PHP 8.4 to CI ( @phil-davis )
    Open source →
  5. 7.0.3 17 Aug 2023
    Release notes
    • #215 Improve CURLOPT_HTTPHEADER Setting Assignment (@amrita-shrestha)
    Open source →
  6. 7.0.2 27 Jun 2023
    Release notes
    • #203 Add phpstan phpunit strict-rules (@phil-davis)
    Open source →
  7. 7.0.1 26 Jun 2023
    Release notes
    • #207 fix: handle client disconnect properly with ignore_user_abort true (@kesselb)
    Open source →
  8. 7.0.0 26 Sep 2022
    Release notes
    • #198 Allow sabre/uri major version 3 ( @phil-davis )
    Open source →
  9. 6.0.5 27 Apr 2026
    Release notes

    6.0.5 (2026-04-27)

    Open source →
    Release notes
    • #267 chore (ci): add CI for PHP 8.5 on 6.0 branch (@phil-davis)
    • #274 test: adjust code style (@phil-davis)
    • #275 fix(http/client): prefer CURLOPT_PROTOCOLS_STR over deprecated bitmask constants (@ralflang)
    Open source →
  10. 6.0.4 09 Sep 2025
    Release notes

    6.0.4 (2025-09-09)

    Open source →
    Release notes
    • #260 properly compute absolute URL (@skjnldsv)
    Open source →
  11. 6.0.3 06 Sep 2024
    Release notes

    6.0.3 (2024-09-06)

    Open source →
    Release notes
    • #228 Remove redundant PHP doc to make cs-fixer pass ( @phil-davis )
    • #236 adjust for php-cs-fixer 3.54.0 ( @phil-davis )
    • #249 add PHP 8.3 and 8.4 to CI of 6.0 branch ( @phil-davis )
    Open source →
  12. 6.0.2 17 Aug 2023
    Release notes
    • #215 Improve CURLOPT_HTTPHEADER Setting Assignment (@amrita-shrestha)
    Open source →
  13. 6.0.1 26 Jun 2023
    Release notes
    • #207 fix: handle client disconnect properly with ignore_user_abort true (@kesselb)
    Open source →
  14. 6.0.0 31 Aug 2022
    Release notes
    • #191 Create .gitattributes (@cedric-anne)
    • #176 Test enhancement (from original PR #98) (@peter279k)
    • #192 Set min PHP to 7.4 and add type declarations (@phil-davis)
    • #194 Adjust type declarations a little bit (@phil-davis)
    Open source →
  15. 5.1.13 09 Sep 2025
    Release notes

    5.1.13 (2025-09-09)

    Open source →
    Release notes
    • #262 properly compute absolute URL (@skjnldsv)
    Open source →
  16. 5.1.12 27 Aug 2024
    Release notes

    5.1.12 (2024-08-27)

    This release just has code-style changes applied by php-cs-fixer major version 3.
    No change to behavior.

    Open source →
    Release notes
    • #243 add cs-fixer v3 (@phil-davis)
    Open source →
  17. 5.1.11 26 Jul 2024
    Release notes

    5.1.11 (2024-07-26)

    Open source →
    Release notes
    • #241 PHP 8.4 compliance (@phil-davis)
    Open source →
  18. 5.1.10 18 Aug 2023
    Release notes
    • #225 Enhance tests/bootstrap.php to find autoloader in more environments (@phil-davis)
    Open source →
  19. 5.1.9 17 Aug 2023
    Release notes
    • #223 skip testParseMimeTypeOnInvalidMimeType (@phil-davis)
    Open source →
  20. 5.1.8 17 Aug 2023
    Release notes
    • #215 Improve CURLOPT_HTTPHEADER Setting Assignment (@amrita-shrestha)
    Open source →
  21. 5.1.7 26 Jun 2023
    Release notes
    • #98 and #176 Add more tests (@peter279k)
    • #207 fix: handle client disconnect properly with ignore_user_abort true (@kesselb)
    Open source →
  22. 5.1.6 15 Jul 2022
    Release notes
    • #187 Allow testSendToGetLargeContent peak memory usage to be specified externally (@phil-davis)
    • #188 Fix various small typos and grammar (@phil-davis)
    • #189 Fix typo in text of status code 203 'Non-Authoritative Information' (@phil-davis)
    Open source →
  23. 5.1.5 09 Jul 2022
    Release notes
    • #184 Remove 4GB file size workaround for 32bit OS / Stream Videos on IOS (@schoetju)
    Open source →
  24. 5.1.4 24 Jun 2022
    Release notes
    • #182 Fix encoding detection on PHP 8.1 (@come-nc)
    Open source →
  25. 5.1.3 04 Nov 2021
    Release notes
    • #179 version bump that was missed in 5.1.2 (@phil-davis)
    Open source →
  26. 5.1.2 03 Nov 2021
    Release notes
    • #169 Ensure $_SERVER keys are read as strings (@fredrik-eriksson)
    • #170 Fix deprecated usages on PHP 8.1 (@cedric-anne)
    • #175 Add resource size to CURL options in client (from #172 ) (@Dartui)
    Open source →
  27. 5.1.1 03 Oct 2020
    Release notes
    • #160: Added support for PHP 8.0 (@phil-davis)
    Open source →
  28. 5.1.0 31 Jan 2020
    Release notes
    • Added support for PHP 7.4, dropped support for PHP 7.0 (@phil-davis)
    • Updated testsuite for phpunit8, added phpstan coverage (@phil-davis)
    • Added autoload-dev for test classes (@C0pyR1ght)
    Open source →
  29. 5.0.5 28 Nov 2019
    Release notes
    • #138: Fixed possible infinite loop (@dpakach, @vfreex, @phil-davis)
    • #136: Improvement regex content-range (@ho4ho)
    Open source →
  30. 5.0.4 09 Oct 2019
    Release notes
    • #133: Fix short Content-Range download - Regression from 5.0.3 (@phil-davis)
    Open source →
  31. 5.0.3 08 Oct 2019
    Release notes
    • #119: Significantly improve file download speed by enabling mmap based stream_copy_to_stream (@vfreex)
    Open source →
  32. 5.0.2 12 Sep 2019
    Release notes
    • #125: Fix Strict Error if Response Body Empty (@WorksDev, @phil-davis)
    Open source →
  33. 5.0.1 11 Sep 2019
    Release notes
    • #121: fix "Trying to access array offset on value of type bool" in 7.4 (@remicollet)
    • #115: Reduce memory footprint when parsing HTTP result (@Gasol)
    • #114: Misc code improvements (@mrcnpdlk)
    • #111, #118: Added phpstan analysis (@DeepDiver1975, @staabm)
    • #107: Tested with php 7.3 (@DeepDiver1975)
    Open source →
  34. 5.0.0 04 Jun 2018
    Release notes
    • #99: Previous CURL opts are not persisted anymore (@christiaan)
    • Final release
    Open source →
  35. 5.0.0-alpha1 16 Feb 2018 pre-release
    Release notes
    • Now requires PHP 7.0+.
    • Supports sabre/event 4.x and 5.x
    • Depends on sabre/uri 2.
    • hhvm is no longer supported starting this release.
    • #65: It's now possible to supply request/response bodies using a callback functions. This allows very high-speed/low-memory responses to be created. (@petrkotek).
    • Strict typing is used everywhere this is applicable.
    • Removed URLUtil class. It was deprecated a long time ago, and most of its functions moved to the sabre/uri package.
    • Removed Util class. Most of its functions moved to the functions.php file.
    • #68: The $method and $uri arguments when constructing a Request object are now required.
    • When Sapi::getRequest() is called, we default to setting the HTTP Method to CLI.
    • The HTTP response is now initialized with HTTP code 500 instead of null, so if it's not changed, it will be emitted as 500.
    • #69: Sending charset="UTF-8" on Basic authentication challenges per [rfc7617][rfc7617].
    • #84: Added support for SERVER_PROTOCOL HTTP/2.0 (@jens1o)
    Open source →
  36. v4.2.4 23 Feb 2018

    Nothing published for this version

  37. 4.2.3 12 Jun 2017
    Release notes
    • #74, #77: Work around 4GB file size limit at 32-Bit systems
    Open source →
  38. 4.2.2 02 Jan 2017
    Release notes
    • #72: Handling clients that send invalid Content-Length headers.
    Open source →
  39. 4.2.1 06 Jan 2016
    Release notes
    • #56: getBodyAsString now returns at most as many bytes as the contents of the Content-Length header. This allows users to pass much larger strings without having to copy and truncate them.
    • The client now sets a default User-Agent header identifying this library.
    Open source →
  40. 4.2.0 04 Jan 2016
    Release notes
    • This package now supports sabre/event 3.0.
    Open source →
  41. 4.1.0 04 Sep 2015
    Release notes
    • The async client wouldn't wait() for new http requests being started after the (previous) last request in the queue was resolved.
    • Added Sabre\HTTP\Auth\Bearer, to easily extract a OAuth2 bearer token.
    Open source →
  42. 4.0.0 20 May 2015
    Release notes
    • Deprecated: All static functions from Sabre\HTTP\URLUtil and Sabre\HTTP\Util moved to a separate functions.php, which is also autoloaded. The old functions are still there, but will be removed in a future version. (#49)
    Open source →
  43. 4.0.0-alpha3 19 May 2015 pre-release
    Release notes
    • Added a parser for the HTTP Prefer header, as defined in [RFC7240][rfc7240].
    • Deprecated Sabre\HTTP\Util::parseHTTPDate, use Sabre\HTTP\parseDate().
    • Deprecated Sabre\HTTP\Util::toHTTPDate use Sabre\HTTP\toDate().
    Open source →
  44. 4.0.0-alpha2 18 May 2015 pre-release
    Release notes
    • #45: Don't send more data than what is promised in the HTTP content-length. (@dratini0).
    • #43: getCredentials returns null if incomplete. (@Hywan)
    • #48: Now using php-cs-fixer to make our CS consistent (yay!)
    • This includes fixes released in version 3.0.5.
    Open source →
  45. 4.0.0-alpha1 25 Feb 2015 pre-release
    Release notes
    • #41: Fixing bugs related to comparing URLs in Request::getPath().
    • #41: This library now uses the sabre/uri package for uri handling.
    • Added 421 Misdirected Request from the HTTP/2.0 spec.
    Open source →
  46. 3.0.5 11 May 2015
    Release notes
    • #47 #35: When re-using the client and doing any request after a HEAD request, the client discards the body.
    Open source →
  47. 3.0.4 10 Dec 2014
    Release notes
    • #38: The Authentication helpers no longer overwrite any existing WWW-Authenticate headers, but instead append new headers. This ensures that multiple authentication systems can exist in the same environment.
    Open source →
  48. 3.0.3 03 Dec 2014
    Release notes
    • Hiding Authorization header value from Request::__toString.
    Open source →
  49. 3.0.2 10 Oct 2014
    Release notes
    • When parsing Accept: headers, we're ignoring invalid parts. Before we would throw a PHP E_NOTICE.
    Open source →
  50. 3.0.1 29 Sep 2014
    Release notes
    • Minor change in unittests.
    Open source →
  51. 3.0.0 23 Sep 2014
    Release notes
    • getHeaders() now returns header values as an array, just like psr/http.
    • Added hasHeader().
    Open source →
  52. 2.1.0-alpha1 15 Sep 2014 pre-release
    Release notes
    • Changed: Copied most of the header-semantics for the PSR draft for representing HTTP messages. [Reference here][psr-http].
    • This means that setHeaders() does not wipe out every existing header anymore.
    • We also support multiple headers with the same name.
    • Use Request::getHeaderAsArray() and Response::getHeaderAsArray() to get a hold off multiple headers with the same name.
    • If you use getHeader(), and there's more than 1 header with that name, we concatenate all these with a comma.
    • addHeader() will now preserve an existing header with that name, and add a second header with the same name.
    • The message class should be a lot faster now for looking up headers. No more array traversal, because we maintain a tiny index.
    • Added: URLUtil::resolve() to make resolving relative urls super easy.
    • Switched to PSR-4.
    • #12: Circumventing CURL's FOLLOW_LOCATION and doing it in PHP instead. This fixes compatibility issues with people that have open_basedir turned on.
    • Added: Content negotiation now correctly support mime-type parameters such as charset.
    • Changed: Util::negotiate() is now deprecated. Use Util::negotiateContentType() instead.
    • #14: The client now only follows http and https urls.
    Open source →
  53. 2.0.4 14 Jul 2014
    Release notes
    • Changed: No longer escaping @ in urls when it's not needed.
    • Fixed: #7: Client now correctly deals with responses without a body.
    Open source →
  54. 2.0.3 17 Apr 2014
    Release notes
    • Now works on hhvm!
    • Fixed: Now throwing an error when a Request object is being created with arguments that were valid for sabre/http 1.0. Hopefully this will aid with debugging for upgraders.
    Open source →
  55. 2.0.2 09 Feb 2014
    Release notes
    • Fixed: Potential security problem in the client.
    Open source →
  56. 2.0.1 09 Jan 2014
    Release notes
    • Fixed: getBodyAsString on an empty body now works.
    • Fixed: Version string
    Open source →
  57. 2.0.0 08 Jan 2014
    Release notes
    • Removed: Request::createFromPHPRequest. This is now handled by Sapi::getRequest.
    Open source →
  58. 2.0.0alpha6 02 Jan 2014
    Release notes
    • Added: Asynchronous HTTP client. See examples/asyncclient.php.
    • Fixed: Issue #4: Don't escape colon (:) when it's not needed.
    • Fixed: Fixed a bug in the content negotiation script.
    • Fixed: Fallback for when CURLOPT_POSTREDIR is not defined (mainly for hhvm).
    • Added: The Request and Response object now have a __toString() method that serializes the objects into a standard HTTP message. This is mainly for debugging purposes.
    • Changed: Added Response::getStatusText(). This method returns the human-readable HTTP status message. This part has been removed from Response::getStatus(), which now always returns just the status code as an int.
    • Changed: Response::send() is now Sapi::sendResponse($response).
    • Changed: Request::createFromPHPRequest is now Sapi::getRequest().
    • Changed: Message::getBodyAsStream and Message::getBodyAsString were added. The existing Message::getBody changed its behavior, so be careful.
    Open source →
  59. 2.0.0alpha5 07 Nov 2013
    Release notes
    • Added: HTTP Status 451 Unavailable For Legal Reasons. Fight government censorship!
    • Added: Ability to catch and retry http requests in the client when a curl error occurs.
    • Changed: Request::getPath does not return the query part of the url, so everything after the ? is stripped.
    • Added: a reverse proxy example.
    Open source →
  60. 2.0.0alpha4 07 Aug 2013
    Release notes
    • Fixed: Doing a GET request with the client uses the last used HTTP method instead.
    • Added: HttpException
    • Added: The Client class can now automatically emit exceptions when HTTP errors occurred.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive