Http状态码整理
Http状态码对于一名合格的前端开发来说是必须掌握的基本知识,由于本人对状态码了解的不全面,因此专门花时间整理了下Http状态码。本次整理参考了《Http权威指南》和《图解Http》。
100-199 信息性状态码
- 100 说明收到了请求的初始部分,请客户端继续。发送了这个状态码之后,服务器在收到请求之后必须进行响应。
- 101 说明服务器正在根据客户端的指定,将协议切换成Update首部所列的协议
200-299 成功状态码
- 200 请求没有问题,实体的主体部分包含了所请求的资源
- 201 用于创建服务器对象的请求(比如PUT)。响应的实体主体部分中应该包含各种引用了已创建资源的URL,Location首部包含的则是具体的引用
- 202 请求已被接受,但服务器还未对其执行任何动作
- 203 实体首部包含的信息不是来自于源端服务器,而是来自资源的一份副本
- 204 响应报文中包含若干首部和一个状态行,但没有实体的主体部分。主要用于在浏览器不转为显示新文档的情况下,对其进行更新(比如刷新一个表单页面)
- 205 负责告知浏览器清除当前页面中的所有HTML表单元素
- 206 成功执行了一个部分或Range(范围)请求。
300-399 重定向状态码
- 300 客户端请求一个实际指向多个资源的URL时会返回这个状态码
- 301 在请求的URL已被移除时使用。响应的Location首部中应包含资源现在所处的URL
- 302 与301类似。但是客户端应该使用Location首部给出的URL来临时定位资源。将来的请求仍应使用老的URL
- 303 告知客户端应该用另一个URL来获取资源。新的URL位于响应报文的Location首部。其主要目的是允许POST请求的响应将客户端定向到某个资源上去
- 304 如果客户端发起了一个条件GET请求,而最近资源未被修改的话,则可以用这个状态码说明资源未被修改。带有这个状态码的响应不应该包含实体的主体部分
- 305 用来说明必须通过一个代理来访问资源,代理的位置由Location首部给出。
- 307 与301类似。但是客户端应该使用Location首部给出的URL来临时定位资源。将来的请求仍应使用老的URL
400-499 客户端错误状态码
- 400 用于告知客户端它发送了一个错误的请求,请求报文中存在语法错误
- 401 表示发送的请求需要通过HTTP认证(BASIC认证、DIGIST认证)的认证信息
- 403 对请求资源的访问被服务器拒绝了。如未获得文件系统的访问授权,访问权限出现某些问题等
- 404 说明服务器无法找到请求的URL
- 405 请求中带有所请求的URL不支持的方法时,使用此状态码。应该在响应中包含Allow首部,已告知客户端应对所请求的资源而已使用哪些方法
- 406 客户端可以指定参数来说明它们愿意接收什么类型的实体
- 407 与401类似,但要求对资源进行认证的代理服务器
- 408 如果客户端完成请求所花时间太长,服务器可以回送此状态码,并关闭连接
- 409 说明请求可能在资源上引发的一些冲突。服务器担心请求会引发冲突时,可以发送此状态码。响应中包含描述冲突的主体
- 410 与404类似,只是服务器曾经拥有过此资源。主要用于web站点维护,这样服务器的管理者就可以在资源被移除的情况下通知客户端了
- 411 服务器要求在请求报文中包含Content-Length首部时使用
- 412 客户端发起了条件请求,且其中一个条件失败了的时候使用。客户端包含了Except首部时发起的请求就是条件请求
- 413 客户端发送的实体主体部分比服务器能够希望处理的要大时,使用此状态码
- 414 客户端所发请求中的请求URL比服务器能够或者希望处理的要大时,使用此状态码
- 415 服务器无法理解或无法支持客户端所发实体的内容类型时,使用此状态码
- 416 请求报文所请求的是指定资源的某个范围,而此范围无效或无法满足时,使用此状态码
- 417 请求的Expect请求首部包含了一个期望,但服务器无法满足此期望时,使用此状态码
500-599 服务器错误状态码
- 500 服务器在执行请求时发生了错误。也有可能是web应用存在但bug或某些临时的故障
- 501 客户端发起的请求超出服务器的能力范围(比如,使用了服务器不支持的请求方法)
- 502 作为代理或网关使用的服务器从请求响应链的下一链路上收到了一条伪响应(比如,它无法连接到其父网关)
- 503 表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
- 504 与状态码408类似,只是这里的响应来自一个网关或代理,它们在等待另一服务器对其请求进行响应时超时了
- 505 服务器收到的请求使用了它无法或不愿支持的协议版本时,使用此状态码