--- /dev/null
+ Hypertext Transfer Protocol (HTTP) Status Code Registry
+
+ Last Updated
+ 2016-03-01
+
+ Available Formats
+ [IMG]
+ XML [IMG]
+ HTML [IMG]
+ Plain text
+
+ Registry included below
+
+ * HTTP Status Codes
+
+HTTP Status Codes
+
+ Registration Procedure(s)
+
+ IETF Review
+
+ Reference
+ [RFC7231]
+
+ Note
+
+ 1xx: Informational - Request received, continuing process
+ 2xx: Success - The action was successfully received, understood, and accepted
+ 3xx: Redirection - Further action must be taken in order to complete the request
+ 4xx: Client Error - The request contains bad syntax or cannot be fulfilled
+ 5xx: Server Error - The server failed to fulfill an apparently valid request
+
+
+ Available Formats
+ [IMG]
+ CSV
+
+ Value Description Reference
+ 100 Continue [RFC7231, Section 6.2.1]
+ 101 Switching Protocols [RFC7231, Section 6.2.2]
+ 102 Processing [RFC2518]
+ 103-199 Unassigned
+ 200 OK [RFC7231, Section 6.3.1]
+ 201 Created [RFC7231, Section 6.3.2]
+ 202 Accepted [RFC7231, Section 6.3.3]
+ 203 Non-Authoritative Information [RFC7231, Section 6.3.4]
+ 204 No Content [RFC7231, Section 6.3.5]
+ 205 Reset Content [RFC7231, Section 6.3.6]
+ 206 Partial Content [RFC7233, Section 4.1]
+ 207 Multi-Status [RFC4918]
+ 208 Already Reported [RFC5842]
+ 209-225 Unassigned
+ 226 IM Used [RFC3229]
+ 227-299 Unassigned
+ 300 Multiple Choices [RFC7231, Section 6.4.1]
+ 301 Moved Permanently [RFC7231, Section 6.4.2]
+ 302 Found [RFC7231, Section 6.4.3]
+ 303 See Other [RFC7231, Section 6.4.4]
+ 304 Not Modified [RFC7232, Section 4.1]
+ 305 Use Proxy [RFC7231, Section 6.4.5]
+ 306 (Unused) [RFC7231, Section 6.4.6]
+ 307 Temporary Redirect [RFC7231, Section 6.4.7]
+ 308 Permanent Redirect [RFC7538]
+ 309-399 Unassigned
+ 400 Bad Request [RFC7231, Section 6.5.1]
+ 401 Unauthorized [RFC7235, Section 3.1]
+ 402 Payment Required [RFC7231, Section 6.5.2]
+ 403 Forbidden [RFC7231, Section 6.5.3]
+ 404 Not Found [RFC7231, Section 6.5.4]
+ 405 Method Not Allowed [RFC7231, Section 6.5.5]
+ 406 Not Acceptable [RFC7231, Section 6.5.6]
+ 407 Proxy Authentication Required [RFC7235, Section 3.2]
+ 408 Request Timeout [RFC7231, Section 6.5.7]
+ 409 Conflict [RFC7231, Section 6.5.8]
+ 410 Gone [RFC7231, Section 6.5.9]
+ 411 Length Required [RFC7231, Section 6.5.10]
+ 412 Precondition Failed [RFC7232, Section 4.2]
+ 413 Payload Too Large [RFC7231, Section 6.5.11]
+ 414 URI Too Long [RFC7231, Section 6.5.12]
+ 415 Unsupported Media Type [RFC7231, Section 6.5.13][RFC7694, Section 3]
+ 416 Range Not Satisfiable [RFC7233, Section 4.4]
+ 417 Expectation Failed [RFC7231, Section 6.5.14]
+ 418-420 Unassigned
+ 421 Misdirected Request [RFC7540, Section 9.1.2]
+ 422 Unprocessable Entity [RFC4918]
+ 423 Locked [RFC4918]
+ 424 Failed Dependency [RFC4918]
+ 425 Unassigned
+ 426 Upgrade Required [RFC7231, Section 6.5.15]
+ 427 Unassigned
+ 428 Precondition Required [RFC6585]
+ 429 Too Many Requests [RFC6585]
+ 430 Unassigned
+ 431 Request Header Fields Too Large [RFC6585]
+ 432-450 Unassigned
+ 451 Unavailable For Legal Reasons [RFC7725]
+ 452-499 Unassigned
+ 500 Internal Server Error [RFC7231, Section 6.6.1]
+ 501 Not Implemented [RFC7231, Section 6.6.2]
+ 502 Bad Gateway [RFC7231, Section 6.6.3]
+ 503 Service Unavailable [RFC7231, Section 6.6.4]
+ 504 Gateway Timeout [RFC7231, Section 6.6.5]
+ 505 HTTP Version Not Supported [RFC7231, Section 6.6.6]
+ 506 Variant Also Negotiates [RFC2295]
+ 507 Insufficient Storage [RFC4918]
+ 508 Loop Detected [RFC5842]
+ 509 Unassigned
+ 510 Not Extended [RFC2774]
+ 511 Network Authentication Required [RFC6585]
+ 512-599 Unassigned
! Copyright (C) 2008, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: math.parser http accessors kernel xml.syntax xml.writer
-io io.streams.string io.encodings.utf8 ;
+USING: accessors fry http io io.encodings.utf8 io.files
+io.streams.string kernel math math.parser parser sequences
+splitting unicode words xml.syntax xml.writer ;
IN: http.server.responses
: <content> ( body content-type -- response )
swap >>message
swap >>code ;
-: <304> ( -- response )
- 304 "Not modified" <trivial-response> ;
-
-: <400> ( -- response )
- 400 "Bad request" <trivial-response> ;
-
-: <403> ( -- response )
- 403 "Forbidden" <trivial-response> ;
-
-: <404> ( -- response )
- 404 "Not found" <trivial-response> ;
-
-: <405> ( -- response )
- 405 "Method Not Allowed" <trivial-response> ;
+<<
+"vocab:http/server/responses/http-status-codes.txt"
+utf8 file-lines [ [ blank? ] trim ] map
+dup [ "Value" head? ] find drop 1 + tail
+[ "Unassigned" swap subseq? ] reject
+[
+ "[RFC" over start head " " split1 [ blank? ] trim
+ [
+ [
+ "<" ">" surround create-word-in dup reset-generic
+ ] keep string>number
+ ] dip '[ _ _ <trivial-response> ] ( -- response )
+ define-declared
+] each
+>>