HTTP的常见状态码

本文详细介绍了HTTP状态码的五大类别及其具体含义,包括1xx消息状态码、2xx成功状态码、3xx重定向状态码、4xx客户端错误状态码和5xx服务器错误状态码。每个类别下列举了常见的状态码,如200 OK、404 NotFound和500 InternalServerError等,帮助读者理解HTTP请求处理过程中的各种情况。

HTTP状态码

HTTP状态码是用以表示网页服务器超文本传输协议(http)响应状态的3位数字代码。

在这里插入图片描述

大体分类

  • 1xx:消息状态码,表示接受的请求正在处理
  • 2xx:成功状态码,表示请求正常处理完毕
  • 3xx:重定向状态码,表示请求需要进行附加操作以完成请求
  • 4xx:客户端错误状态码,表示客户端请求出错,服务器无法处理请求
  • 5xx:服务器错误状态码,表示服务器处理请求出错

详细解释

1xx-消息状态码

  • 100-Continue:客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。
  • 101-Switching Protocols:服务器已经理解了客户端的请求,通知客户端需要采用不同的协议来完成这个请求。

2xx-成功状态码

  • 200-Ok:一切正常
  • 201-Created:请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。
  • 202-Accepted:服务器已经接受了请求,但是也可能不会处理该请求。该状态码常用于异步的操作场景下。

3xx-重定向状态码

  • 301-Moved Permanently永久性重定向,表示请求的资源已经被永久移动到新的位置,以后都应该使用更改后的URL。
  • 302-Found临时性重定向,表示请求的资源已经被移动到了新的位置,本次请求应该使用更改后的URL。
  • 303 See Other:表示请求的资源已经被移动到了新的位置,本次请求应该使用GET方法定向请求资源。
  • 305-Use Proxy:表示请求的资源必须通过指定的代理才可以访问。

4xx-客户端错误状态码

  • 400-Bad Request:表示请求报文中存在语法错误或者请求参数中存在错误,无法被服务器理解。在没有进行重新修改的情况下,客户端无法再次提交该请求。
  • 401-Unauthorized:表示未经过许可,需要进行用户验证。
  • 403-Forbidden:服务器已经理解请求,但是拒绝执行它(服务器拒绝该次访问,因为访问权限出现问题)。
  • 404-Not Found:请求的资源在服务器中无法找到。

5xx-服务器错误状态码

  • 500 Internal Server Error:服务器遇到了从未遇到过的错误,通常在服务器的源代码出问题时返回该状态码。
  • 501 Not Implemented:服务器无法识别该请求中的某个功能。
  • 502 Bad Gateway:代理服务器/网关执行请求时,从上游服务器接收到无效的响应。
  • 503 Service Unavailable:由于临时的服务器正在维护或者过载,暂时无法处理请求,并且在一段时间后会恢复。
  • 504 Gateway Timeout:代理服务器/网关执行请求时,从上游服务器接收到响应的时间超出限制的时间。
### HTTP常见状态码及解释 #### 信息性状态码 (1xx) 这类状态码表示接收到请求并继续处理。 - **100 Continue**: 表示服务器已经收到了请求头部,客户端可以继续发送请求主体[^4]。 - **101 Switching Protocols**: 表明服务器接受客户端请求,并准备切换协议(例如从HTTP切换到WebSocket)[^4]。 #### 成功状态码 (2xx) 此类状态码表示请求已被成功接收、理解和处理。 - **200 OK**: 请求成功,服务器返回了请求的资源[^4]。 - **201 Created**: 请求成功,服务器创建了一个新的资源,通常用于`POST`请求。 - **204 No Content**: 请求成功,但没有返回任何内容,常用于`DELETE`请求。 - **206 Partial Content**: 当客户端进行了范围请求时,服务器会成功执行这部分的`GET`请求[^2]。 #### 重定向状态码 (3xx) 这些状态码告知客户端需采取进一步操作来完成请求。 - **301 Moved Permanently**: 资源已永久移动至新位置,新的URL将在响应的`Location`字段中提供。 - **302 Found**: 资源临时从不同的URI响应请求。 - **304 Not Modified**: 如果资源未被修改,则允许使用缓存版本而不重新下载[^4]。 #### 客户端错误状态码 (4xx) 此组状态码意味着客户端可能犯了某种错误。 - **400 Bad Request**: 请求无效或格式错误,服务器无法处理该请求[^4]。 - **401 Unauthorized**: 需要身份验证才能访问某些受保护的资源[^4]。 - **403 Forbidden**: 即使提供了正确的凭证,也无权访问特定资源[^4]。 - **404 Not Found**: 所请求的资源在服务器上不存在,可能是地址拼写错误或是资源曾存在但现在已被移除[^3][^4]。 - **429 Too Many Requests**: 客户端在指定时间内发出过多请求,触发速率限制机制。 #### 服务器错误状态码 (5xx) 这一系列的状态码表明服务器遇到了意外情况,阻止其履行请求。 - **500 Internal Server Error**: 通用错误消息,指出服务器遇到未知问题而无法完成请求。 - **501 Not Implemented**: 服务器不支持实现所需功能以满足请求[^4]。 - **502 Bad Gateway**: 作为网关或代理工作的服务器收到来自上游服务器的有效回复失败[^4]。 - **503 Service Unavailable**: 服务不可用,这通常是由于服务器过载或者正在进行维护所致[^4]。 - **504 Gateway Timeout**: 作为网关或代理工作的服务器未能及时获得来自上游服务器的回应[^4]。 ```python # 示例代码展示如何通过Python库requests获取HTTP状态码 import requests response = requests.get('https://example.com') print(f'Status Code: {response.status_code}') if response.status_code == 200: print("Request was successful.") elif response.status_code == 404: print("The requested resource could not be found.") else: print("An error occurred with the request.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值