using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace Autobio.UDI.Log.ServiceException
{
/// <summary>
/// HTTP 定义的错误状态代码的值。(400~599)
/// </summary>
public enum HttpStatusCode
{
#region 请求错误
[Description("请求参数有误。")]
BadRequest = 400,
[Description("当前请求需要用户验证。")]
Unauthorized = 401,
[Description("该状态码是为了将来可能的需求而预留的")]
PaymentRequired = 402,
[Description("服务器已经理解请求,但是拒绝执行它。")]
Forbidden = 403,
[Description("请求的资源不在服务器上。")]
NotFound = 404,
[Description("指示请求的资源上不允许请求方法(POST 或 GET)。")]
MethodNotAllowed = 405,
[Description("请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。")]
NotAcceptable = 406,
// Proxy-authenticate 头包含如何执行身份验证的详细信息。
[Description("请求的代理要求身份验证")]
ProxyAuthenticationRequired = 407,
[Description("请求超时。")]
RequestTimeout = 408,
[Description("由于服务器上的冲突而未能执行请求。")]
Conflict = 409,
[Description("请求的资源不再可用。")]
Gone = 410,
[Description("缺少必需的 Content-length。")]
LengthRequired = 411,
// 条件是用条件请求标头(如 If-Match、If-None-Match 或 If-Unmodified-Since)设置的。
[Description("此请求设置的条件失败,且无法执行此请求。")]
PreconditionFailed = 412,
[Description("服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。")]
RequestEntityTooLarge = 413,
// 等效于 HTTP 状态 414。 System.Net.HttpStatusCode.RequestUriTooLong 指示 URI 太长。
[Description("请求的URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。")]
RequestUriTooLong = 414,
[Description("对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。")]
UnsupportedMediaType = 415,
[Description("无法返回从资源请求的数据范围,因为范围的开头在资源的开头之前,或因为范围的结尾在资源的结尾之后。")]
RequestedRangeNotSatisfiable = 416,
// 头中给定的预期值。
[Description("在请求头 Expect 中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect 的内容无法被满足。")]
ExpectationFailed = 417,
[Description("请求被指向到无法生成响应的服务器(比如由于连接重复使用)。")]
MisdirectedRequest = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 421,
[Description("请求被指向到无法生成响应的服务器(比如由于连接重复使用)。")]
UnprocessableEntity = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 422,
[Description("当前资源被锁定。")]
Locked = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 423,
[Description("由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。")]
FailedDependency = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 424,
[Description("状态码 425 Too Early 代表服务器不愿意冒风险来处理该请求,原因是处理该请求可能会被“重放”,从而造成潜在的重放攻击。(RFC 8470)。")]
TooEarly = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 425,
[Description("客户端应当切换到TLS/1.0。")]
UpgradeRequired = 426,
#endregion
#region 服务器错误
[Description("服务器上发生了一般错误。")]
InternalServerError = 500,
[Description("服务器不支持请求的函数。")]
NotImplemented = 501,
[Description("作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。")]
BadGateway = 502,
[Description("由于临时的服务器维护或者过载,服务器当前无法处理请求。")]
ServiceUnavailable = 503,
[Description("作为网关或者代理工作的服务器尝试执行请求时。")]
GatewayTimeout = 504,
[Description("服务器不支持请求。")]
HttpVersionNotSupported = 505,
[Description("服务器存在内部配置错误。")]
VariantAlsoNegotiates = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 506,
[Description("服务器无法存储完成请求所必须的内容。")]
InsufficientStorage = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 507,
[Description("服务器达到带宽限制。")]
BandwidthLimitExceeded = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 509,
[Description("获取资源所需要的策略并没有被满足。")]
NotExtended = LogLevel.Error + LogSystemType.Server + LogModule.WebAPI + 510,
#endregion
}
}