diff --git a/typo3/sysext/core/Classes/Http/Request.php b/typo3/sysext/core/Classes/Http/Request.php
index 4f89e0a9b8134e51ecb7e4af7566e48ad8bf34d8..39519917c9f60b54ef3274a6167cc21104c55343 100644
--- a/typo3/sysext/core/Classes/Http/Request.php
+++ b/typo3/sysext/core/Classes/Http/Request.php
@@ -66,7 +66,10 @@ class Request extends Message implements RequestInterface
         'PROPFIND',
         'PROPPATCH',
         'REPORT',
-        'UNLOCK'
+        'UNLOCK',
+        // Custom methods
+        'PURGE',
+        'BAN'
     ];
 
     /**
diff --git a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php
index d28b0f13ee772c868ce9318cae63b1df0756901d..8c6dabafb26bba8d72477b26eacac097166ab104 100644
--- a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php
+++ b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php
@@ -527,4 +527,22 @@ class RequestTest extends UnitTestCase
         $this->expectException(\InvalidArgumentException::class);
         new Request(null, null, 'php://memory', [$name => $value]);
     }
+
+    /**
+     * @test
+     */
+    public function supportedRequestMethodsWork(): void
+    {
+        $request = new Request('some-uri', 'PURGE');
+        self::assertEquals('PURGE', $request->getMethod());
+    }
+
+    /**
+     * @test
+     */
+    public function nonSupportedRequestMethodsRaisesException(): void
+    {
+        $this->expectException(\InvalidArgumentException::class);
+        new Request('some-uri', 'UNSUPPORTED');
+    }
 }