[TASK] Streamline HTTP Response codes 62/56562/8
authorFrank Naegler <frank.naegler@typo3.org>
Thu, 5 Apr 2018 12:57:23 +0000 (14:57 +0200)
committerAndreas Fernandez <a.fernandez@scripting-base.de>
Thu, 5 Apr 2018 13:43:03 +0000 (15:43 +0200)
This patch streamlines all lists of HTTP response codes.

Resolves: #84626
Related: #84490
Related: #84481
Releases: master, 8.7
Change-Id: Id7d3675e5f0f07a9c8920c40f70ddd194db994d0
Reviewed-on: https://review.typo3.org/56562
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Reviewed-by: Mathias Brodala <mbrodala@pagemachine.de>
Tested-by: Mathias Brodala <mbrodala@pagemachine.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
typo3/sysext/core/Classes/Utility/HttpUtility.php
typo3/sysext/extbase/Classes/Mvc/Web/Response.php

index 2cecf2d..29901e4 100644 (file)
@@ -19,9 +19,13 @@ namespace TYPO3\CMS\Core\Utility;
  */
 class HttpUtility
 {
-    // HTTP Headers, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for Details
+    // HTTP Headers, see https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
+    // INFORMATIONAL CODES
     const HTTP_STATUS_100 = 'HTTP/1.1 100 Continue';
     const HTTP_STATUS_101 = 'HTTP/1.1 101 Switching Protocols';
+    const HTTP_STATUS_102 = 'HTTP/1.1 102 Processing';
+    const HTTP_STATUS_103 = 'HTTP/1.1 103 Early Hints';
+    // SUCCESS CODES
     const HTTP_STATUS_200 = 'HTTP/1.1 200 OK';
     const HTTP_STATUS_201 = 'HTTP/1.1 201 Created';
     const HTTP_STATUS_202 = 'HTTP/1.1 202 Accepted';
@@ -29,14 +33,20 @@ class HttpUtility
     const HTTP_STATUS_204 = 'HTTP/1.1 204 No Content';
     const HTTP_STATUS_205 = 'HTTP/1.1 205 Reset Content';
     const HTTP_STATUS_206 = 'HTTP/1.1 206 Partial Content';
+    const HTTP_STATUS_207 = 'HTTP/1.1 207 Multi-status';
+    const HTTP_STATUS_208 = 'HTTP/1.1 208 Already Reported';
+    const HTTP_STATUS_226 = 'HTTP/1.1 226 IM Used';
+    // REDIRECTION CODES
     const HTTP_STATUS_300 = 'HTTP/1.1 300 Multiple Choices';
     const HTTP_STATUS_301 = 'HTTP/1.1 301 Moved Permanently';
     const HTTP_STATUS_302 = 'HTTP/1.1 302 Found';
     const HTTP_STATUS_303 = 'HTTP/1.1 303 See Other';
     const HTTP_STATUS_304 = 'HTTP/1.1 304 Not Modified';
     const HTTP_STATUS_305 = 'HTTP/1.1 305 Use Proxy';
+    const HTTP_STATUS_306 = 'HTTP/1.1 306 Switch Proxy'; // Deprecated
     const HTTP_STATUS_307 = 'HTTP/1.1 307 Temporary Redirect';
     const HTTP_STATUS_308 = 'HTTP/1.1 308 Permanent Redirect';
+    // CLIENT ERROR
     const HTTP_STATUS_400 = 'HTTP/1.1 400 Bad Request';
     const HTTP_STATUS_401 = 'HTTP/1.1 401 Unauthorized';
     const HTTP_STATUS_402 = 'HTTP/1.1 402 Payment Required';
@@ -51,16 +61,32 @@ class HttpUtility
     const HTTP_STATUS_411 = 'HTTP/1.1 411 Length Required';
     const HTTP_STATUS_412 = 'HTTP/1.1 412 Precondition Failed';
     const HTTP_STATUS_413 = 'HTTP/1.1 413 Request Entity Too Large';
-    const HTTP_STATUS_414 = 'HTTP/1.1 414 Request-URI Too Long';
+    const HTTP_STATUS_414 = 'HTTP/1.1 414 URI Too Long';
     const HTTP_STATUS_415 = 'HTTP/1.1 415 Unsupported Media Type';
-    const HTTP_STATUS_416 = 'HTTP/1.1 416 Requested Range Not Satisfiable';
+    const HTTP_STATUS_416 = 'HTTP/1.1 416 Requested range not satisfiable';
     const HTTP_STATUS_417 = 'HTTP/1.1 417 Expectation Failed';
+    const HTTP_STATUS_418 = 'HTTP/1.1 418 I\'m a teapot';
+    const HTTP_STATUS_422 = 'HTTP/1.1 422 Unprocessable Entity';
+    const HTTP_STATUS_423 = 'HTTP/1.1 423 Locked';
+    const HTTP_STATUS_424 = 'HTTP/1.1 424 Failed Dependency';
+    const HTTP_STATUS_425 = 'HTTP/1.1 425 Unordered Collection';
+    const HTTP_STATUS_426 = 'HTTP/1.1 426 Upgrade Required';
+    const HTTP_STATUS_428 = 'HTTP/1.1 428 Precondition Required';
+    const HTTP_STATUS_429 = 'HTTP/1.1 429 Too Many Requests';
+    const HTTP_STATUS_431 = 'HTTP/1.1 431 Request Header Fields Too Large';
+    const HTTP_STATUS_451 = 'HTTP/1.1 451 Unavailable For Legal Reasons';
+    // SERVER ERROR
     const HTTP_STATUS_500 = 'HTTP/1.1 500 Internal Server Error';
     const HTTP_STATUS_501 = 'HTTP/1.1 501 Not Implemented';
     const HTTP_STATUS_502 = 'HTTP/1.1 502 Bad Gateway';
     const HTTP_STATUS_503 = 'HTTP/1.1 503 Service Unavailable';
-    const HTTP_STATUS_504 = 'HTTP/1.1 504 Gateway Timeout';
-    const HTTP_STATUS_505 = 'HTTP/1.1 505 Version Not Supported';
+    const HTTP_STATUS_504 = 'HTTP/1.1 504 Gateway Time-out';
+    const HTTP_STATUS_505 = 'HTTP/1.1 505 Version not Supported';
+    const HTTP_STATUS_506 = 'HTTP/1.1 506 Variant Also Negotiates';
+    const HTTP_STATUS_507 = 'HTTP/1.1 507 Insufficient Storage';
+    const HTTP_STATUS_508 = 'HTTP/1.1 508 Loop Detected';
+    const HTTP_STATUS_509 = 'HTTP/1.1 509 Bandwidth Limit Exceeded';
+    const HTTP_STATUS_511 = 'HTTP/1.1 511 Network Authentication Required';
     // URL Schemes
     const SCHEME_HTTP = 1;
     const SCHEME_HTTPS = 2;
index b06abe1..300afb3 100644 (file)
@@ -66,10 +66,12 @@ class Response extends \TYPO3\CMS\Extbase\Mvc\Response
      * @var array
      */
     protected $statusMessages = [
+        // INFORMATIONAL CODES
         100 => 'Continue',
         101 => 'Switching Protocols',
         102 => 'Processing',
-        // RFC 2518
+        103 => 'Early Hints',
+        // SUCCESS CODES
         200 => 'OK',
         201 => 'Created',
         202 => 'Accepted',
@@ -77,14 +79,20 @@ class Response extends \TYPO3\CMS\Extbase\Mvc\Response
         204 => 'No Content',
         205 => 'Reset Content',
         206 => 'Partial Content',
-        207 => 'Multi-Status',
+        207 => 'Multi-status',
+        208 => 'Already Reported',
+        226 => 'IM Used',
+        // REDIRECTION CODES
         300 => 'Multiple Choices',
         301 => 'Moved Permanently',
         302 => 'Found',
         303 => 'See Other',
         304 => 'Not Modified',
         305 => 'Use Proxy',
+        306 => 'Switch Proxy', // Deprecated
         307 => 'Temporary Redirect',
+        308 => 'Permanent Redirect',
+        // CLIENT ERROR
         400 => 'Bad Request',
         401 => 'Unauthorized',
         402 => 'Payment Required',
@@ -99,18 +107,32 @@ class Response extends \TYPO3\CMS\Extbase\Mvc\Response
         411 => 'Length Required',
         412 => 'Precondition Failed',
         413 => 'Request Entity Too Large',
-        414 => 'Request-URI Too Long',
+        414 => 'URI Too Long',
         415 => 'Unsupported Media Type',
-        416 => 'Requested Range Not Satisfiable',
+        416 => 'Requested range not satisfiable',
         417 => 'Expectation Failed',
+        418 => 'I\'m a teapot',
+        422 => 'Unprocessable Entity',
+        423 => 'Locked',
+        424 => 'Failed Dependency',
+        425 => 'Unordered Collection',
+        426 => 'Upgrade Required',
+        428 => 'Precondition Required',
+        429 => 'Too Many Requests',
+        431 => 'Request Header Fields Too Large',
+        451 => 'Unavailable For Legal Reasons',
+        // SERVER ERROR
         500 => 'Internal Server Error',
         501 => 'Not Implemented',
         502 => 'Bad Gateway',
         503 => 'Service Unavailable',
-        504 => 'Gateway Timeout',
-        505 => 'HTTP Version Not Supported',
+        504 => 'Gateway Time-out',
+        505 => 'HTTP Version not supported',
+        506 => 'Variant Also Negotiates',
         507 => 'Insufficient Storage',
-        509 => 'Bandwidth Limit Exceeded'
+        508 => 'Loop Detected',
+        509 => 'Bandwidth Limit Exceeded',
+        511 => 'Network Authentication Required',
     ];
 
     /**