Implements DRb
over a UNIX socket
DRb
UNIX socket URIs look like drbunix:<path>?<option>
. The option is optional.
This class is the base class for Net::HTTP request classes.
Method Net::HTTP.get_response
returns an instance of one of the subclasses of Net::HTTPResponse:
Net::HTTP.get_response(uri) # => #<Net::HTTPOK 200 OK readbody=true> Net::HTTP.get_response(hostname, '/nosuch') # => #<Net::HTTPNotFound 404 Not Found readbody=true>
As does method Net::HTTP#request
:
req = Net::HTTP::Get.new(uri) Net::HTTP.start(hostname) do |http| http.request(req) end # => #<Net::HTTPOK 200 OK readbody=true>
Class Net::HTTPResponse includes module Net::HTTPHeader
, which provides access to response header values via (among others):
Hash-like method []
.
Specific reader methods, such as content_type
.
Examples:
res = Net::HTTP.get_response(uri) # => #<Net::HTTPOK 200 OK readbody=true> res['Content-Type'] # => "text/html; charset=UTF-8" res.content_type # => "text/html"
Class Net::HTTPResponse has a subclass for each HTTP status code. You can look up the response class for a given code:
Net::HTTPResponse::CODE_TO_OBJ['200'] # => Net::HTTPOK Net::HTTPResponse::CODE_TO_OBJ['400'] # => Net::HTTPBadRequest Net::HTTPResponse::CODE_TO_OBJ['404'] # => Net::HTTPNotFound
And you can retrieve the status code for a response object:
Net::HTTP.get_response(uri).code # => "200" Net::HTTP.get_response(hostname, '/nosuch').code # => "404"
The response subclasses (indentation shows class hierarchy):
Net::HTTPUnknownResponse
(for unhandled HTTP extensions).
Net::HTTPContinue
(100)
Net::HTTPSwitchProtocol
(101)
Net::HTTPProcessing
(102)
Net::HTTPEarlyHints
(103)
Net::HTTPOK
(200)
Net::HTTPCreated
(201)
Net::HTTPAccepted
(202)
Net::HTTPNoContent
(204)
Net::HTTPResetContent
(205)
Net::HTTPPartialContent
(206)
Net::HTTPMultiStatus
(207)
Net::HTTPAlreadyReported
(208)
Net::HTTPIMUsed
(226)
Net::HTTPMultipleChoices
(300)
Net::HTTPFound
(302)
Net::HTTPSeeOther
(303)
Net::HTTPNotModified
(304)
Net::HTTPUseProxy
(305)
Net::HTTPBadRequest
(400)
Net::HTTPUnauthorized
(401)
Net::HTTPPaymentRequired
(402)
Net::HTTPForbidden
(403)
Net::HTTPNotFound
(404)
Net::HTTPNotAcceptable
(406)
Net::HTTPRequestTimeOut
(408)
Net::HTTPConflict
(409)
Net::HTTPGone
(410)
Net::HTTPLengthRequired
(411)
Net::HTTPLocked
(423)
Net::HTTPUpgradeRequired
(426)
Net::HTTPTooManyRequests
(429)
Net::HTTPNotImplemented
(501)
Net::HTTPBadGateway
(502)
Net::HTTPGatewayTimeOut
(504)
Net::HTTPLoopDetected
(508)
Net::HTTPNotExtended
(510)
There is also the Net::HTTPBadResponse exception which is raised when there is a protocol error.
Response class for No Content
responses (status code 204).
The No Content
response indicates that the server successfully processed the request, and is not returning any content. See 204 No Content.
Response class for Reset Content
responses (status code 205).
The Reset Content
response indicates that the server successfully processed the request, asks that the client reset its document view, and is not returning any content. See 205 Reset Content.
Response class for Found
responses (status code 302).
The Found
response indicates that the client should look at (browse to) another URL. See 302 Found.
Response class for Temporary Redirect
responses (status code 307).
The request should be repeated with another URI
; however, future requests should still use the original URI
. See 307 Temporary Redirect.
Response class for Permanent Redirect
responses (status code 308).
This and all future requests should be directed to the given URI
. See 308 Permanent Redirect.
Response class for Unauthorized
responses (status code 401).
Authentication is required, but either was not provided or failed. See 401 Unauthorized.
Response class for Not Found
responses (status code 404).
The requested resource could not be found but may be available in the future. See 404 Not Found.
Response class for Request Timeout
responses (status code 408).
The server timed out waiting for the request. See 408 Request Timeout.
Response class for Request Timeout
responses (status code 408).
The server timed out waiting for the request. See 408 Request Timeout.
Response class for Gone
responses (status code 410).
The resource requested was previously in use but is no longer available and will not be available again. See 410 Gone.
Response class for Payload Too Large
responses (status code 413).
The request is larger than the server is willing or able to process. See 413 Payload Too Large.
Response class for URI Too Long
responses (status code 414).
The URI
provided was too long for the server to process. See 414 URI Too Long.
Response class for URI Too Long
responses (status code 414).
The URI
provided was too long for the server to process. See 414 URI Too Long.
Response class for Unsupported Media Type
responses (status code 415).
The request entity has a media type which the server or resource does not support. See 415 Unsupported Media Type.
Response class for Misdirected Request
responses (status code 421).
The request was directed at a server that is not able to produce a response. See 421 Misdirected Request.
Response class for Gateway Timeout
responses (status code 504).
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server. See 504 Gateway Timeout.
Response class for Gateway Timeout
responses (status code 504).
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server. See 504 Gateway Timeout.
Response class for Loop Detected (WebDAV)
responses (status code 508).
The server detected an infinite loop while processing the request. See 508 Loop Detected (WebDAV).
OpenTimeout
, a subclass of Timeout::Error
, is raised if a connection cannot be created within the open_timeout.
ReadTimeout
, a subclass of Timeout::Error
, is raised if a chunk of the response cannot be read within the read_timeout.