http常见响应码

http协议常见响应码总结:

1xx(临时响应)

100: 请求者应当继续提出请求。

101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。

2xx(成功)

200:正确的请求返回正确的结果,如果不想细分正确的请求结果都可以直接返回200。

201:表示资源被正确的创建。比如说,我们 POST 用户名、密码正确创建了一个用户就可以返回 201。
202:请求是正确的,但是结果正在处理中,这时候客户端可以通过轮询等机制继续请求。

203:请求的代理服务器修改了源服务器返回的 200 中的内容,我们通过代理服务器向服务器 A 请求用户信息,服务器 A 正常响应,但代理服务器命中了缓存并返回了自己的缓存内容,这时候它返回 203 告诉我们这部分信息不一定是最新的,我们可以自行判断并处理。

3xx(已重定向)

300:请求成功,但结果有多种选择。
301:请求成功,但是资源被永久转移。比如说,我们下载的东西不在这个地址需要去到新的地址。
303:使用 GET 来访问新的地址来获取资源。
304:请求的资源并没有被修改过。

308:使用原有的地址请求方式来通过新地址获取资源。

4xx(请求错误)

400:请求出现错误,比如请求头不对等。
401:没有提供认证信息。请求的时候没有带上 Token 等。
402:为以后需要所保留的状态码。
403:请求的资源不允许访问。就是说没有权限。
404:请求的内容不存在。
406:请求的资源并不符合要求。
408:客户端请求超时。
413:请求体过大。
415:类型不正确。

416:请求的区间无效。

5xx(服务器错误)


500:服务器错误。
501:请求还没有被实现。
502:网关错误。
503:服务暂时不可用。服务器正好在更新代码重启。
505:请求的 HTTP 版本不支持。
### HTTP响应状态码列表及解释 HTTP协议定义了一系列的状态码,用于表示服务器对客户端请求的处理结果。以下是常见HTTP响应状态码分类及其含义: #### 1. **信息类(1xx)** 这些状态码表示临时的响应,包含继续处理请求的信息。 - **100 Continue**:服务器已收到请求头,并要求客户端继续发送请求主体[^1]。 - **101 Switching Protocols**:服务器根据客户端的请求切换协议[^1]。 #### 2. **成功类(2xx)** 这些状态码表示请求已被成功接收、理解和处理。 - **200 OK**:请求成功,服务器返回了请求的资源[^1]。 - **201 Created**:请求成功并且服务器创建了一个新的资源[^1]。 - **204 No Content**:请求成功处理,但返回的响应报文中不含实体的主体部分[^1]。 - **206 Partial Content**:服务器成功处理了部分GET请求[^1]。 #### 3. **重定向类(3xx)** 这些状态码表示客户端需要采取进一步的操作来完成请求。 - **301 Moved Permanently**:请求的资源已永久移动到新URI。 - **302 Found**:请求的资源暂时移动到新URI。 - **304 Not Modified**:资源未被修改,客户端可以使用缓存版本。 #### 4. **客户端错误类(4xx)** 这些状态码表示客户端可能发生了错误,妨碍了服务器的处理。 - **400 Bad Request**:服务器无法理解请求的格式[^1]。 - **401 Unauthorized**:请求要求用户的身份认证。 - **403 Forbidden**:服务器拒绝执行请求。 - **404 Not Found**:请求的资源在服务器上未找到。 - **413 Payload Too Large**:由于请求的实体过大,服务器无法处理,因此拒绝请求[^2]。 #### 5. **服务器错误类(5xx)** 这些状态码表示服务器在处理请求时发生了错误。 - **500 Internal Server Error**:服务器遇到了意外情况,阻止其完成请求。 - **502 Bad Gateway**:服务器作为网关或代理,从上游服务器接收到无效的响应。 - **503 Service Unavailable**:服务器当前无法处理请求,通常是因为过载或维护[^1]。 - **504 Gateway Timeout**:服务器作为网关或代理,未能及时从上游服务器接收到响应[^1]。 ### 示例代码 以下是一个简单的HTTP请求与响应示例,展示了如何返回带有状态码的JSON数据: ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/example', methods=['GET']) def example(): return jsonify({ "code": 200, "message": "请求成功", "data": { "username": "user123", "email": "user123@example.com" } }), 200 if __name__ == '__main__': app.run() ``` ### 错误响应结构建议 在服务端向前端返回错误响应时,可以参考以下格式,以便前端能够清晰地解析错误信息[^3]: ```json { "code": 400, "message": "请求参数错误,部分数据不可用", "data": { "user": { "username": "user123", "email": "user123@example.com" }, "defaults": { "role": "guest" } }, "errors": [ { "field": "phone", "message": "手机号格式不正确" }, { "field": "password", "message": "密码长度必须大于6个字符" } ] } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值