HTTP 状态码
当你在浏览器中访问一个网页或者执行一个网络请求时,你可能会在响应中看到一个三位数字的代码,这就是HTTP状态码。HTTP状态码是Web通信中的重要组成部分,它向客户端提供了关于请求处理结果的信息。
HTTP 中的状态码
1xx状态码主要用于传递一些信息性的消息,通常不会在普通的Web浏览中遇到。
- 100 Continue: 当客户端发送一个大的请求体时,服务器可能会在接收到一部分请求后发送这个状态码,以指示客户端应继续发送其余部分的请求。
- 101 Switching Protocols: 这个状态码表示服务器已经理解了客户端的请求,但需要切换协议来继续处理。这通常在WebSocket等协议切换时使用。
2xx - 成功状态码
2xx状态码表示请求已成功被服务器接受、理解和处理。
- 200 OK: 这是最常见的状态码,表示请求成功完成,服务器返回了请求的内容。
- 201 Created: 表示服务器已成功处理请求,并创建了一个新资源。通常在POST请求中使用,服务器会返回新资源的URL。
- 204 No Content: 请求成功,但响应中没有返回实体主体。通常在DELETE请求或更新资源时使用。
3xx - 重定向状态码
3xx状态码表示客户端需要执行额外的操作以完成请求。
- 301 Moved Permanently: 服务器告诉客户端请求的资源已永久移动到一个新的URL。客户端应该更新其书签。
- 302 Found (或者使用303 See Other): 类似于301,但表示资源是临时移动的。客户端应该继续使用原始URL。
- 304 Not Modified: 服务器告诉客户端其缓存的副本是最新的,因此可以使用缓存副本而不需要重新下载资源。
4xx - 客户端错误状态码
4xx状态码表示客户端发送的请求有问题,导致服务器无法理解或处理请求。
- 400 Bad Request: 客户端发送的请求有语法错误或无法被服务器理解。
- 401 Unauthorized: 请求需要身份验证。客户端应提供有效的身份验证凭据。
- 403 Forbidden: 服务器理解请求,但拒绝执行它,通常因为权限问题。
- 404 Not Found: 请求的资源不存在。这是最常见的状态码之一。
5xx - 服务器错误状态码
5xx状态码表示服务器在尝试处理请求时发生了错误。
- 500 Internal Server Error: 服务器遇到了意外的错误,无法完成请求。
14.502 Bad Gateway: 服务器作为网关或代理,接收到无效响应。通常在反向代理服务器出问题时出现。 - 503 Service Unavailable: 服务器暂时无法处理请求,通常因为过载。客户端可以稍后重试。
- 504 Gateway Timeout: 服务器作为网关或代理,等待上游服务器的响应超时。
1xx - 信息性状态码:
- 100 Continue: 服务器已收到请求的一部分,客户端应该继续发送其余部分。
- 101 Switching Protocols: 客户端请求切换协议,服务器已确认切换。
2xx - 成功状态码:
- 200 OK: 请求成功,服务器已发送响应。
- 201 Created: 请求已成功并创建了新资源。
- 204 No Content: 请求成功,但响应中没有返回实体主体。
3xx - 重定向状态码:
- 301 Moved Permanently: 资源已永久移动,客户端应更新其链接。
- 302 Found (或者使用303 See Other): 资源临时移动,客户端应继续使用原始链接。
- 304 Not Modified: 客户端的缓存有效,资源未被修改。
4xx - 客户端错误状态码:
- 400 Bad Request: 服务器无法理解请求。
- 401 Unauthorized: 请求需要身份验证。
- 403 Forbidden: 服务器拒绝请求,通常因为权限问题。
- 404 Not Found: 请求的资源不存在。
5xx - 服务器错误状态码:
- 500 Internal Server Error: 服务器遇到错误,无法完成请求。
- 502 Bad Gateway: 服务器作为网关或代理收到无效响应。
- 503 Service Unavailable: 服务器暂时无法处理请求,通常是因为过载。
- 504 Gateway Timeout: 服务器作为网关或代理,等待上游服务器超时。