]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39509: Update HTTP status code to follow IANA (GH-18294)
authorDong-hee Na <donghee.na92@gmail.com>
Sat, 14 Mar 2020 14:12:01 +0000 (23:12 +0900)
committerGitHub <noreply@github.com>
Sat, 14 Mar 2020 14:12:01 +0000 (16:12 +0200)
Add status codes 103 EARLY_HINTS and 425 TOO_EARLY.

Doc/library/http.rst
Doc/whatsnew/3.9.rst
Lib/http/__init__.py
Lib/test/test_httplib.py
Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst [new file with mode: 0644]

index 0e3441cbcb718ccaf570e4da02bcb108c1d54b7e..f120ada2091b581e45af9d376ad8796f22fb00c4 100644 (file)
@@ -62,6 +62,7 @@ Code    Enum Name                           Details
 ``100`` ``CONTINUE``                        HTTP/1.1 :rfc:`7231`, Section 6.2.1
 ``101`` ``SWITCHING_PROTOCOLS``             HTTP/1.1 :rfc:`7231`, Section 6.2.2
 ``102`` ``PROCESSING``                      WebDAV :rfc:`2518`, Section 10.1
+``103`` ``EARLY_HINTS``                     An HTTP Status Code for Indicating Hints :rfc:`8297`
 ``200`` ``OK``                              HTTP/1.1 :rfc:`7231`, Section 6.3.1
 ``201`` ``CREATED``                         HTTP/1.1 :rfc:`7231`, Section 6.3.2
 ``202`` ``ACCEPTED``                        HTTP/1.1 :rfc:`7231`, Section 6.3.3
@@ -102,6 +103,7 @@ Code    Enum Name                           Details
 ``422`` ``UNPROCESSABLE_ENTITY``            WebDAV :rfc:`4918`, Section 11.2
 ``423`` ``LOCKED``                          WebDAV :rfc:`4918`, Section 11.3
 ``424`` ``FAILED_DEPENDENCY``               WebDAV :rfc:`4918`, Section 11.4
+``425`` ``TOO_EARLY``                       Using Early Data in HTTP :rfc:`8470`
 ``426`` ``UPGRADE_REQUIRED``                HTTP/1.1 :rfc:`7231`, Section 6.5.15
 ``428`` ``PRECONDITION_REQUIRED``           Additional HTTP Status Codes :rfc:`6585`
 ``429`` ``TOO_MANY_REQUESTS``               Additional HTTP Status Codes :rfc:`6585`
@@ -130,3 +132,6 @@ equal to the constant name (i.e. ``http.HTTPStatus.OK`` is also available as
 
 .. versionadded:: 3.8
    Added ``451 UNAVAILABLE_FOR_LEGAL_REASONS`` status code.
+
+.. versionadded:: 3.9
+   Added ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` status codes.
index fc91870739c0989e581ab60f85b68d825758ec22..b078e7917765b9fcba0cae3329f70cae4a79e4b1 100644 (file)
@@ -232,6 +232,12 @@ Added a new function :func:`gc.is_finalized` to check if an object has been
 finalized by the garbage collector. (Contributed by Pablo Galindo in
 :issue:`39322`.)
 
+http
+----
+
+HTTP status codes ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` are added to
+:class:`http.HTTPStatus`. (Contributed by Dong-hee Na in :issue:`39509`.)
+
 imaplib
 -------
 
index 350afe77926b029a3e1abf573cdaa136aa0df22b..c8498be0de20d8a2c47d3e249dd829262201dd1b 100644 (file)
@@ -17,6 +17,8 @@ class HTTPStatus(IntEnum):
         * RFC 2774: An HTTP Extension Framework
         * RFC 7725: An HTTP Status Code to Report Legal Obstacles
         * RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2)
+        * RFC 8297: An HTTP Status Code for Indicating Hints
+        * RFC 8470: Using Early Data in HTTP
     """
     def __new__(cls, value, phrase, description=''):
         obj = int.__new__(cls, value)
@@ -31,6 +33,7 @@ class HTTPStatus(IntEnum):
     SWITCHING_PROTOCOLS = (101, 'Switching Protocols',
             'Switching to new protocol; obey Upgrade header')
     PROCESSING = 102, 'Processing'
+    EARLY_HINTS = 103, 'Early Hints'
 
     # success
     OK = 200, 'OK', 'Request fulfilled, document follows'
@@ -105,6 +108,7 @@ class HTTPStatus(IntEnum):
     UNPROCESSABLE_ENTITY = 422, 'Unprocessable Entity'
     LOCKED = 423, 'Locked'
     FAILED_DEPENDENCY = 424, 'Failed Dependency'
+    TOO_EARLY = 425, 'Too Early'
     UPGRADE_REQUIRED = 426, 'Upgrade Required'
     PRECONDITION_REQUIRED = (428, 'Precondition Required',
         'The origin server requires the request to be conditional')
index e1aa41421febf4eb5a99c187971d498dc31b223f..95eca7e00a02920bd6c2be570157ce33205b85cf 100644 (file)
@@ -1440,6 +1440,8 @@ class OfflineTest(TestCase):
             'INSUFFICIENT_STORAGE',
             'NOT_EXTENDED',
             'NETWORK_AUTHENTICATION_REQUIRED',
+            'EARLY_HINTS',
+            'TOO_EARLY'
         ]
         for const in expected:
             with self.subTest(constant=const):
diff --git a/Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst b/Misc/NEWS.d/next/Library/2020-02-01-00-03-06.bpo-39509.-YxUSf.rst
new file mode 100644 (file)
index 0000000..9969556
--- /dev/null
@@ -0,0 +1,2 @@
+HTTP status codes ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` are added to
+:class:`http.HTTPStatus`. Patch by Dong-hee Na.