diff --git a/typo3/sysext/core/Classes/Http/Uri.php b/typo3/sysext/core/Classes/Http/Uri.php
index ffda18cf3f9599e51a66ce270dc2b681e2fe1115..09ca4e1259349c20fc4997956c3eecd08c3eb5a3 100644
--- a/typo3/sysext/core/Classes/Http/Uri.php
+++ b/typo3/sysext/core/Classes/Http/Uri.php
@@ -53,6 +53,8 @@ class Uri implements UriInterface
     protected array $supportedSchemes = [
         'http'  => 80,
         'https' => 443,
+        'ws' => 80,
+        'wss' => 443,
     ];
 
     /**
diff --git a/typo3/sysext/core/Tests/Unit/Http/UriTest.php b/typo3/sysext/core/Tests/Unit/Http/UriTest.php
index 3087eac58b50978669f4f19193821635376441fb..ce89a9b4dc13d7f1ecfcd7fca8446a8c5f24506b 100644
--- a/typo3/sysext/core/Tests/Unit/Http/UriTest.php
+++ b/typo3/sysext/core/Tests/Unit/Http/UriTest.php
@@ -43,6 +43,8 @@ final class UriTest extends UnitTestCase
         return [
             'full uri' => [ 'https://user:pass@local.example.com:3001/foo?bar=baz#quz' ],
             'double slash' => [ 'https://user:pass@local.example.com:3001//' ],
+            'websocket uri' => [ 'ws://user:pass@local.example.com:3001/foo?bar=baz#quz' ],
+            'secure websocket uri' => [ 'wss://user:pass@local.example.com:3001/foo?bar=baz#quz' ],
         ];
     }