http.server.responses: load trivial responses from a text file.
parent
f7e2f3af79
commit
cab9a3d625
|
@ -0,0 +1,110 @@
|
||||||
|
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
|
|
@ -1,7 +1,8 @@
|
||||||
! Copyright (C) 2008, 2010 Slava Pestov.
|
! Copyright (C) 2008, 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: math.parser http accessors kernel xml.syntax xml.writer
|
USING: accessors fry http io io.encodings.utf8 io.files
|
||||||
io io.streams.string io.encodings.utf8 ;
|
io.streams.string kernel math math.parser parser sequences
|
||||||
|
splitting unicode words xml.syntax xml.writer ;
|
||||||
IN: http.server.responses
|
IN: http.server.responses
|
||||||
|
|
||||||
: <content> ( body content-type -- response )
|
: <content> ( body content-type -- response )
|
||||||
|
@ -33,17 +34,18 @@ IN: http.server.responses
|
||||||
swap >>message
|
swap >>message
|
||||||
swap >>code ;
|
swap >>code ;
|
||||||
|
|
||||||
: <304> ( -- response )
|
<<
|
||||||
304 "Not modified" <trivial-response> ;
|
"vocab:http/server/responses/http-status-codes.txt"
|
||||||
|
utf8 file-lines [ [ blank? ] trim ] map
|
||||||
: <400> ( -- response )
|
dup [ "Value" head? ] find drop 1 + tail
|
||||||
400 "Bad request" <trivial-response> ;
|
[ "Unassigned" swap subseq? ] reject
|
||||||
|
[
|
||||||
: <403> ( -- response )
|
"[RFC" over start head " " split1 [ blank? ] trim
|
||||||
403 "Forbidden" <trivial-response> ;
|
[
|
||||||
|
[
|
||||||
: <404> ( -- response )
|
"<" ">" surround create-word-in dup reset-generic
|
||||||
404 "Not found" <trivial-response> ;
|
] keep string>number
|
||||||
|
] dip '[ _ _ <trivial-response> ] ( -- response )
|
||||||
: <405> ( -- response )
|
define-declared
|
||||||
405 "Method Not Allowed" <trivial-response> ;
|
] each
|
||||||
|
>>
|
||||||
|
|
Loading…
Reference in New Issue