常见的 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;
    }
}
相关推荐
领世达检测V13352909249几秒前
智能门锁申请 EN 18031 欧盟网络安全认证指南
网络·安全
00后程序员张1 小时前
实战解析:如何用克魔(KeyMob)等工具构建iOS应用稳定性与数据可观测体系
websocket·网络协议·tcp/ip·http·网络安全·https·udp
bbsh20991 小时前
SiteAzure:SetCookie 未设置Secure
前端·网络·安全·siteazure
qq_290606272 小时前
监听本地tcp,udp端口,通过socks5转发至远端
网络协议·tcp/ip·udp
wanhengidc2 小时前
造成服务器宕机的原因都有哪些?
运维·服务器·网络
西北大程序猿3 小时前
服务器代码知识点补充
服务器·开发语言·网络·c++·网络协议
2501_915921434 小时前
iOS性能调试完整流程实录:工具组合下的问题定位与修复实践(含keymob)
websocket·网络协议·tcp/ip·http·网络安全·https·udp
TE-茶叶蛋4 小时前
WebSocket 前端断连原因与检测方法
前端·websocket·网络协议
yangzx的网工日常5 小时前
网络的那些事——初级——OSPF(2)
网络
暮色_年华5 小时前
《TCP/IP协议卷1》第9章 IP选路
网络