AI智能
改变未来

状态码 「HTTP

RFC标准把状态码分成了5类,用数字的第一位表示分类。

  • 1××:提示信息,表示目前是协议处理的中间状态,还需要后续的操作;
  • 2××:成功,报文已经收到并被正确处理;
  • 3××:重定向,资源位置发生变动,需要客户端重新发送请求;
  • 4××:客户端错误,请求报文有误,服务器无法处理;
  • 5××:服务器错误,服务器在处理请求时内部发生了错误。

1xx

101 Switching Protocols它的意思是客户端使用 Upgrade 头字段,要求在 HTTP 协议的基础上改成其他的协议继续通信,比如

WebSocket

2xx

200 OK是最常见的成功状态码,表示一切正常。

204 No Content是另一个很常见的成功状态码,它的含义与“200 OK”基本相同,但响应头后没有 body 数据。

206 Partial Content是 HTTP 分块下载或断点续传的基础,在客户端发送“范围请求”、要求获取资源的部分数据时出现,它与 200 一样,也是服务器成功处理了请求,但 body 里的数据不是资源的全部,而是其中的一部分。

3xx

301 Moved Permanently俗称“永久重定向”,含义是此次请求的资源已经不存在了,需要改用改用新的 URI 再次访问。

302 Found曾经的描述短语是“Moved Temporarily”,俗称“临时重定向”,意思是请求的资源还在,但需要暂时用另一个 URI 来访问。

304 Not Modified它用于 If-Modified-Since 等条件请求,表示资源未修改,用于缓存控制。它不具有通常的跳转含义,但可以理解成“重定向已到缓存的文件”(即“缓存重定向”)。

4xx

400 Bad Request是一个通用的错误码,表示请求报文有错误,但具体是数据格式错误、缺少请求头还是 URI 超长它没有明确说,只是一个笼统的错误。

403 Forbidden实际上不是客户端的请求出错,而是表示服务器禁止访问资源。

404 Not Found它的原意是资源在本服务器上未找到,所以无法提供给客户端。

405 Method Not Allowed不允许使用某些方法操作资源,例如不允许 POST 只能 GET。

406 Not Acceptable资源无法满足客户端请求的条件,例如请求中文但只有英文。

408 Request Timeout请求超时,服务器等待了过长的时间。

409 Conflict多个请求发生了冲突,可以理解为多线程并发时的竞态。

413 Request Entity Too Large请求报文里的 body 太大。

414 Request-URI Too Long请求行里的 URI 太大。

429 Too Many Requests客户端发送了太多的请求,通常是由于服务器的限连策略。

431 Request Header Fields Too Large请求头某个字段或总体太大。

5xx

500 Internal Server Error与 400 类似,也是一个通用的错误码,服务器究竟发生了什么错误我们是不知道的。

501 Not Implemented表示客户端请求的功能还不支持。

502 Bad Gateway通常是服务器作为网关或者代理时返回的错误码,表示服务器自身工作正常,访问后端服务器时发生了错误。

503 Service Unavailable表示服务器当前很忙,暂时无法响应服务。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 状态码 「HTTP