UtopiaSourceUtopiaHTTP

module HTTP

HTTP protocol implementation.

Nested

Definitions

Accept = ::HTTP::Accept

Pull in ::HTTP::Accept for parsing.

STATUS_CODES = {...}

A list of commonly used HTTP status codes. For help choosing the right status code, see http://racksburg.com/choosing-an-http-status-code/

Implementation

STATUS_CODES = {
	:success => 200,
	:created => 201,
	:accepted => 202,
	:moved => 301,
	:found => 302,
	:see_other => 303,
	:not_modified => 304,
	:redirect => 307,
	:bad_request => 400,
	:unauthorized => 401,
	:forbidden => 403,
	:not_found => 404,
	:not_allowed => 405,
	:unsupported_method => 405,
	:gone => 410,
	:teapot => 418,
	:unprocessible => 422, # The best status code for a client-side ArgumentError.
	:error => 500,
	:unimplemented => 501,
	:unavailable => 503
}

STATUS_DESCRIPTIONS

A list of human readable descriptions for a given status code. For a more detailed description, see https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Implementation

STATUS_DESCRIPTIONS = {
	200 => "OK".freeze,
	201 => "Created".freeze,
	202 => "Accepted".freeze,
	203 => "Non-Authoritive Information".freeze,
	204 => "No Content".freeze,
	205 => "Reset Content".freeze,
	206 => "Partial Content".freeze,
	300 => "Multiple Choices".freeze,
	301 => "Moved Permanently".freeze,
	302 => "Found".freeze,
	303 => "See Other".freeze,
	304 => "Not Modified".freeze,
	305 => "Use Proxy".freeze,
	307 => "Temporary Redirect".freeze,
	308 => "Permanent Redirect".freeze,
	400 => "Bad Request".freeze,
	401 => "Permission Denied".freeze,
	402 => "Payment Required".freeze,
	403 => "Access Forbidden".freeze,
	404 => "Resource Not Found".freeze,
	405 => "Unsupported Method".freeze,
	406 => "Not Acceptable".freeze,
	408 => "Request Timeout".freeze,
	409 => "Request Conflict".freeze,
	410 => "Resource Removed".freeze,
	416 => "Byte range unsatisfiable".freeze,
	422 => "Unprocessible Entity".freeze,
	500 => "Internal Server Error".freeze,
	501 => "Not Implemented".freeze,
	503 => "Service Unavailable".freeze
}.merge(Rack::Utils::HTTP_STATUS_CODES)