【网络进阶】HTTP服务器(二)

1. HTTP状态码

HTTP状态码(HTTP Status Code)是服务器用于描述浏览器请求结果的三位数字。它们是HTTP/1.1协议中定义的一部分,通常用于说明浏览器的请求是否成功,以及在请求失败时,失败的原因。HTTP状态码对于开发者和维护者来说非常重要,因为它们可以帮助诊断问题和优化用户体验。

HTTP状态码可以分为五类:

  1. 1xx(信息性状态码):这类状态码表示请求已被接收,服务器需要客户端继续执行操作。这类状态码很少用到,仅用于提供额外的信息。

  2. 2xx(成功状态码):这类状态码表示请求已成功处理。常见的成功状态码包括:

    • 200 OK:请求成功,服务器已成功处理请求。
    • 201 Created:请求成功,并且服务器已创建了新的资源。
    • 204 No Content:请求成功,但没有需要返回的内容。
  3. 3xx(重定向状态码):这类状态码表示需要进一步操作才能完成请求。浏览器通常会自动处理这些操作。常见的重定向状态码包括:

    • 301 Moved Permanently:资源永久性移动,请求的资源已被分配了新的URI。
    • 302 Found:资源临时性移动,请求的资源临时分配了新的URI。
    • 304 Not Modified:资源未发生变化,无需再次发送给客户端。
  4. 4xx(客户端错误状态码):这类状态码表示请求包含错误语法或者无法完成。常见的客户端错误状态码包括:

    • 400 Bad Request:请求格式错误,服务器无法理解请求。
    • 401 Unauthorized:请求需要用户验证。
    • 403 Forbidden:服务器理解请求,但拒绝执行。
    • 404 Not Found:请求的资源在服务器上不存在。
  5. 5xx(服务器错误状态码):这类状态码表示服务器处理请求时出错。常见的服务器错误状态码包括:

    • 500 Internal Server Error:服务器遇到错误,无法完成请求。
    • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。
    • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。

了解HTTP状态码有助于开发者和维护者快速定位和解决问题,提高网站的稳定性和用户体验。

2. HTTP状态码分类

