Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

HTTP Message

License Latest Stable Version Total Downloads GitHub Build Status GitHub Static Analysis Status Scrutinizer Code Coverage Scrutinizer Code Quality

This package is a lightweight, fast, high-performance and strict implementation of the PSR-7 HTTP Message and PSR-17 HTTP Factories.

The package does not contain any additional functionality other than that defined in the PSR interfaces.



This package requires PHP version 7.4 or later.

composer require httpsoft/http-message


Runs: 30,000 Guzzle HttpSoft Laminas Nyholm Slim
Runs per second 15868 19544 12257 19022 12117
Average time per run 0.0630 ms 0.0512 ms 0.0816 ms 0.0526 ms 0.0825 ms
Total time 1.8905 s 1.5349 s 2.4474 s 1.5771 s 2.4757 s

See benchmark at


For a description of how to use the package components, see the PSR-7 and PSR-17 specifications and package documentation.

For the convenience of creating requests to the server from PHP superglobals, you can use the httpsoft/http-server-request package.

composer require httpsoft/http-server-request

You can use the httpsoft/http-runner package to run requests to the server and emit responses, as well as build the PSR-15 middleware pipelines.

composer require httpsoft/http-runner