Skip to content

Instantly share code, notes, and snippets.

@tcg
Created December 18, 2018 06:10
Show Gist options
  • Save tcg/d74b3503214f8b10e3efa2427313ec75 to your computer and use it in GitHub Desktop.
Save tcg/d74b3503214f8b10e3efa2427313ec75 to your computer and use it in GitHub Desktop.
HTTP Status codes in Python 3
>>> from http import HTTPStatus
>>> for s in HTTPStatus:
... print(f"{s.value}: {s.phrase}")
...
100: Continue
101: Switching Protocols
102: Processing
200: OK
201: Created
202: Accepted
203: Non-Authoritative Information
204: No Content
205: Reset Content
206: Partial Content
207: Multi-Status
208: Already Reported
226: IM Used
300: Multiple Choices
301: Moved Permanently
302: Found
303: See Other
304: Not Modified
305: Use Proxy
307: Temporary Redirect
308: Permanent Redirect
400: Bad Request
401: Unauthorized
402: Payment Required
403: Forbidden
404: Not Found
405: Method Not Allowed
406: Not Acceptable
407: Proxy Authentication Required
408: Request Timeout
409: Conflict
410: Gone
411: Length Required
412: Precondition Failed
413: Request Entity Too Large
414: Request-URI Too Long
415: Unsupported Media Type
416: Requested Range Not Satisfiable
417: Expectation Failed
421: Misdirected Request
422: Unprocessable Entity
423: Locked
424: Failed Dependency
426: Upgrade Required
428: Precondition Required
429: Too Many Requests
431: Request Header Fields Too Large
500: Internal Server Error
501: Not Implemented
502: Bad Gateway
503: Service Unavailable
504: Gateway Timeout
505: HTTP Version Not Supported
506: Variant Also Negotiates
507: Insufficient Storage
508: Loop Detected
510: Not Extended
511: Network Authentication Required
>>> l = [f"{s.value}: {s.phrase}" for s in HTTPStatus]
>>>
>>> l
['100: Continue', '101: Switching Protocols', '102: Processing', '200: OK', '201: Created', '202: Accepted', '203: Non-Authoritative Information', '204: No Content', '205: Reset Content', '206: Partial Content', '207: Multi-Status', '208: Already Reported', '226: IM Used', '300: Multiple Choices', '301: Moved Permanently', '302: Found', '303: See Other', '304: Not Modified', '305: Use Proxy', '307: Temporary Redirect', '308: Permanent Redirect', '400: Bad Request', '401: Unauthorized', '402: Payment Required', '403: Forbidden', '404: Not Found', '405: Method Not Allowed', '406: Not Acceptable', '407: Proxy Authentication Required', '408: Request Timeout', '409: Conflict', '410: Gone', '411: Length Required', '412: Precondition Failed', '413: Request Entity Too Large', '414: Request-URI Too Long', '415: Unsupported Media Type', '416: Requested Range Not Satisfiable', '417: Expectation Failed', '421: Misdirected Request', '422: Unprocessable Entity', '423: Locked', '424: Failed Dependency', '426: Upgrade Required', '428: Precondition Required', '429: Too Many Requests', '431: Request Header Fields Too Large', '500: Internal Server Error', '501: Not Implemented', '502: Bad Gateway', '503: Service Unavailable', '504: Gateway Timeout', '505: HTTP Version Not Supported', '506: Variant Also Negotiates', '507: Insufficient Storage', '508: Loop Detected', '510: Not Extended', '511: Network Authentication Required']
>>> max(l, key=len)
'416: Requested Range Not Satisfiable'
>>> len('416: Requested Range Not Satisfiable')
36
@tcg
Copy link
Author

tcg commented Dec 18, 2018

Just some quick checking, for a future hardware project. There are three status' with a length of 36. Bleh.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment