HTTP状态码
HTTP状态码是用以表示网页服务器超文本传输协议不同响应状态时的3位数字代码,以下列举了一些常见的状态码。
1XX —— 通知
服务端已经接受了客户端的请求,但是没有接收完成,需要继续处理,等待一段时间后,发送此类型状态码。
- 100(Continue): 继续发送请求
该状态码的响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝,客户端应当继续发送请求的剩余部分。
- 101(Switching protocols): 转换协议
服务器已经理解了客户端的请求,并将通过Upgrade 的消息头通知客户端需要采用不同的协议来完成这个请求。(客户端的请求里使用了Upgrade报头)
- 102(Processing): 进行处理
处理将被继续执行,即保持状态继续等待。
2XX —— 成功
服务端成功接收并理解处理了客户端发送的请求。
- 200(OK): 请求成功
客户端的请求成功,该状态码表示服务器和客户端运行正常。
- 201(Created): 请求实现
客户端的请求被实现,该状态码表示服务器根据要求创建了一个新资源。
- 202(Accepted): 请求接收
客户端的请求被接收,但未处理,该状态码表示该请求无法被及时处理,允许服务器接受其他请求。
- 203(Non-Authoritative Information): 非授权信息
客户端的请求被处理,但是返回的信息可能来自本地或者第三方。(非原始服务器)
- 204(No Content): 无内容
客户端的请求被处理,但是没有返回任何实体内容。
- 205(Reset Content): 重置内容
客户端的请求被处理,且没有任何返回内容,但是此状态码的响应要求请求者重置文档视图。(204状态码则保留了请求时的页面,不产生文档视图的变化)
- 206(Partial Content): 部分内容
客户端发送的GET请求被部分处理,可以用于HTTP下载时实现断点续传。
3XX —— 重定向
客户端需要采取进一步的操作才能完成请求。通常此类状态码用来重定向,告诉客户端需要向另一个地址(url)发送GET请求,而这个地址在本次响应的Location域中表明。
- 300(Multiple Choices): 多种选择
被请求的资源有多种可供选择的返回信息,用户可以自行选择一个地址进行重定向。
- 301(Move Permanently): 永久移动
被请求的资源永久跳转到新的地址,该地址应当在相应的Location域中返回。
- 302(Move Temporarily): 临时移动
被请求的资源临时从不同的地址中响应请求,但仍会继续在原地址中完成请求。(不能自动跳转,需要用户确认)
- 303(See Other): 查看其它
对应当前请求的响应可以在另一个地址上被找到,当客户端使用GET请求访问那个资源的时候响应该状态码。(POST重定向为GET)
- 304(Not Modified): 未修改
当客户端的请求成功后,文档的内容并没有发生改变,因为在上次请求的时候资源被缓存。
- 305(Use Proxy): 使用代理
客户端只能使用指定的代理才能访问请求资源。
- 307(Temporary Redirect): 临时重定向
被请求的资源临时从不同的地址响应请求。(请求未被处理)
4XX —— 客户端错误
此类状态码表示客户端发生错误,妨碍了服务器的处理。
- 400(Bad Request): 不良请求
客户端发送的请求无法被服务器解析。
- 401(Unauthorized): 未授权
当前的请求需要用户进行身份验证。(无权访问web)
- 403(Forbidden): 禁止
服务器能够解析请求,但是拒绝执行。
- 404(Not Found): 未找到
服务器找不到请求的资源。
- 405(Method Not Allowed): 方法不允许
请求行中的指定方法不能被用于请求相应的资源。
- 406(Not Accepted): 不接受
无法使用请求的资源内容的特性进行响应。
- 407(Proxy Authentication Required): 需要代理授权
当前的请求需要在代理服务器上进行身份验证。(无权访问代理)
- 408(Request Timeout): 请求超时
服务器等待请求超时。
- 409(conflict): 冲突
服务器和被请求的资源的状态之间存在冲突,请求无法被完成。
- 410(Gone): 已删除
被请求的资源在服务器上已经不存在或不可用。
- 411(Length Required): 需要指定长度
服务器拒绝在没有定义Content-length头的情况下接受请求,并响应该状态码。
- 412(Precondition Failed): 不满足前提条件
服务器未满足客户端在请求报头里指定的一些前提条件。
- 413(Request Entity Too Large): 请求体过大
服务器不能处理数据过大的请求体,所以拒绝当前请求
- 414(Request URL Too Long): 请求字段过长
服务器不能解析长度过长的URL,所以拒绝当前请求
5XX —— 服务端错误
此类状态码表示服务器在处理请求时发生的错误或者异常。
- 500(Internal Server Error): 内部服务错误
服务器内部出现错误导致无法完成对请求的处理(执行请求时处理代码遇到异常)
- 501(Not Implemented): 未实施
服务器不支持处理当前请求所需要的某个功能
- 502(Bad Gateway): 错误网关
服务器作为网关或代理时出现故障
- 503(Service Unavailable): 服务不可用
服务器处于无法使用的状态(过载、维修)
- 504(Gateway Timeout): 网关超时
服务器作为网关或代理执行请求时无法及时响应