HTTP常见状态码和HTTP的发展

时间:2025-02-22 17:29:42

HTTP常见状态码

HTTP状态码是服务器返回响应结果的一个标识,告诉客户端请求的处理情况,一般分成以下几类:(其中红色的是常见的几个状态码)

1)2xx成功类:请求成功

  • 200 OK:请求成功,服务器正常响应。
  • 201 Created:资源成功被创建。
  • 204 No Content:请求成功,但是没有任何数据返回。

2)3xx 重定向类:需要客户端采取进一步的操作才能完成请求

  • 301 Moved Permanently:资源永久搬家了。
  • 302 Found:资源临时搬家,可能还会回来。
  • 304:Not Modified:资源没有更新

3)4xx客户端错误类:客户端发送的请求有错误,服务器无法处理

  • 400 Bad Request:请求有误,服务器不知道怎么处理
  • 401 Unauthorized:未经授权,必须登录以后才能访问
  • 403 Forbidden:禁止访问,即使登录了服务器也还是不让看某些内容,就像一个禁区。
  • 404 Not Found:资源未找到。
  • 405 Method Not Allowed: 方法不允许,服务器不支持你所发生的请求方式(不如Get或Post)。

4)5xx服务端错误类:服务器在处理请求时发生了错误

  • 500 Internal Server Error:服务器内部错误,无法完成请求。
  • 502 Bad Gateway:网关错误,作为网关或代理的服务器从上游服务器接收到了无效的响应。
  • 503 Service Unavailable:服务器目前无法使用(由于超载或停机维护),通常只是暂时状态。

HTTP协议的发展

(1)HTTP 1.0

短连接,每次请求都会创建一个新的TCP连接,请求完成后会立即关闭,导致大量的连接创建和关闭,性能较差。

(2)HTTP 1.1

支持持久连接,多个请求可以复用同一个TCP连接,但未解决多路复用问题,即请求和响应仍是串行处理,一个请求完成后才能处理下一个请求。

(3)HTTP 2.0

使用二进制传输,并支持多路复用,即同一个TCP连接可以承载多个请求和响应,同时对HTTP头部进行了压缩,减少了冗余头部带来的开销,尤其是重复的头部字段,可支持服务器推送,即服务器可以主动的给客户端推送资源,仍然采用TCP协议

(4)HTTP 3.0

基于QUIC协议(由UDP构建的新的传输层协议),可提供低延迟和高性能,采用内部加密,不需要单独配置HTTPS,可快速连接恢复,可以在丢包时迅速恢复。