Skip to content

HTTP状态码

约 1075 个字 预计阅读时间 4 分钟

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作

类别 原因短语 描述
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错
## 2xx成功

200 OK

表示正常处理

204 NO content

表示没有资源可以返回,但是服务器已经成功处理请求,浏览器页面不更新

206 Partial Content

表示范围请求被成功执行

3xx重定向

表明浏览器需要执行某些特殊的处理以正确处理 请求

301 Moved Permanently

永久性重定向.该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI.

也就是说,如果已经把资源对应的URI保存为书签了,这时应该按Location首部字段提示的URI重新保存.像下方给出的请求URI,当指定资源路径的最后忘记添加斜杠 “/”,就会产生301状态码

http://example.com/sample

302Found

临时性重定向,表示请求的资源被分配了新的URI,希望本次能使用新的URI

301 Moved Permanently状态码相似,但 302 状态码代表的资源 不是被永久移动,只是临时性质的.换句话说,已移动的资源对应的 URI 将来还有可能发生改变

303 See other

该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源

303 状态码和302 Found状态码有着相同的功能,但303状态码明 确表示客户端应当采用GET方法获取资源,这点与302状态码有区别

比如,当使用POST方法访问CGI程序,其执行后的处理结果是希望客户端能以GET方法重定向到另一个URI上去时,返回303状态码.虽然302 Found 状态码也可以实现相同的功能,但这里使用303状态码是最理想的

304 Not Modified

找到了资源,但是不符合条件请求(此时记客户端会发送附带条件的请求)

307 Temporary Redirect

临时重定向,和302类似.会遵照浏览器标准不会送POST变成GET

4XX 客户端错误

400 Bad Request

表示报文存在语法错误,需要再次发送请求,此外浏览器回想200ok一样对待该状态码

401 Unauthorized

但需要认证的时候,第一次返回401跳出认证界面,第二次返回401就是认证失败

403 Forbidden

该状态码表示对请求资源的访问被服务器拒绝了,服务器端没有必要给出拒绝的详细理由,如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就可以让用户看到了

未获得文件的访问授权,访问权限出现某些问题,从未授权的发送源IP试图访问等情况都是可能发生403的原因

404Not Found

表示服务器找不到请求的资源,也可能就拒绝请求且不想说明理由时使用

5XX服务器错误

表示服务器本身发生错误

500 Internal Server Error

服务器执行请求时发生了错误,可能是web应用存在的bug或者是某些临时的故障

503 Service Unavailable

表示服务器出于超负载或者在停机维修,无法请求数据,如果事先得知解除以上状态需要的时间,最好写入Retry-After,首段字符返回给客户端

状态码和状况的不一致

不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比 如Web应用程序内部发生错误,状态码依然返回200 OK,这种情况也经 常遇到