常见的 HTTP 状态码分类及说明
- 世界杯冠军奖金
- 2026-03-01 21:55:38
- 5114
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: 服务器作为网关或代理时请求超时。
代码案例
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;
}
}