! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors http io.encodings.utf8 io.streams.string kernel xml.syntax xml.writer ; IN: http.server.responses : ( body content-type -- response ) 200 >>code "Document follows" >>message utf8 >>content-encoding swap >>content-type swap >>body ; : ( body -- response ) "text/plain" ; : ( body -- response ) "text/html" ; : trivial-response-body ( code message -- )

<-> <->

XML> write-xml ; : ( code message -- response ) 2dup [ trivial-response-body ] with-string-writer swap >>message swap >>code ; : <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" ;