常见的 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;
    }
}
相关推荐
ZachOn1y15 分钟前
计算机网络:计算机网络概述:网络、互联网与因特网的区别
网络·计算机网络·知识点汇总·考研必备
GOTXX31 分钟前
应用层协议HTTP
linux·网络·网络协议·计算机网络·http·fiddler
Jason-河山2 小时前
利用 Python 爬虫采集 1688商品详情
java·http
DieSnowK2 小时前
[C++][第三方库][httplib]详细讲解
服务器·开发语言·c++·http·第三方库·新手向·httplib
小堃学编程8 小时前
计算机网络(十) —— IP协议详解,理解运营商和全球网络
网络·tcp/ip·计算机网络
IPFoxy66611 小时前
探索路由器静态IP的获取方式
网络·智能路由器
menge233311 小时前
VLAN:虚拟局域网
网络·智能路由器
GZ_TOGOGO11 小时前
【2024最新】华为HCIE认证考试流程
大数据·人工智能·网络协议·网络安全·华为
ZachOn1y11 小时前
计算机网络:计算机网络概述 —— 初识计算机网络
网络·计算机网络·知识点汇总·考研必备
三金1213812 小时前
SpringIoC容器的初识
网络·网络协议·rpc