diff --git a/basis/http/server/responses/http-status-codes.txt b/basis/http/server/responses/http-status-codes.txt deleted file mode 100644 index b928c07e99..0000000000 --- a/basis/http/server/responses/http-status-codes.txt +++ /dev/null @@ -1,110 +0,0 @@ - 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 diff --git a/basis/http/server/responses/responses.factor b/basis/http/server/responses/responses.factor index 2afc8de0a5..b4cfdbfe60 100644 --- a/basis/http/server/responses/responses.factor +++ b/basis/http/server/responses/responses.factor @@ -1,8 +1,7 @@ ! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -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 ; +USING: accessors http io.encodings.utf8 io.streams.string kernel +xml.syntax xml.writer ; IN: http.server.responses : ( body content-type -- response ) @@ -34,18 +33,63 @@ IN: http.server.responses swap >>message swap >>code ; -<< -"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 '[ _ _ ] ( -- response ) - define-declared -] each ->> +: <100> ( -- response ) "100" "Continue" ; +: <101> ( -- response ) "101" "Switching Protocols" ; +: <102> ( -- response ) "102" "Processing" ; +: <200> ( -- response ) "200" "OK" ; +: <201> ( -- response ) "201" "Created" ; +: <202> ( -- response ) "202" "Accepted" ; +: <203> ( -- response ) "203" "Non-Authoritative Information" ; +: <204> ( -- response ) "204" "No Content" ; +: <205> ( -- response ) "205" "Reset Content" ; +: <206> ( -- response ) "206" "Partial Content" ; +: <207> ( -- response ) "207" "Multi-Status" ; +: <208> ( -- response ) "208" "Already Reported" ; +: <226> ( -- response ) "226" "IM Used" ; +: <300> ( -- response ) "300" "Multiple Choices" ; +: <301> ( -- response ) "301" "Moved Permanently" ; +: <302> ( -- response ) "302" "Found" ; +: <303> ( -- response ) "303" "See Other" ; +: <304> ( -- response ) "304" "Not Modified" ; +: <305> ( -- response ) "305" "Use Proxy" ; +: <306> ( -- response ) "306" "(Unused)" ; +: <307> ( -- response ) "307" "Temporary Redirect" ; +: <308> ( -- response ) "308" "Permanent Redirect" ; +: <400> ( -- response ) "400" "Bad Request" ; +: <401> ( -- response ) "401" "Unauthorized" ; +: <402> ( -- response ) "402" "Payment Required" ; +: <403> ( -- response ) "403" "Forbidden" ; +: <404> ( -- response ) "404" "Not Found" ; +: <405> ( -- response ) "405" "Method Not Allowed" ; +: <406> ( -- response ) "406" "Not Acceptable" ; +: <407> ( -- response ) "407" "Proxy Authentication Required" ; +: <408> ( -- response ) "408" "Request Timeout" ; +: <409> ( -- response ) "409" "Conflict" ; +: <410> ( -- response ) "410" "Gone" ; +: <411> ( -- response ) "411" "Length Required" ; +: <412> ( -- response ) "412" "Precondition Failed" ; +: <413> ( -- response ) "413" "Payload Too Large" ; +: <414> ( -- response ) "414" "URI Too Long" ; +: <415> ( -- response ) "415" "Unsupported Media Type" ; +: <416> ( -- response ) "416" "Range Not Satisfiable" ; +: <417> ( -- response ) "417" "Expectation Failed" ; +: <421> ( -- response ) "421" "Misdirected Request" ; +: <422> ( -- response ) "422" "Unprocessable Entity" ; +: <423> ( -- response ) "423" "Locked" ; +: <424> ( -- response ) "424" "Failed Dependency" ; +: <426> ( -- response ) "426" "Upgrade Required" ; +: <428> ( -- response ) "428" "Precondition Required" ; +: <429> ( -- response ) "429" "Too Many Requests" ; +: <431> ( -- response ) "431" "Request Header Fields Too Large" ; +: <451> ( -- response ) "451" "Unavailable For Legal Reasons" ; +: <500> ( -- response ) "500" "Internal Server Error" ; +: <501> ( -- response ) "501" "Not Implemented" ; +: <502> ( -- response ) "502" "Bad Gateway" ; +: <503> ( -- response ) "503" "Service Unavailable" ; +: <504> ( -- response ) "504" "Gateway Timeout" ; +: <505> ( -- response ) "505" "HTTP Version Not Supported" ; +: <506> ( -- response ) "506" "Variant Also Negotiates" ; +: <507> ( -- response ) "507" "Insufficient Storage" ; +: <508> ( -- response ) "508" "Loop Detected" ; +: <510> ( -- response ) "510" "Not Extended" ; +: <511> ( -- response ) "511" "Network Authentication Required" ;