diff --git a/Message/Http/HttpHeader.php b/Message/Http/HttpHeader.php index 2617ce9ef..b2d93b1da 100644 --- a/Message/Http/HttpHeader.php +++ b/Message/Http/HttpHeader.php @@ -37,6 +37,14 @@ final class HttpHeader extends HeaderAbstract */ private array $header = []; + /** + * Server headers. + * + * @var string[] + * @since 1.0.0 + */ + private static $serverHeaders = []; + /** * {@inheritdoc} */ @@ -138,17 +146,20 @@ final class HttpHeader extends HeaderAbstract */ public static function getAllHeaders() : array { + if (!empty(self::$serverHeaders)) { + return self::$serverHeaders; + } + if (\function_exists('getallheaders')) { // @codeCoverageIgnoreStart - return \getallheaders(); + self::$serverHeaders = \getallheaders(); // @codeCoverageIgnoreEnd } - $headers = []; foreach ($_SERVER as $name => $value) { $part = \substr($name, 5); if ($part === 'HTTP_') { - $headers[ + self::$serverHeaders[ \str_replace( ' ', '-', @@ -162,7 +173,7 @@ final class HttpHeader extends HeaderAbstract } } - return $headers; + return self::$serverHeaders; } /**