diff --git a/typo3/sysext/core/Classes/Http/Message.php b/typo3/sysext/core/Classes/Http/Message.php
index 43c05ab145807179e6842b5f0e0f1809c852bbf0..5f00cc910b73a8e1456b9db649d7e393f100aa61 100644
--- a/typo3/sysext/core/Classes/Http/Message.php
+++ b/typo3/sysext/core/Classes/Http/Message.php
@@ -341,11 +341,11 @@ class Message implements MessageInterface
     {
         $headerNames = $headers = [];
         foreach ($originalHeaders as $header => $value) {
-            if (!is_string($header) || (!is_array($value) && !is_string($value))) {
+            if (!is_string($header) || (!is_array($value) && !is_scalar($value))) {
                 continue;
             }
             if (!is_array($value)) {
-                $value = [$value];
+                $value = [(string)$value];
             }
             $headerNames[strtolower($header)] = $header;
             $headers[$header] = $value;
diff --git a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php
index 81b2b5b695d5e13c063be9b4f39441b434e70e62..aabe93cedc2ed4c0213b1fe255bd2f00e55e04a6 100644
--- a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php
+++ b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php
@@ -136,14 +136,19 @@ final class RequestTest extends UnitTestCase
         $headers = [
             ['INVALID'],
             'x-invalid-null'   => null,
-            'x-invalid-true'   => true,
-            'x-invalid-false'  => false,
-            'x-invalid-int'    => 1,
             'x-invalid-object' => (object)['INVALID'],
+            'x-valid-true'   => true,
+            'x-valid-false'  => false,
+            'x-valid-int'    => 1,
+            'x-valid-float'    => 1.5,
             'x-valid-string'   => 'VALID',
             'x-valid-array'    => ['VALID'],
         ];
         $expected = [
+            'x-valid-true' => ['1'],
+            'x-valid-false' => [''],
+            'x-valid-int' => ['1'],
+            'x-valid-float' => ['1.5'],
             'x-valid-string' => ['VALID'],
             'x-valid-array'  => ['VALID'],
         ];
diff --git a/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php b/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php
index 0a2f6b4d2b09579948446f988aeae152e58ae0c1..97b404e94ba2358bfdf8b45273e30cd01ad0a83b 100644
--- a/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php
+++ b/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php
@@ -161,14 +161,19 @@ final class ResponseTest extends UnitTestCase
         $headers = [
             ['INVALID'],
             'x-invalid-null'   => null,
-            'x-invalid-true'   => true,
-            'x-invalid-false'  => false,
-            'x-invalid-int'    => 1,
+            'x-valid-true'   => true,
+            'x-valid-false'  => false,
+            'x-valid-int'    => 1,
+            'x-valid-float'    => 1.5,
             'x-invalid-object' => (object)['INVALID'],
             'x-valid-string'   => 'VALID',
             'x-valid-array'    => ['VALID'],
         ];
         $expected = [
+            'x-valid-true'   => ['1'],
+            'x-valid-false'  => [''],
+            'x-valid-int'    => ['1'],
+            'x-valid-float'    => ['1.5'],
             'x-valid-string' => ['VALID'],
             'x-valid-array'  => ['VALID'],
         ];