HTTP
1xx - 信息性状态码
这些状态码表示已接受请求,但仍处于处理过程中。常见的信息性状态码有以下几种:
100 Continue(继续) | 表示客户端应该继续它的请求 |
101 Switching Protocols(切换协议) | 表示客户端需要采用不同协议以完成请求,如升级为WebSocket |
102 Processing(处理) | 表示服务器已经收到并正在处理请求,但客户端仍应继续等待 |
2xx - 成功状态码
这些状态码表示已成功接收请求并进行了处理。常见的成功状态码有以下几种:
200 OK(成功) | 表示已成功处理请求,一般用于GET和POST请求 |
201 Created(已创建) | 表示已成功创建请求的资源 |
202 Accepted(已接受) | 表示已接收请求,但尚未完成处理,需要等待一段时间 |
204 No Content(无内容) | 表示成功处理请求,但没有返回任何实体内容 |
3xx - 重定向状态码
这些状态码表示客户端需要可能的进一步操作才能完成请求,如需要进一步地加载新URL。常见的重定向状态码有以下几种:
300 Multiple Choices(多项选择) | 表示请求的资源有多个可供选择的表示形式,由客户端进行选择 |
301 Moved Permanently(永久重定向) | 表示资源已被永久移除,并且将SE0优化转移到了新的位置 |
302 Found(临时重定向) | 表示资源已被临时移动到另一个位置和URL |
303 See Other(查看其他位置) | 表示客户端应当使用另一个URI来访问请求的资源,而不是使用当前URI |
304 Not Modified(未修改) | 表示客户端缓存的资源未发生修改,可以继续使用缓存 |
307 Temporary Redirect(临时重定向) | 与302状态码类似,客户端应该继续使用原地址 |
308 Permanent Redirect(永久重定向) | 与301状态码类似,客户端应该使用新的URL来访问请求资源 |
4xx - 客户端错误状态码
这些状态码表示客户端的请求有错误,需修改请求才能成功。常见的客户端错误状态码有以下几种:
400 Bad Request(请求出错) | 表示请求报文存在语法错误或请求不被服务器所接受 |
401 Unauthorized(未授权) | 表示请求未经授权,需进行身份验证 |
403 Forbidden(拒绝访问) | 表示服务器拒绝该请求 |
404 Not Found(未找到) | 表示请求的资源不存在 |
405 Method Not Allowed(方法不被允许) | 表示请求中所指定的方法不被服务器支持 |
406 Not Acceptable(不可接受) | 表示客户端请求的内容格式服务器不支持 |
407 Proxy Authentication Required(需要代理身份验证) | 表示客户端需要先使用代理服务器进行身份验证才能访问所需资源 |
408 Request Timeout(请求超时) | 表示请求超时,服务器等待的时间过长 |
409 Conflict(请求冲突) | 表示请求冲突,且仅适用于PUT请求 |
410 Gone(已被删除) | 表示请求的资源已被永久删除 |
411 Length Required(需要长度) | 表示服务端必须提供 Content-Length 头信息 |
412 Precondition Failed(前置条件不满足) | 表示客户端请求的条件无法服务端满足 |
413 Payload Too Large(请求体太大) | 表示服务器拒绝处理请求,请求过于庞大 |
414 URI Too Long(URI太长) | 表示请求中的URI过长,服务器无法处理 |
415 Unsupported Media Type(不支持的媒体类型) | 表示客户端请求的内容格式不被服务器支持 |
416 Range Not Satisfiable(范围无效) | 表示服务器无法提供请求的范围,如请求的资源不存在 |
417 Expectation Failed(服务器无法处理Expect头字段指定的期望值) | 表示服务器无法满足客户端在Expect头字段中指定的扩展请求信息 |
421 Misdirected Request(该对端服务器错) | 表示服务器要求客户端通过另一个协议或IP地址访问资源,以便更好的控制负载平衡。 |
422 Unprocessable Entity(请求格式正确,但语义有误) | 表示请求格式正确,但是由于含有语义错误,无法被服务器识别 |
423 Locked(当前请求的资源被锁定) | 表示由于资源被锁定,请求无法处理 |
424 Failed Dependency(请求失败依赖) | 表示一个先前的请求失败,导致此次请求失败 |
425 Too Early(请求过早) | 表示请求过早,任何操作都不能执行 |
426 Upgrade Required(需要升级协议) | 表示客户端需要切换协议以完成请求 |
428 Precondition Required(此时请求需满足先决条件) | 表示缺少先决条件,请求无法被处理 |
429 Too Many Requests(请求过多) | 表示请求次数超出了服务器的限制 |
431 Request Header Fields Too Large(请求头超大) | 表示请求头部字段或cookie长度过大,服务器无法处理 |
451 Unavailable For Legal Reasons(由于法律原因无法获得) | 表示服务器由于法律原因无法处理请求 |
5xx - 服务器端错误状态码
这些状态码表示服务器在处理请求时遇到错误或无法完成请求。常见的服务器端错误状态码有以下几种:
500 Internal Server Error(内部服务器错误) | 表示服务器在处理请求时遇到错误 |
501 Not Implemented(未实现) | 表示服务器不支持请求的功能 |
502 Bad Gateway(错误网关) | 表示网关或代理服务器收到无效响应 |
503 Service Unavailable(服务不可用) | 表示服务器暂时无法处理请求,如服务器过载、停机等 |
504 Gateway Timeout(网关超时) | 表示网关或代理服务器在规定时间内未能接收到响应 |
505 HTTP Version Not Supported(HTTP协议版本不被支持) | 表示服务器不支持请求中所用的HTTP协议版本 |
506 Variant Also Negotiates(协商变量也行) | 表示服务器在内部配置错误 |
507 Insufficient Storage(存储空间溢出) | 表示服务器无法存储完成请求所必须的内容 |
508 Loop Detected(检测到循环) | 表示服务器在处理请求时检测到循环 |
510 Not Extended(不可扩展) | 表示客户端需要进行额外的扩展以完成请求 |
511 Network Authentication Required(需要网络认证) | 表示客户端需要进行网络认证以完成请求 |
FTP
1xx – 肯定的初步答复
这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。
110 | 重新启动标记答复。 |
120 | 服务已就绪,在 nnn 分钟后开始。 |
125 | 数据连接已打开,正在开始传输。 |
150 | 文件状态正常,准备打开数据连接。 |
2xx – 肯定的完成答复
一项操作已经成功完成。客户端可以执行新命令。200 命令确定。
202 | 未执行命令,站点上的命令过多。 |
211 | 系统状态,或系统帮助答复。 |
212 | 目录状态。 |
213 | 文件状态。 |
214 | 帮助消息。 |
215 | NAME 系统类型,其中,NAME 是 Assigned Numbers 文档中所列的正式系统名称。 |
220 | 服务就绪,可以执行新用户的请求。 |
221 | 服务关闭控制连接。如果适当,请注销。 |
225 | 数据连接打开,没有进行中的传输。 |
226 | 关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。 |
227 | 进入被动模式 (h1,h2,h3,h4,p1,p2)。 |
230 | 用户已登录,继续进行。 |
250 | 请求的文件操作正确,已完成。 |
257 | 已创建“PATHNAME”。 |
3xx – 肯定的中间答复
该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。331 用户名正确,需要密码。
332 | 需要登录帐户。 |
350 | 请求的文件操作正在等待进一步的信息。 |
4xx – 瞬态否定的完成答复
该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。
421 | 服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。 |
425 | 无法打开数据连接。 |
426 | Connection closed; transfer aborted. |
450 | 未执行请求的文件操作。文件不可用(例如,文件繁忙)。 |
451 | 请求的操作异常终止:正在处理本地错误。 |
452 | 未执行请求的操作。系统存储空间不够。 |
5xx – 永久性否定的完成答复
该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。
500 | 语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。 |
501 | 在参数中有语法错误。 |
502 | 未执行命令。 |
503 | 错误的命令序列。 |
504 | 未执行该参数的命令。 |
530 | 未登录。 |
532 | 存储文件需要帐户。 |
550 | 未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。 |
551 | 请求的操作异常终止:未知的页面类型。 |
552 | 请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。 |
553 | 未执行请求的操作。不允许的文件名。 |
常见的 FTP 状态代码及其原因
150 | FTP 使用两个端口:21 用于发送命令,20 用于发送数据。状态代码 150 表示服务器准备在端口 20 上打开新连接,发送一些数据。 |
226 | 命令在端口 20 上打开数据连接以执行操作,如传输文件。该操作成功完成,数据连接已关闭。 |
230 | 客户端发送正确的密码后,显示该状态代码。它表示用户已成功登录。 |
331 | 客户端发送用户名后,显示该状态代码。无论所提供的用户名是否为系统中的有效帐户,都将显示该状态代码。 |
426 | 命令打开数据连接以执行操作,但该操作已被取消,数据连接已关闭。 |
530 | 该状态代码表示用户无法登录,因为用户名和密码组合无效。如果使用某个用户帐户登录,可能键入错误的用户名或密码,也可能选择只允许匿名访问。如果使用匿名帐户登录,IIS 的配置可能拒绝匿名访问。 |
550 | 命令未被执行,因为指定的文件不可用。例如,要 GET 的文件并不存在,或试图将文件 PUT 到您没有写入权限的目录。 |