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,可快速连接恢复,可以在丢包时迅速恢复。