常见的 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;
    }
}
相关推荐
wyjcxyyy2 小时前
DIDCTF-应急响应(续)
网络
0wioiw03 小时前
Flutter基础(前端教程⑦-Http和卡片)
前端·flutter·http
cui_win3 小时前
【网络】Linux 内核优化实战 - net.ipv4.tcp_ecn
linux·网络·tcp/ip
uuu_柚子3 小时前
华为动态路由配置
网络·华为·智能路由器
uuu_柚子3 小时前
华为静态路由配置
网络·华为·智能路由器
AliciaIr3 小时前
揭秘HTTP的“无情”与前端存储的“深情”:从Cookie到IndexedDB,你真的懂了吗?
http
杰尼橙子3 小时前
DPDK graph图节点处理框架:模块化数据流计算的设计与实现
网络协议·性能优化
IT摆渡者3 小时前
网络安全护网实战:攻击手段解析与防御策略
运维·网络·经验分享
不羁。。4 小时前
【网络协议安全】任务13:ACL访问控制列表
网络·网络协议·安全
IT成长日记5 小时前
【Docker基础】Docker网络模式:Host模式深度解析
网络·docker·容器·host·网络模式