http状态码
http状态码主要分为五类:
1××:提示信息,服务器接收到请求,还需要继续的操作;
2××:成功,请求已经收到并被正确处理;
3××:重定向,资源位置发生变动,需要客户端重新发送请求;
4××:客户端错误,请求报文有误,服务器无法处理;
5××:服务器错误,服务器在处理请求时内部发生了错误。
1××
1××类状态码属于提示信息,是协议处理的中间状态,实际能够用到的时候很少。
2××
2××类状态码表示服务器收到并成功处理了客户端的请求,这也是客户端最愿意看到的状态码。
-
“200 OK” 200 表示从客户端发来的请求在服务器端被正常处理了。
-
“204 No Content” 204表示请求处理成功,但没有资源返回。
-
“206 Partial Content” 是 HTTP 分块下载或断点续传的基础,在客户端发送“范围请求”、要求获取资源的部分数据时出现,表示服务器成功处理了请求,但 body 里的数据不是资源的全部,而是其中的一部分。
状态码 206 通常还会伴随着头字段“Content-Range”,表示响应报文里 body 数据的具体范围,供客户端确认,例如“Content-Range: bytes 0-99/2000”,意思是此次获取的是总计 2000 个字节的前 100 个字节。
3××
3××类状态码表示客户端请求的资源发生了变动,客户端必须用新的 URI 重新发送请求获取资源,也就是通常所说的“重定向”。
-
“301 Moved Permanently” 俗称“永久重定向”,含义是此次请求的资源已经不存在了,需要改用改用新的 URI 再次访问,会在响应头里使用字段Location指明后续要跳转的 URI。
-
“302 Found”,俗称“临时重定向”。
-
“304 Not Modified” 用于协商缓存。表示服务器端资源未改变,可直接使用客户端未过期的缓存
4××
4××类状态码表示客户端发送的请求报文有误,服务器无法处理。
-
“400 Bad Request”,表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。
-
401 表示未授权(Unauthorized),当前请求需要用户验证
-
“403 Forbidden” 表示服务器禁止访问资源。原因可能多种多样,例如信息敏感、法律禁止等。
-
“404 Not Found” 表示服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
-
“405 Method Not Allowed” 不允许使用某些方法操作资源,例如不允许 POST 只能 GET;
5××
5××类状态码表示客户端请求报文正确,但服务器在处理时内部发生了错误,无法返回应有的响应数据,是服务器端的“错误码”。
-
“500 Internal Server Error” 表示服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。
-
“501 Not Implemented” 表示客户端请求的功能还不支持。
-
“502 Bad Gateway” 通常是服务器作为网关或者代理时返回的错误码,表示服务器自身工作正常,访问后端服务器时发生了错误。
-
“503 Service Unavailable” 表示服务器当前很忙,暂时无法响应请求。