常见的 HTTP 状态码分类及说明

HTTP 响应状态码(HTTP status code),表示服务器对请求的处理结果。常见的 HTTP 状态码有以下几类:

1xx: 信息响应 (Informational Responses)

  • 100 Continue: 请求已收到,客户端应继续发送请求的其余部分。
  • 101 Switching Protocols: 服务器同意客户端切换到新的协议。

2xx: 成功 (Successful Responses)

  • 200 OK: 请求成功,服务器返回所请求的数据。
  • 201 Created: 请求成功并创建了新的资源。
  • 202 Accepted: 请求已接受但尚未处理完成。
  • 204 No Content: 请求成功但没有返回内容。

3xx: 重定向 (Redirection Messages)

  • 301 Moved Permanently: 请求的资源已被永久移动到新位置。
  • 302 Found: 请求的资源临时移动到新位置。
  • 304 Not Modified: 请求的资源未被修改,可以使用缓存的版本。

4xx: 客户端错误 (Client Error Responses)

  • 400 Bad Request: 请求有误,服务器无法理解。
  • 401 Unauthorized: 请求需要身份验证。
  • 403 Forbidden: 服务器拒绝请求。
  • 404 Not Found: 请求的资源未找到。
  • 405 Method Not Allowed: 请求的方法不允许。
  • 408 Request Timeout: 请求超时。

5xx: 服务器错误 (Server Error Responses)

  • 500 Internal Server Error: 服务器内部错误。
  • 501 Not Implemented: 服务器不支持请求的方法。
  • 502 Bad Gateway: 服务器作为网关或代理时收到无效响应。
  • 503 Service Unavailable: 服务器当前无法处理请求。
  • 504 Gateway Timeout: 服务器作为网关或代理时请求超时。

代码案例

java 复制代码
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;

public class HttpPostRequest {
    public String HttpPost(String url, JSONObject json) {
        GrgLoggerRepository.getMonitorCOMM().LogInfo("HTTP请求处理 start");
        String responseString = "9999";
        HttpClient httpClient = new HttpClient();
        PostMethod method = new PostMethod(url);

        try {
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(20000);
            httpClient.getHttpConnectionManager().getParams().setSoTimeout(20000);

            method.setRequestHeader("Content-type", "application/json; charset=utf-8");
            method.setRequestBody(json.toJSONString());

            int statusCode = httpClient.executeMethod(method);
            GrgLoggerRepository.getMonitorCOMM().LogInfo("HTTP请求返回状态码: " + statusCode);

            switch (statusCode) {
                case 200:
                    responseString = method.getResponseBodyAsString();
                    break;
                case 201:
                    responseString = "资源已创建";
                    break;
                case 204:
                    responseString = "请求成功但无内容";
                    break;
                case 400:
                    responseString = "请求错误";
                    break;
                case 401:
                    responseString = "未授权";
                    break;
                case 403:
                    responseString = "禁止访问";
                    break;
                case 404:
                    responseString = "未找到资源";
                    break;
                case 500:
                    responseString = "服务器内部错误";
                    break;
                case 503:
                    responseString = "服务不可用";
                    break;
                default:
                    responseString = "未知状态码: " + statusCode;
            }
        } catch (Exception e) {
            GrgLoggerRepository.getMonitorCOMM().LogError("HTTP请求处理异常:", e);
        } finally {
            method.releaseConnection();
        }
        GrgLoggerRepository.getMonitorCOMM().LogInfo("HTTP请求处理 end");
        return responseString;
    }
}
相关推荐
青瓦梦滋3 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
zhang133830890754 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻4 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
IpdataCloud6 小时前
批量查IP的API接口怎么选?免费API配额瓶颈与离线库本地批量方案实测
网络·网络协议·tcp/ip
ITyunwei09877 小时前
售后夜间值守怎么落地:从告警到交接的工单系统配置笔记
网络
Smoothcloud润云8 小时前
GPU远程纳管安全吗?最小权限、网络边界与日志审计实战
服务器·网络·人工智能·安全·gpu算力·gpu
ai大模型-探索者8 小时前
Function Call与MCP(区别、联系与实战)
java·服务器·网络
GIoT80108 小时前
整段 C 段 IP 不能只看 Ping:一套实用的批量检测与分析思路
http
木子欢儿8 小时前
Debian 13 + vsftpd 搭建FTP服务
linux·服务器·前端·网络·debian
达~熊迪9 小时前
IP 分配前核查:把在线状态和使用登记一起看
服务器·网络·tcp/ip