状态码 状态码英文 中文描述及用途
100 Continue 继续:客户端应继续请求。在接收到请求正文之前,服务器可以发送100 Continue响应,以确认服务器已准备好接收请求正文。这对于大文件上传等场景非常有用。
101 Switching Protocols 切换协议:服务器已理解并同意客户端的协议切换请求(如升级到WebSocket)。
102 Processing 处理中:服务器已接收请求,但尚未完成处理。主要用于防止客户端超时,避免重复发送请求。
200 OK 请求成功:服务器成功处理了请求,通常返回请求的资源或数据。
201 Created 已创建:请求成功且服务器已创建新资源,通常用于POST请求创建新资源后的响应。
202 Accepted 请求已接受:服务器已接受请求但尚未处理,无法保证最终处理结果。主要用于异步处理请求。
203 Non-Authoritative Information 非权威信息:服务器成功处理请求,但返回的信息来源于另一资源。
204 No Content 无内容:请求成功处理,但无需返回数据。通常用于DELETE请求和无需返回数据的更新操作。
205 Reset Content 重置内容:请求成功处理,客户端应重置文档视图(如清空表单内容)。
206 Partial Content 部分内容:服务器成功处理了部分GET请求,通常用于分块下载或断点续传。
207 Multi-Status 多状态:响应包含多个独立操作的状态信息,主要用于WebDAV。
208 Already Reported 已报告:之前的请求已完成,避免重复处理。主要用于WebDAV。
226 IM Used IM使用的:服务器已应用实例操作,响应中的资源状态已被修改。
300 Multiple Choices 多个选择:请求的资源有多个可选版本,客户端可以根据响应中提供的信息选择一个进行访问。
301 Moved Permanently 永久重定向:请求的资源已被永久移动到新位置,所有的引用应更新为新URI。
302 Found 临时重定向:请求的资源临时移动到新位置,客户端应使用新URI访问资源。
303 See Other 查看其他:请求已处理,客户端应访问另一URI获取响应。常用于POST请求处理后的重定向。
304 Not Modified 未修改:资源自上次请求以来未发生变化,客户端可以继续使用缓存的版本。
305 Use Proxy 使用代理:请求的资源必须通过指定代理访问。
306 (Unused) (未使用):该状态码已废弃,不再使用。
307 Temporary Redirect 临时重定向:请求的资源临时移动到新位置,客户端应使用新URI访问资源,但后续请求应使用原始URI。
308 Permanent Redirect 永久重定向:类似301,但要求客户端在后续请求中使用新URI,并保持原始请求方法。
400 Bad Request 请求错误:服务器无法理解或处理请求,可能由于语法错误或参数问题。
401 Unauthorized 未授权:请求需要用户身份验证。
402 Payment Required 需要付款:请求的资源需要付款才能访问,尚未实际使用。
403 Forbidden 禁止访问:服务器理解请求,但拒绝执行,可能由于权限不足等原因。
404 Not Found 未找到:请求的资源在服务器上不存在。
405 Method Not Allowed 请求方法不允许:请求中使用的HTTP方法不适用于请求的资源。
406 Not Acceptable 无法接受:服务器无法生成与客户端要求的内容特性匹配的响应。
407 Proxy Authentication Required 需要代理身份验证:客户端必须先向代理服务器进行身份验证。
408 Request Timeout 请求超时:服务器等待客户端发送请求的时间过长。
409 Conflict 冲突:请求与服务器上的资源状态冲突,通常用于并发修改同一资源。
410 Gone 已删除:请求的资源已被永久删除,将不再可用。
411 Length Required 需要指定长度:请求头中必须包含有效的Content-Length字段。
412 Precondition Failed 前提条件失败:请求中的某个前提条件未满足,如使用If-Match头。
413 Payload Too Large 请求实体过大:请求的实体(如上传文件)过大,服务器无法处理。
414 URI Too Long 请求的URI过长:请求行中的URI长度超过服务器允许的限制。
415 Unsupported Media Type 不支持的媒体类型:请求中的实体内容类型不被服务器支持。
416 Range Not Satisfiable 请求范围不满足:客户端请求的字节范围不可用或无效。
417 Expectation Failed 期望失败:服务器无法满足请求头中的Expect字段所指定的期望。
418 I’m a teapot 我是一个茶壶:此状态码用于彩蛋,表示服务器拒绝煮咖啡,因为它是个茶壶。
421 Misdirected Request 错误导向的请求:服务器无法处理请求,可能由于连接复用导致的服务器配置问题。
422 Unprocessable Entity 无法处理的实体:请求格式正确,但语义错误导致无法处理。主要用于WebDAV。
423 Locked 已锁定:请求的资源被锁定,无法执行请求操作。主要用于WebDAV。
424 Failed Dependency 依赖失败:由于之前的请求失败,导致当前请求也失败。主要用于WebDAV。
425 Too Early 过早:服务器拒绝执行请求,因为它可能是重放攻击。
426 Upgrade Required 需要升级:客户端应切换到指定的协议,如升级到TLS/1.0。
428 Precondition Required 需要前提条件:请求必须满足服务器要求的前提条件,如使用If-Match头。
429 Too Many Requests 请求过多:客户端发送请求过于频繁,已触发限速。
431 Request Header Fields Too Large 请求头字段过大:请求头中某个字段的大小超过服务器允许的限制。
451 Unavailable For Legal Reasons 因法律原因不可用:请求的资源因法律原因无法提供,如受到审查或侵权。
500 Internal Server Error 服务器内部错误:服务器在处理请求时发生错误。
501 Not Implemented 未实现:服务器不支持请求所需的功能或方法。
502 Bad Gateway 错误网关:作为网关或代理服务器,从上游服务器接收到无效响应。
503 Service Unavailable 服务不可用:服务器暂时无法处理请求,如因维护或超载。
504 Gateway Timeout 网关超时:作为网关或代理服务器,未及时从上游服务器接收到响应。
505 HTTP Version Not Supported 不支持的HTTP版本:服务器不支持请求所使用的HTTP协议版本。
506 Variant Also Negotiates 变体也协商:服务器存在内部配置错误,导致透明内容协商失败。
507 Insufficient Storage 存储空间不足:服务器无法完成请求,因为存储空间不足。主要用于WebDAV。
508 Loop Detected 检测到循环:服务器在处理请求时检测到无限循环。主要用于WebDAV。
510 Not Extended 未扩展:请求需要进一步扩展以完成,如提供附加认证信息。
511 Network Authentication Required 需要网络身份验证:客户端需要进行网络层面的身份验证,如提供WiFi密码。

猜你喜欢

转载自blog.csdn.net/weixin_52665939/article/details/130497532