您现在的位置是:首页 >学无止境 >【网络进阶】HTTP服务器(二)网站首页学无止境
【网络进阶】HTTP服务器(二)
简介【网络进阶】HTTP服务器(二)
1. HTTP状态码
HTTP状态码(HTTP Status Code)是服务器用于描述浏览器请求结果的三位数字。它们是HTTP/1.1协议中定义的一部分,通常用于说明浏览器的请求是否成功,以及在请求失败时,失败的原因。HTTP状态码对于开发者和维护者来说非常重要,因为它们可以帮助诊断问题和优化用户体验。
HTTP状态码可以分为五类:
-
1xx(信息性状态码):这类状态码表示请求已被接收,服务器需要客户端继续执行操作。这类状态码很少用到,仅用于提供额外的信息。
-
2xx(成功状态码):这类状态码表示请求已成功处理。常见的成功状态码包括:
- 200 OK:请求成功,服务器已成功处理请求。
- 201 Created:请求成功,并且服务器已创建了新的资源。
- 204 No Content:请求成功,但没有需要返回的内容。
-
3xx(重定向状态码):这类状态码表示需要进一步操作才能完成请求。浏览器通常会自动处理这些操作。常见的重定向状态码包括:
- 301 Moved Permanently:资源永久性移动,请求的资源已被分配了新的URI。
- 302 Found:资源临时性移动,请求的资源临时分配了新的URI。
- 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:服务器暂时无法处理请求,通常是由于过载或维护。
了解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密码。 |
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。