http_status_codes2/
status_code_registry.rs

1//! Representation of the Hypertext Transfer Protocol (HTTP) Status Code Registry
2//! # Data Source:
3//! [IANA's](https://www.iana.org/)
4//! [HTTP Status Code Registry](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml).
5
6/// Representation of the official HTTP status code registry.
7///
8/// Source's last update: 2024-11-13
9///
10/// Tuple values represent the status code, description, references, links to references.
11pub const CODE_REGISTRY: [(usize, &str, &str, &str); 64] = [
12    // Use python script `convert_source_data.py` to produce these
13    // Rust code tuples from the source csv file.
14    // (Value, "Description", "Reference", "Link")
15    (
16        100,
17        "Continue",
18        "[RFC9110, Section 15.2.1]",
19        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.2.1",
20    ),
21    (
22        101,
23        "Switching Protocols",
24        "[RFC9110, Section 15.2.2]",
25        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.2.2",
26    ),
27    (
28        102,
29        "Processing",
30        "[RFC2518]",
31        "https://www.rfc-editor.org/rfc/rfc2518.html",
32    ),
33    (
34        103,
35        "Early Hints",
36        "[RFC8297]",
37        "https://www.rfc-editor.org/rfc/rfc8297.html",
38    ),
39    (
40        104,
41        "Upload Resumption Supported (TEMPORARY - registered 2024-11-13, expires 2025-11-13)",
42        "[draft-ietf-httpbis-resumable-upload-05]",
43        "https://www.iana.org/go/draft-ietf-httpbis-resumable-upload-05",
44    ),
45    (
46        200,
47        "OK",
48        "[RFC9110, Section 15.3.1]",
49        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.1",
50    ),
51    (
52        201,
53        "Created",
54        "[RFC9110, Section 15.3.2]",
55        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.2",
56    ),
57    (
58        202,
59        "Accepted",
60        "[RFC9110, Section 15.3.3]",
61        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.3",
62    ),
63    (
64        203,
65        "Non-Authoritative Information",
66        "[RFC9110, Section 15.3.4]",
67        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.4",
68    ),
69    (
70        204,
71        "No Content",
72        "[RFC9110, Section 15.3.5]",
73        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.5",
74    ),
75    (
76        205,
77        "Reset Content",
78        "[RFC9110, Section 15.3.6]",
79        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.6",
80    ),
81    (
82        206,
83        "Partial Content",
84        "[RFC9110, Section 15.3.7]",
85        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.7",
86    ),
87    (
88        207,
89        "Multi-Status",
90        "[RFC4918]",
91        "https://www.rfc-editor.org/rfc/rfc4918.html",
92    ),
93    (
94        208,
95        "Already Reported",
96        "[RFC5842]",
97        "https://www.rfc-editor.org/rfc/rfc5842.html",
98    ),
99    (
100        226,
101        "IM Used",
102        "[RFC3229]",
103        "https://www.rfc-editor.org/rfc/rfc3229.html",
104    ),
105    (
106        300,
107        "Multiple Choices",
108        "[RFC9110, Section 15.4.1]",
109        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.1",
110    ),
111    (
112        301,
113        "Moved Permanently",
114        "[RFC9110, Section 15.4.2]",
115        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.2",
116    ),
117    (
118        302,
119        "Found",
120        "[RFC9110, Section 15.4.3]",
121        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.3",
122    ),
123    (
124        303,
125        "See Other",
126        "[RFC9110, Section 15.4.4]",
127        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.4",
128    ),
129    (
130        304,
131        "Not Modified",
132        "[RFC9110, Section 15.4.5]",
133        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.5",
134    ),
135    (
136        305,
137        "Use Proxy",
138        "[RFC9110, Section 15.4.6]",
139        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.6",
140    ),
141    (
142        306,
143        "(Unused)",
144        "[RFC9110, Section 15.4.7]",
145        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.7",
146    ),
147    (
148        307,
149        "Temporary Redirect",
150        "[RFC9110, Section 15.4.8]",
151        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.8",
152    ),
153    (
154        308,
155        "Permanent Redirect",
156        "[RFC9110, Section 15.4.9]",
157        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.9",
158    ),
159    (
160        400,
161        "Bad Request",
162        "[RFC9110, Section 15.5.1]",
163        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.1",
164    ),
165    (
166        401,
167        "Unauthorized",
168        "[RFC9110, Section 15.5.2]",
169        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.2",
170    ),
171    (
172        402,
173        "Payment Required",
174        "[RFC9110, Section 15.5.3]",
175        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.3",
176    ),
177    (
178        403,
179        "Forbidden",
180        "[RFC9110, Section 15.5.4]",
181        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.4",
182    ),
183    (
184        404,
185        "Not Found",
186        "[RFC9110, Section 15.5.5]",
187        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.5",
188    ),
189    (
190        405,
191        "Method Not Allowed",
192        "[RFC9110, Section 15.5.6]",
193        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.6",
194    ),
195    (
196        406,
197        "Not Acceptable",
198        "[RFC9110, Section 15.5.7]",
199        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.7",
200    ),
201    (
202        407,
203        "Proxy Authentication Required",
204        "[RFC9110, Section 15.5.8]",
205        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.8",
206    ),
207    (
208        408,
209        "Request Timeout",
210        "[RFC9110, Section 15.5.9]",
211        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.9",
212    ),
213    (
214        409,
215        "Conflict",
216        "[RFC9110, Section 15.5.10]",
217        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.10",
218    ),
219    (
220        410,
221        "Gone",
222        "[RFC9110, Section 15.5.11]",
223        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.11",
224    ),
225    (
226        411,
227        "Length Required",
228        "[RFC9110, Section 15.5.12]",
229        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.12",
230    ),
231    (
232        412,
233        "Precondition Failed",
234        "[RFC9110, Section 15.5.13]",
235        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.13",
236    ),
237    (
238        413,
239        "Content Too Large",
240        "[RFC9110, Section 15.5.14]",
241        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.14",
242    ),
243    (
244        414,
245        "URI Too Long",
246        "[RFC9110, Section 15.5.15]",
247        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.15",
248    ),
249    (
250        415,
251        "Unsupported Media Type",
252        "[RFC9110, Section 15.5.16]",
253        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.16",
254    ),
255    (
256        416,
257        "Range Not Satisfiable",
258        "[RFC9110, Section 15.5.17]",
259        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.17",
260    ),
261    (
262        417,
263        "Expectation Failed",
264        "[RFC9110, Section 15.5.18]",
265        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.18",
266    ),
267    (
268        418,
269        "(Unused)",
270        "[RFC9110, Section 15.5.19]",
271        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.19",
272    ),
273    (
274        421,
275        "Misdirected Request",
276        "[RFC9110, Section 15.5.20]",
277        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.20",
278    ),
279    (
280        422,
281        "Unprocessable Content",
282        "[RFC9110, Section 15.5.21]",
283        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.21",
284    ),
285    (
286        423,
287        "Locked",
288        "[RFC4918]",
289        "https://www.rfc-editor.org/rfc/rfc4918.html",
290    ),
291    (
292        424,
293        "Failed Dependency",
294        "[RFC4918]",
295        "https://www.rfc-editor.org/rfc/rfc4918.html",
296    ),
297    (
298        425,
299        "Too Early",
300        "[RFC8470]",
301        "https://www.rfc-editor.org/rfc/rfc8470.html",
302    ),
303    (
304        426,
305        "Upgrade Required",
306        "[RFC9110, Section 15.5.22]",
307        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.22",
308    ),
309    (
310        428,
311        "Precondition Required",
312        "[RFC6585]",
313        "https://www.rfc-editor.org/rfc/rfc6585.html",
314    ),
315    (
316        429,
317        "Too Many Requests",
318        "[RFC6585]",
319        "https://www.rfc-editor.org/rfc/rfc6585.html",
320    ),
321    (
322        431,
323        "Request Header Fields Too Large",
324        "[RFC6585]",
325        "https://www.rfc-editor.org/rfc/rfc6585.html",
326    ),
327    (
328        451,
329        "Unavailable For Legal Reasons",
330        "[RFC7725]",
331        "https://www.rfc-editor.org/rfc/rfc7725.html",
332    ),
333    (
334        500,
335        "Internal Server Error",
336        "[RFC9110, Section 15.6.1]",
337        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.6.1",
338    ),
339    (
340        501,
341        "Not Implemented",
342        "[RFC9110, Section 15.6.2]",
343        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.6.2",
344    ),
345    (
346        502,
347        "Bad Gateway",
348        "[RFC9110, Section 15.6.3]",
349        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.6.3",
350    ),
351    (
352        503,
353        "Service Unavailable",
354        "[RFC9110, Section 15.6.4]",
355        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.6.4",
356    ),
357    (
358        504,
359        "Gateway Timeout",
360        "[RFC9110, Section 15.6.5]",
361        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.6.5",
362    ),
363    (
364        505,
365        "HTTP Version Not Supported",
366        "[RFC9110, Section 15.6.6]",
367        "https://www.rfc-editor.org/rfc/rfc9110.html#section-15.6.6",
368    ),
369    (
370        506,
371        "Variant Also Negotiates",
372        "[RFC2295]",
373        "https://www.rfc-editor.org/rfc/rfc2295.html",
374    ),
375    (
376        507,
377        "Insufficient Storage",
378        "[RFC4918]",
379        "https://www.rfc-editor.org/rfc/rfc4918.html",
380    ),
381    (
382        508,
383        "Loop Detected",
384        "[RFC5842]",
385        "https://www.rfc-editor.org/rfc/rfc5842.html",
386    ),
387    (
388        510,
389        "Not Extended (OBSOLETED)",
390        "[RFC2774][Status change of HTTP experiments to Historic]",
391        "https://www.rfc-editor.org/rfc/rfc2774.html",
392    ),
393    (
394        511,
395        "Network Authentication Required",
396        "[RFC6585]",
397        "https://www.rfc-editor.org/rfc/rfc6585.html",
398    ),
399];
400
401/// Representation of an unofficial HTTP status code registry. Includes a few proposed or popular
402/// unofficial HTTP status codes.
403///
404/// Tuple values represent the status code, description, references, links to references.
405///
406/// Thanks go to Evert Pot and his [Series of posts on HTTP status codes](https://evertpot.com/http/).
407pub const UNOFFICIAL_CODE_REGISTRY: [(usize, &str, &str, &str); 4] = [
408    // (Value, "Description", "Reference", "Link")
409    (
410        306,
411        "Switch Proxy",
412        "[draft-cohen-http-305-306-responses-00]",
413        "[https://datatracker.ietf.org/doc/html/draft-cohen-http-305-306-responses-00]",
414    ),
415    (
416        418,
417        "I'm a teapot",
418        "[RFC2324, Section 2.3.2]",
419        "https://www.rfc-editor.org/rfc/rfc2324.html#section-2.3.2",
420    ),
421    (
422        420,
423        "Enhance your calm",
424        "[Series of posts on HTTP status codes]",
425        "https://evertpot.com/http/420-enhance-your-calm",
426    ),
427    (
428        430,
429        "Would Block",
430        "[draft-nottingham-http-pipeline-01]",
431        "https://datatracker.ietf.org/doc/html/draft-nottingham-http-pipeline-01",
432    ),
433];