Skip to content

Instantly share code, notes, and snippets.

@Atulin
Last active August 6, 2019 10:01
Show Gist options
  • Save Atulin/463f90e5977a9e53553cca944fefffa5 to your computer and use it in GitHub Desktop.
Save Atulin/463f90e5977a9e53553cca944fefffa5 to your computer and use it in GitHub Desktop.
HTTP status codes as a convenient Json file, with a script that was used to parse them
[
{
"code":100,
"message":"Continue",
"family":null
},
{
"code":101,
"message":"Switching Protocols",
"family":null
},
{
"code":102,
"message":"Processing",
"family":null
},
{
"code":103,
"message":"Early Hints",
"family":null
},
{
"code":200,
"message":"OK",
"family":"Success"
},
{
"code":201,
"message":"Created",
"family":"Success"
},
{
"code":202,
"message":"Accepted",
"family":"Success"
},
{
"code":203,
"message":"Non-Authoritative Information",
"family":"Success"
},
{
"code":204,
"message":"No Content",
"family":"Success"
},
{
"code":205,
"message":"Reset Content",
"family":"Success"
},
{
"code":206,
"message":"Partial Content",
"family":"Success"
},
{
"code":207,
"message":"Multi-Status",
"family":"Success"
},
{
"code":208,
"message":"Already Reported",
"family":"Success"
},
{
"code":226,
"message":"IM Used",
"family":"Success"
},
{
"code":300,
"message":"Multiple Choices",
"family":"Redirection"
},
{
"code":301,
"message":"Moved Permanently",
"family":"Redirection"
},
{
"code":302,
"message":"Found",
"family":"Redirection"
},
{
"code":303,
"message":"See Other",
"family":"Redirection"
},
{
"code":304,
"message":"Not Modified",
"family":"Redirection"
},
{
"code":305,
"message":"Use Proxy",
"family":"Redirection"
},
{
"code":306,
"message":"Switch Proxy",
"family":"Redirection"
},
{
"code":307,
"message":"Temporary Redirect",
"family":"Redirection"
},
{
"code":308,
"message":"Permanent Redirect",
"family":"Redirection"
},
{
"code":404,
"message":"error on Wikipedia",
"family":"Client errors"
},
{
"code":400,
"message":"Bad Request",
"family":"Client errors"
},
{
"code":401,
"message":"Unauthorized",
"family":"Client errors"
},
{
"code":402,
"message":"Payment Required",
"family":"Client errors"
},
{
"code":403,
"message":"Forbidden",
"family":"Client errors"
},
{
"code":404,
"message":"Not Found",
"family":"Client errors"
},
{
"code":405,
"message":"Method Not Allowed",
"family":"Client errors"
},
{
"code":406,
"message":"Not Acceptable",
"family":"Client errors"
},
{
"code":407,
"message":"Proxy Authentication Required",
"family":"Client errors"
},
{
"code":408,
"message":"Request Timeout",
"family":"Client errors"
},
{
"code":409,
"message":"Conflict",
"family":"Client errors"
},
{
"code":410,
"message":"Gone",
"family":"Client errors"
},
{
"code":411,
"message":"Length Required",
"family":"Client errors"
},
{
"code":412,
"message":"Precondition Failed",
"family":"Client errors"
},
{
"code":413,
"message":"Payload Too Large",
"family":"Client errors"
},
{
"code":414,
"message":"URI Too Long",
"family":"Client errors"
},
{
"code":415,
"message":"Unsupported Media Type",
"family":"Client errors"
},
{
"code":416,
"message":"Range Not Satisfiable",
"family":"Client errors"
},
{
"code":417,
"message":"Expectation Failed",
"family":"Client errors"
},
{
"code":418,
"message":"I'm a teapot",
"family":"Client errors"
},
{
"code":421,
"message":"Misdirected Request",
"family":"Client errors"
},
{
"code":422,
"message":"Unprocessable Entity",
"family":"Client errors"
},
{
"code":423,
"message":"Locked",
"family":"Client errors"
},
{
"code":424,
"message":"Failed Dependency",
"family":"Client errors"
},
{
"code":425,
"message":"Too Early",
"family":"Client errors"
},
{
"code":426,
"message":"Upgrade Required",
"family":"Client errors"
},
{
"code":428,
"message":"Precondition Required",
"family":"Client errors"
},
{
"code":429,
"message":"Too Many Requests",
"family":"Client errors"
},
{
"code":431,
"message":"Request Header Fields Too Large",
"family":"Client errors"
},
{
"code":451,
"message":"Unavailable For Legal Reasons",
"family":"Client errors"
},
{
"code":500,
"message":"Internal Server Error",
"family":"Server errors"
},
{
"code":501,
"message":"Not Implemented",
"family":"Server errors"
},
{
"code":502,
"message":"Bad Gateway",
"family":"Server errors"
},
{
"code":503,
"message":"Service Unavailable",
"family":"Server errors"
},
{
"code":504,
"message":"Gateway Timeout",
"family":"Server errors"
},
{
"code":505,
"message":"HTTP Version Not Supported",
"family":"Server errors"
},
{
"code":506,
"message":"Variant Also Negotiates",
"family":"Server errors"
},
{
"code":507,
"message":"Insufficient Storage",
"family":"Server errors"
},
{
"code":508,
"message":"Loop Detected",
"family":"Server errors"
},
{
"code":510,
"message":"Not Extended",
"family":"Server errors"
},
{
"code":511,
"message":"Network Authentication Required",
"family":"Server errors"
},
{
"code":103,
"message":"Checkpoint",
"family":"Server errors"
},
{
"code":218,
"message":"This is fine",
"family":"Server errors"
},
{
"code":419,
"message":"Page Expired",
"family":"Server errors"
},
{
"code":420,
"message":"Method Failure",
"family":"Server errors"
},
{
"code":420,
"message":"Enhance Your Calm",
"family":"Server errors"
},
{
"code":450,
"message":"Blocked by Windows Parental Controls",
"family":"Server errors"
},
{
"code":498,
"message":"Invalid Token",
"family":"Server errors"
},
{
"code":499,
"message":"Token Required",
"family":"Server errors"
},
{
"code":509,
"message":"Bandwidth Limit Exceeded",
"family":"Server errors"
},
{
"code":526,
"message":"Invalid SSL Certificate",
"family":"Server errors"
},
{
"code":530,
"message":"Site is frozen",
"family":"Server errors"
},
{
"code":598,
"message":"Network read timeout error",
"family":"Server errors"
},
{
"code":440,
"message":"Login Time-out",
"family":"Server errors"
},
{
"code":449,
"message":"Retry With",
"family":"Server errors"
},
{
"code":451,
"message":"Redirect",
"family":"Server errors"
},
{
"code":444,
"message":"No Response",
"family":"Server errors"
},
{
"code":494,
"message":"Request header too large",
"family":"Server errors"
},
{
"code":495,
"message":"SSL Certificate Error",
"family":"Server errors"
},
{
"code":496,
"message":"SSL Certificate Required",
"family":"Server errors"
},
{
"code":497,
"message":"HTTP Request Sent to HTTPS Port",
"family":"Server errors"
},
{
"code":499,
"message":"Client Closed Request",
"family":"Server errors"
},
{
"code":520,
"message":"Unknown Error",
"family":"Server errors"
},
{
"code":521,
"message":"Web Server Is Down",
"family":"Server errors"
},
{
"code":522,
"message":"Connection Timed Out",
"family":"Server errors"
},
{
"code":523,
"message":"Origin Is Unreachable",
"family":"Server errors"
},
{
"code":524,
"message":"A Timeout Occurred",
"family":"Server errors"
},
{
"code":525,
"message":"SSL Handshake Failed",
"family":"Server errors"
},
{
"code":526,
"message":"Invalid SSL Certificate",
"family":"Server errors"
},
{
"code":527,
"message":"Railgun Error",
"family":"Server errors"
},
{
"code":530,
"message":"Origin DNS Error",
"family":"Server errors"
}
]
#=========================================================#
# Parse text copied and pasted from Wikipedia #
# https://en.wikipedia.org/wiki/List_of_HTTP_status_codes #
#=========================================================#
import re
import json
class Msg:
code: int
message: str
family: str
def __init__(self, code: int, message: str, family: str):
self.code = code
self.message = message
self.family = family
def __str__(self):
return f"{self.code} ({self.family}): {self.message}"
lst = [re.findall(r'^\b([0-9].+)\n',line) for line in open('ctx.txt')]
lst_c = [x for x in lst if x]
lst_out = []
fam = None
for l in lst_c:
ls = l[0].split(" ", 1)
try:
i = int(ls[0])
lst_out.append(Msg(ls[0], re.sub(r" ?\([^)]+\)", "", ls[1]).strip(), fam))
except ValueError:
fam = ls[1]
for ll in lst_out:
print(ll)
with open('http.json', 'w') as f:
json.dump([l.__dict__ for l in lst_out], f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment