1"""
2This module contains definitions of the HTTP protocol.
3"""
4
5FORM_CONTENT_TYPES = ["application/x-www-form-urlencoded", "multipart/form-data"]
6
7METHODS = {"get", "put", "post", "delete", "options", "head", "patch", "trace"}
8
9HTTP_STATUS_CODES = {
10 100: "Continue",
11 101: "Switching Protocols",
12 102: "Processing",
13 103: "Early Hints", # see RFC 8297
14 200: "OK",
15 201: "Created",
16 202: "Accepted",
17 203: "Non Authoritative Information",
18 204: "No Content",
19 205: "Reset Content",
20 206: "Partial Content",
21 207: "Multi Status",
22 208: "Already Reported", # see RFC 5842
23 226: "IM Used", # see RFC 3229
24 300: "Multiple Choices",
25 301: "Moved Permanently",
26 302: "Found",
27 303: "See Other",
28 304: "Not Modified",
29 305: "Use Proxy",
30 306: "Switch Proxy", # unused
31 307: "Temporary Redirect",
32 308: "Permanent Redirect",
33 400: "Bad Request",
34 401: "Unauthorized",
35 402: "Payment Required", # unused
36 403: "Forbidden",
37 404: "Not Found",
38 405: "Method Not Allowed",
39 406: "Not Acceptable",
40 407: "Proxy Authentication Required",
41 408: "Request Timeout",
42 409: "Conflict",
43 410: "Gone",
44 411: "Length Required",
45 412: "Precondition Failed",
46 413: "Request Entity Too Large",
47 414: "Request URI Too Long",
48 415: "Unsupported Media Type",
49 416: "Requested Range Not Satisfiable",
50 417: "Expectation Failed",
51 418: "I'm a teapot", # see RFC 2324
52 421: "Misdirected Request", # see RFC 7540
53 422: "Unprocessable Entity",
54 423: "Locked",
55 424: "Failed Dependency",
56 425: "Too Early", # see RFC 8470
57 426: "Upgrade Required",
58 428: "Precondition Required", # see RFC 6585
59 429: "Too Many Requests",
60 431: "Request Header Fields Too Large",
61 449: "Retry With", # proprietary MS extension
62 451: "Unavailable For Legal Reasons",
63 500: "Internal Server Error",
64 501: "Not Implemented",
65 502: "Bad Gateway",
66 503: "Service Unavailable",
67 504: "Gateway Timeout",
68 505: "HTTP Version Not Supported",
69 506: "Variant Also Negotiates", # see RFC 2295
70 507: "Insufficient Storage",
71 508: "Loop Detected", # see RFC 5842
72 510: "Not Extended",
73 511: "Network Authentication Failed",
74}