最近的项目,经常会接触一些http相关的error code,查询了下相关定义作为熟悉了解。
转载:
https://www.cnblogs.com/brewin/p/12681673.html
https://www.jianshu.com/p/390890795730
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--信息不完整需要进一步补充
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
1xx
状态码 | 英文名称 | 状态码意义 |
---|---|---|
100 | Continue | 这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。 |
101 | Switching Protocols | 换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议。 |
102 | Processing | 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 |
2xx
状态码 | 英文名称 | 状态码意义 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求,出现此状态码是表示正常状态。 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接受。已经接受请求,但未处理完成 |
203 | Non-Authoritative Information | 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域,以便用户能够轻松地开始另一次输入。 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求,类似于迅雷这类的 HTTP下载工具是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。 |
3xx
状态码 | 英文名称 | 状态码意义 |
---|---|---|
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。 |
302 | Found | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有 |
303 | See Other | 查看其它地址。对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。这个新的 URI 不是原始资源的替代引用。 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问。 |
306 | Switch Proxy | 在最新版的规范中,306状态码已经不再被使用。 |
307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向。 |
4xx
状态码 | 英文名称 | 状态码意义 |
---|---|---|
400 | Bad Request | 客户端请求的语法错误,服务器无法理解,请求参数有误。 |
401 | Unauthorized | 请求要求用户的身份认证 |
402 | Payment Required | 该状态码是为了将来可能的需求而预留的。 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面 |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
409 | Conflict | 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突 |
410 | Gone | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 |
411 | Length Required | 服务器无法处理客户端发送的不带Content-Length的请求信息 |
412 | Precondition Failed | 服务器在验证在请求的头字段中给出先决条件时,先决条件错误 |
413 | Request Entity Too Large | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 |
414 | Request-URI Too Large | 请求的URI过长(URI通常为网址),服务器无法处理 |
415 | Unsupported Media Type | 服务器无法处理请求附带的媒体格式 |
416 | Requested range not satisfiable | 客户端请求的范围无效 |
417 | Expectation Failed | 服务器无法满足Expect的请求头信息 |
421 | too many connections | 从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。 |
422 | Unprocessable Entity | 请求格式正确,但是由于含有语义错误,无法响应。 |
423 | Locked | 当前资源被锁定。 |
424 | Failed Dependency | 由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。 |
5xx
状态码 | 英文名称 | 状态码意义 |
---|---|---|
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理。这暗示着服务器不能或不愿使用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪些协议的实体。 |
600
600 | Unparseable Response Headers | 源站没有返回响应头部,只返回实体内容 |
---|---|---|
常用的HTTP状态码:
2XX-请求成功、3XX-重定向、301-永久重定向、302-临时重定向、303-请求其他资源、4XX-客户端错误、401-未认证、403-被拒绝、404-资源不存在、405-不允许使用该方法、5XX服务器端错误、500-服务器内部错误、502-错误网关、503-服务不可用、504-网关超时。
NSURL Error Code List:
enum : NSInteger {
NSURLErrorUnknown = -1,
NSURLErrorCancelled = -999,
NSURLErrorBadURL = -1000,
NSURLErrorTimedOut = -1001,
NSURLErrorUnsupportedURL = -1002,
NSURLErrorCannotFindHost = -1003,
NSURLErrorCannotConnectToHost = -1004,
NSURLErrorNetworkConnectionLost = -1005,
NSURLErrorDNSLookupFailed = -1006,
NSURLErrorHTTPTooManyRedirects = -1007,
NSURLErrorResourceUnavailable = -1008,
NSURLErrorNotConnectedToInternet = -1009,
NSURLErrorRedirectToNonExistentLocation = -1010,
NSURLErrorBadServerResponse = -1011,
NSURLErrorUserCancelledAuthentication = -1012,
NSURLErrorUserAuthenticationRequired = -1013,
NSURLErrorZeroByteResource = -1014,
NSURLErrorCannotDecodeRawData = -1015,
NSURLErrorCannotDecodeContentData = -1016,
NSURLErrorCannotParseResponse = -1017,
NSURLErrorAppTransportSecurityRequiresSecureConnection = -1022,
NSURLErrorFileDoesNotExist = -1100,
NSURLErrorFileIsDirectory = -1101,
NSURLErrorNoPermissionsToReadFile = -1102,
NSURLErrorDataLengthExceedsMaximum = -1103,
NSURLErrorSecureConnectionFailed = -1200,
NSURLErrorServerCertificateHasBadDate = -1201,
NSURLErrorServerCertificateUntrusted = -1202,
NSURLErrorServerCertificateHasUnknownRoot = -1203,
NSURLErrorServerCertificateNotYetValid = -1204,
NSURLErrorClientCertificateRejected = -1205,
NSURLErrorClientCertificateRequired = -1206,
NSURLErrorCannotLoadFromNetwork = -2000,
NSURLErrorCannotCreateFile = -3000,
NSURLErrorCannotOpenFile = -3001,
NSURLErrorCannotCloseFile = -3002,
NSURLErrorCannotWriteToFile = -3003,
NSURLErrorCannotRemoveFile = -3004,
NSURLErrorCannotMoveFile = -3005,
NSURLErrorDownloadDecodingFailedMidStream = -3006,
NSURLErrorDownloadDecodingFailedToComplete = -3007,
NSURLErrorInternationalRoamingOff = -1018,
NSURLErrorCallIsActive = -1019,
NSURLErrorDataNotAllowed = -1020,
NSURLErrorRequestBodyStreamExhausted = -1021,
NSURLErrorBackgroundSessionRequiresSharedContainer = -995,
NSURLErrorBackgroundSessionInUseByAnotherProcess = -996,
NSURLErrorBackgroundSessionWasDisconnected = -997
};
- -1(未知的错误)
- -999(请求被取消)
- -1000(请求的URL错误,无法启动请求)
- -1001(请求超时)
- -1002(不支持的URL Scheme)
- -1003(URL的host名称无法解析,即DNS有问题)
- -1004(连接host失败)
- -1005(连接过程中被中断)
- -1006(同- -1003)
- -1007(重定向次数超过限制)
- -1008(无法获取所请求的资源)
- -1009(断网状态)
- -1010(重定向到一个不存在的位置)
- -1011(服务器返回数据有误)
- -1012(身份验证请求被用户取消)
- -1013(访问资源需要身份验证)
- -1014(服务器报告URL数据不为空,却未返回任何数据)
- -1015(响应数据无法解码为已知内容编码)
- -1016(请求数据存在未知内容编码)
- -1017(响应数据无法解析)
- -1018(漫游时请求数据,但是漫游开关已关闭)
- -1019(EDGE、GPRS等网络不支持电话和流量同时进行,当正在通话过程中,请求失败错误码)
- -1020(手机网络不允许连接)
- -1021(请求的body流被耗尽)
- -1100(请求的文件路径上文件不存在)
- -1101(请求的文件只是一个目录,而非文件)
- -1102(缺少权限无法读取文件)
- -1103(资源数据大小超过最大限制)
// SSL errors
- -1200(安全连接失败)
- -1201(服务器证书过期)
- -1202(不受信任的根服务器签名证书)
- -1203(服务器证书没有任何根服务器签名)
- -1204(服务器证书还未生效)
- -1205(服务器证书被拒绝)
- -1206(需要客户端证书来验证SSL连接)
- -2000(请求只能加载缓存中的数据,无法加载网络数据)
// Download and file I/O errors
- -3000(下载操作无法创建文件)
- -3001(下载操作无法打开文件)
- -3002(下载操作无法关闭文件)
- -3003(下载操作无法写文件)
- -3004(下载操作无法删除文件)
- -3005(下载操作无法移动文件)
- -3006(下载操作在下载过程中,对编码文件进行解码时失败)
- -3007(下载操作在下载完成后,对编码文件进行解码时失败)