(define-module (web http status-codes) :use-module (srfi srfi-88) :export (http-status-codes http-status-phrase http-status-line)) ;;; https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml ;;; DAV: RFC4918 (define http-status-codes '((100 . "Continue") (101 . "Switching Protocols") (102 . "Processing") ;RFC2518 (103 . "Early Hints") ;RFC8297 (200 . "OK") (201 . "Created") (202 . "Accepted") (203 . "Non-Authoritative Information") (204 . "No Content") (205 . "Reset Content") (206 . "Partial Content") (207 . "Multi-Status") ;DAV (208 . "Already Reported") ;RFC5842 (226 . "IM Used") ;RFC3229 (300 . "Multiple Choices") (301 . "Moved Permanently") (302 . "Found") (303 . "See Other") (304 . "Not Modified") (305 . "Use Proxy") (306 . "(Unused)") (307 . "Temporary Redirect") (308 . "Permanent Redirect") (400 . "Bad Request") (401 . "Unauthorized") (402 . "Payment Required") (403 . "Forbidden") (404 . "Not Found") (405 . "Method Not Allowed") (406 . "Not Acceptable") (407 . "Proxy Authentication Required") (408 . "Request Timeout") (409 . "Conflict") (410 . "Gone") (411 . "Length Required") (412 . "Precondition Failed") ;Extended by DAV (413 . "Request Entity Too Large") (414 . "Request-URI Too Long") ;Extended by DAV (415 . "Unsupported Media Type") (416 . "Requested Range Not Satisfiable") (417 . "Expectation Failed") (418 . "I'm a teapot") ;RFC7168 (421 . "Misdirection Request") (422 . "Unprocessable Content") (423 . "Locked") ;DAV (424 . "Failed Dependency") ;DAV (425 . "Too Early") ;RFC8470 (426 . "Upgrade Required") (428 . "Precondition Failed") ;RFC6585 (429 . "Too Many Requests") ;RFC6585 (431 . "Request Header Fields Too Large") ;RFC6585 (451 . "Unavailable For Legal Reasons") ;RFC7225 (500 . "Internal Server Error") (501 . "Not Implemented") (502 . "Bad Gateway") (503 . "Service Unavailable") (504 . "Gateway Timeout") (505 . "HTTP Version Not Supported") (506 . "Variant Also Negotiates") ;RFC2295 (507 . "Insufficient Storage") ;DAV (508 . "Loop Detected") ;RFC5842 (510 . "Not Extended") ;RFC2774 (OBSOLETED) (511 . "Network Authentication Required") ;RFC6585 )) (define (http-status-phrase code) (or (assoc-ref http-status-codes code) "")) (define* (http-status-line code optional: msg) (format #f "HTTP/1.1 ~a ~a" code (or msg (http-status-phrase code))))