HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。
一、状态码的类别
状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。
状态码中的数字的第一位指定了响应类别,后两位无分类。响应类别有以下 5种。
- 1XX Informational(信息性状态码) 接收的请求正在处理
- 2XX Success(成功状态码) 请求正常处理完毕
- 3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
- 4XX Client Error(客户端错误状态码) 服务器无法处理请求
- 5XX Server Error(服务器错误状态码) 服务器处理请求出错
只要遵守状态码类别的定义,即使改变 RFC2616 中定义的状态码,或服务器端自行创建状态码都没问题。常使用的大概只有 14 种。接下来,我们就介绍一下这些具有代表性的 14 个状态码。
二、2XX 成功
2XX 的响应结果表明请求被正常处理了。
1、 200 OK
表示从客户端发来的请求在服务器端被正常处理了。在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。比如,使用 GET 方法时,对应请求资源的实体会作为响应返回;而使用 HEAD 方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回实体的主体部分)。
2、 204 No Content