/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
namespace OpenSim.Framework.Servers.HttpServer
{
///
/// HTTP status codes (almost) as defined by W3C in http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
///
public enum OSHttpStatusCode: int
{
#region 1xx Informational status codes providing a provisional response.
///
/// 100 Tells client that to keep on going sending its request
///
InfoContinue = 100,
///
/// 101 Server understands request, proposes to switch to different application level protocol
///
InfoSwitchingProtocols = 101,
#endregion
#region 2xx Success codes
///
/// 200 Request successful
///
SuccessOk = 200,
///
/// 201 Request successful, new resource created
///
SuccessOkCreated = 201,
///
/// 202 Request accepted, processing still on-going
///
SuccessOkAccepted = 202,
///
/// 203 Request successful, meta information not authoritative
///
SuccessOkNonAuthoritativeInformation = 203,
///
/// 204 Request successful, nothing to return in the body
///
SuccessOkNoContent = 204,
///
/// 205 Request successful, reset displayed content
///
SuccessOkResetContent = 205,
///
/// 206 Request successful, partial content returned
///
SuccessOkPartialContent = 206,
#endregion
#region 3xx Redirect code: user agent needs to go somewhere else
///
/// 300 Redirect: different presentation forms available, take a pick
///
RedirectMultipleChoices = 300,
///
/// 301 Redirect: requested resource has moved and now lives somewhere else
///
RedirectMovedPermanently = 301,
///
/// 302 Redirect: Resource temporarily somewhere else, location might change
///
RedirectFound = 302,
///
/// 303 Redirect: See other as result of a POST
///
RedirectSeeOther = 303,
///
/// 304 Redirect: Resource still the same as before
///
RedirectNotModified = 304,
///
/// 305 Redirect: Resource must be accessed via proxy provided in location field
///
RedirectUseProxy = 305,
///
/// 307 Redirect: Resource temporarily somewhere else, location might change
///
RedirectMovedTemporarily = 307,
#endregion
#region 4xx Client error: the client borked the request
///
/// 400 Client error: bad request, server does not grok what the client wants
///
ClientErrorBadRequest = 400,
///
/// 401 Client error: the client is not authorized, response provides WWW-Authenticate header field with a challenge
///
ClientErrorUnauthorized = 401,
///
/// 402 Client error: Payment required (reserved for future use)
///
ClientErrorPaymentRequired = 402,
///
/// 403 Client error: Server understood request, will not deliver, do not try again.
ClientErrorForbidden = 403,
///
/// 404 Client error: Server cannot find anything matching the client request.
///
ClientErrorNotFound = 404,
///
/// 405 Client error: The method specified by the client in the request is not allowed for the resource requested
///
ClientErrorMethodNotAllowed = 405,
///
/// 406 Client error: Server cannot generate suitable response for the resource and content characteristics requested by the client
///
ClientErrorNotAcceptable = 406,
///
/// 407 Client error: Similar to 401, Server requests that client authenticate itself with the proxy first
///
ClientErrorProxyAuthRequired = 407,
///
/// 408 Client error: Server got impatient with client and decided to give up waiting for the client's request to arrive
///
ClientErrorRequestTimeout = 408,
///
/// 409 Client error: Server could not fulfill the request for a resource as there is a conflict with the current state of the resource but thinks client can do something about this
///
ClientErrorConflict = 409,
///
/// 410 Client error: The resource has moved somewhere else, but server has no clue where.
///
ClientErrorGone = 410,
///
/// 411 Client error: The server is picky again and insists on having a content-length header field in the request
///
ClientErrorLengthRequired = 411,
///
/// 412 Client error: one or more preconditions supplied in the client's request is false
///
ClientErrorPreconditionFailed = 412,
///
/// 413 Client error: For fear of reflux, the server refuses to swallow that much data.
///
ClientErrorRequestEntityToLarge = 413,
///
/// 414 Client error: The server considers the Request-URI to be indecently long and refuses to even look at it.
///
ClientErrorRequestURITooLong = 414,
///
/// 415 Client error: The server has no clue about the media type requested by the client (contrary to popular belief it is not a warez server)
///
ClientErrorUnsupportedMediaType = 415,
///
/// 416 Client error: The requested range cannot be delivered by the server.
///
ClientErrorRequestRangeNotSatisfiable = 416,
///
/// 417 Client error: The expectations of the client as expressed in one or more Expect header fields cannot be met by the server, the server is awfully sorry about this.
///
ClientErrorExpectationFailed = 417,
///
/// 499 Client error: Wildcard error.
///
ClientErrorJoker = 499,
#endregion
#region 5xx Server errors (rare)
///
/// 500 Server error: something really strange and unexpected happened
///
ServerErrorInternalError = 500,
///
/// 501 Server error: The server does not do the functionality required to carry out the client request. not at all. certainly not before breakfast. but also not after breakfast.
///
ServerErrorNotImplemented = 501,
///
/// 502 Server error: While acting as a proxy or a gateway, the server got ditched by the upstream server and as a consequence regretfully cannot fulfill the client's request
///
ServerErrorBadGateway = 502,
///
/// 503 Server error: Due to unforseen circumstances the server cannot currently deliver the service requested. Retry-After header might indicate when to try again.
///
ServerErrorServiceUnavailable = 503,
///
/// 504 Server error: The server blames the upstream server for not being able to deliver the service requested and claims that the upstream server is too slow delivering the goods.
///
ServerErrorGatewayTimeout = 504,
///
/// 505 Server error: The server does not support the HTTP version conveyed in the client's request.
///
ServerErrorHttpVersionNotSupported = 505,
#endregion
}
}