Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork166
Releases: reactphp/http
v1.11.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.10.0
Feature: Add new PSR-7 implementation and remove dated RingCentral PSR-7 dependency.
(#518,#519,#520 and#522 by@clue)This changeset allows us to maintain our own PSR-7 implementation and reduce
dependencies on external projects. It also improves performance slightly and
does not otherwise affect our public API. If you want to explicitly install
the old RingCentral PSR-7 dependency, you can still install it like this:composer require ringcentral/psr7
Feature: Add new
Uriclass for new PSR-7 implementation.
(#521 by@clue)Feature: Validate outgoing HTTP message headers and reject invalid messages.
(#523 by@clue)Fix: Fix HTTP client to omit
Transfer-Encoding: chunkedwhen streaming empty request body.
(#516 by@clue)Fix: Ensure connection close handler is cleaned up for each request.
(#515 by@WyriHaximus)Update test suite and avoid unhandled promise rejections.
(#501 and#502 by@clue)
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.9.0
This is aSECURITY and feature release for the 1.x series of ReactPHP's HTTP component.
Security fix: This release fixes a medium severity security issue in ReactPHP's HTTP server component
that affects all versions betweenv0.8.0andv1.8.0. All users are encouraged to upgrade immediately.
(CVE-2023-26044 reported and fixed by@WyriHaximus)Feature: Support HTTP keep-alive for HTTP client (reusing persistent connections).
(#481,#484,#486 and#495 by@clue)This feature offers significant performance improvements when sending many
requests to the same host as it avoids recreating the underlying TCP/IP
connection and repeating the TLS handshake for secure HTTPS requests.$browser =newReact\Http\Browser();// Up to 300% faster! HTTP keep-alive is enabled by default$response =React\Async\await($browser->get('https://httpbingo.org/redirect/6'));assert($responseinstanceofPsr\Http\Message\ResponseInterface);
Feature: Add
Requestclass to represent outgoing HTTP request message.
(#480 by@clue)Feature: Preserve request method and body for
307 Temporary Redirectand308 Permanent Redirect.
(#442 by@dinooo13)Feature: Include buffer logic to avoid dependency on reactphp/promise-stream.
(#482 by@clue)Improve test suite and project setup and report failed assertions.
(#478 by@clue,#487 and#491 by@WyriHaximus and#475 and#479 by@SimonFrings)
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.8.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.7.0
This is aSECURITY and feature release for the 1.x series of ReactPHP's HTTP component.
Security fix: This release fixes a medium severity security issue in ReactPHP's HTTP server component
that affects all versions betweenv0.7.0andv1.6.0. All users are encouraged to upgrade immediately.
Special thanks to Marco Squarcina (TU Wien) for reporting this and working with us to coordinate this release.
(CVE-2022-36032 reported by@lavish and fixed by@clue)Feature: Improve HTTP server performance by ~20%, reuse syscall values for clock time and socket addresses.
(#457 and#467 by@clue)Feature: Full PHP 8.2+ compatibility, refactor internal
Transactionto avoid assigning dynamic properties.
(#459 by@clue and#466 by@WyriHaximus)Feature / Fix: Allow explicit
Content-Lengthresponse header onHEADrequests.
(#444 by@mrsimonbennett)Minor documentation improvements.
(#452 by@clue,#458 by@nhedger,#448 by@jorrit and#446 by@SimonFrings)Improve test suite, update to use new reactphp/async package instead of clue/reactphp-block,
skip memory tests when lowering memory limit fails and fix legacy HHVM build.
(#464 and#440 by@clue and#450 by@SimonFrings)
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.6.0
Feature: Add factory methods for common HTML/JSON/plaintext/XML response types.
(#439 by@clue)$response =React\Http\Response\html("<h1>Hello wörld!</h1>\n");$response =React\Http\Response\json(['message' =>'Hello wörld!']);$response =React\Http\Response\plaintext("Hello wörld!\n");$response =React\Http\Response\xml("<message>Hello wörld!</message>\n");
Feature: Expose all status code constants via
Responseclass.
(#432 by@clue)$response =newReact\Http\Message\Response(React\Http\Message\Response::STATUS_OK,// 200 OK …);$response =newReact\Http\Message\Response(React\Http\Message\Response::STATUS_NOT_FOUND,// 404 Not Found …);
Feature: Full support for PHP 8.1 release.
(#433 by@SimonFrings and#434 by@clue)Feature / Fix: Improve protocol handling for HTTP responses with no body.
(#429 and#430 by@clue)Internal refactoring and internal improvements for handling requests and responses.
(#422 by@WyriHaximus and#431 by@clue)Improve documentation, update proxy examples, include error reporting in examples.
(#420,#424,#426, and#427 by@clue)
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.5.0
Feature: Update
Browsersignature to take optional$connectoras first argument and
to match new Socket API without nullable loop arguments.
(#418 and#419 by@clue)// unchanged$browser =newReact\Http\Browser();// deprecated$browser =newReact\Http\Browser(null,$connector);$browser =newReact\Http\Browser($loop,$connector);// new$browser =newReact\Http\Browser($connector);$browser =newReact\Http\Browser($connector,$loop);
Feature: Rename
ServertoHttpServerto avoid class name collisions and
to avoid any ambiguities with regards to the newSocketServerAPI.
(#417 and#419 by@clue)// deprecated$server =newReact\Http\Server($handler);$server->listen(newReact\Socket\Server(8080));// new$http =newReact\Http\HttpServer($handler);$http->listen(newReact\Socket\SocketServer('127.0.0.1:8080'));
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.4.0
A major new feature release, seerelease announcement.
Feature: Simplify usage by supporting newdefault loop.
(#410 by@clue)// old (still supported)$browser =newReact\Http\Browser($loop);$server =newReact\Http\Server($loop,$handler);// new (using default loop)$browser =newReact\Http\Browser();$server =newReact\Http\Server($handler);
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.3.0
Feature: Support persistent connections (
Connection: keep-alive).
(#405 by@clue)This shows a noticeable performance improvement especially when benchmarking
using persistent connections (which is the default pretty much everywhere).
Together with other changes in this release, this improves benchmarking
performance by around 100%.Feature: Require
Hostrequest header for HTTP/1.1 requests.
(#404 by@clue)Minor documentation improvements.
(#398 by@fritz-gerneth and#399 and#400 by@pavog)Improve test suite, use GitHub actions for continuous integration (CI).
(#402 by@SimonFrings)
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v1.2.0
Feature: Keep request body in memory also after consuming request body.
(#395 by@clue)This means consumers can now always access the complete request body as
detailed in the documentation. This allows building custom parsers and more
advanced processing models without having to mess with the default parsers.
Assets2
Uh oh!
There was an error while loading.Please reload this page.