在 Web 开发领域,HTTP 错误代码对用户体验和网站声誉的影响至关重要。在本文中,我们将考虑完整的服务器错误代码列表,分析其含义,并学习如何有效地解释服务器响应代码,以解决问题并优化 Web 应用程序的性能。
什么是 HTTP 响应代码
HTTP 响应代码是 Web 服务器的语言,可将浏览器请求翻译成可理解的指令。它就像诗人回答虚拟问题,赋予它们意义和方向。响应代码并不总是 HTTP 错误代码。例如,“200 OK”表示一切正常,但 HTTP 错误“404 Not Found”表示页面在虚拟空间中丢失。每个代码都是服务器状态的独特表达,解码后我们就可以了解虚拟世界另一端正在发生的事情。
1xx 代码(信息)
HTTP 协议中的 1xx 状态代码是服务器与客户端对话中的第一个环节。它们不提供对请求的完整响应,而是提供有关当前状态的信息,从而使数据交换更加高效。让我们仔细看看它们:
100 Continue。HTTP响应代码,服务器向用户发出绿灯信号,允许用户安全地继续发送大型请求。
101 协议切换。服务器会告知客户端它正在更改游戏规则,例如,从 HTTP 切换到更安全的 HTTPS。在这种情况下,“Upgrade”标头用于协议更改。
102 正在处理中。此代码表示服务器已接受请求,但仍在忙于执行复杂的操作。
103 早期提示。服务器在发送主要响应之前,会向客户端发送几个指示性标头,警告客户端一些可能在不久的将来会用到的信息。
2xx 代码(成功)
2xx 组中的 HTTP 错误代码表示服务器请求成功。它们本质上是网络通信范围内的“绿灯”,确认一切按计划进行并已成功完成。
200 OK。当服务器成功处理 GET 请求并返回所需数据时,会返回此状态码。“Content-Type”标头报告响应中的内容类型。它只是告知客户端请求已成功。
201 创建成功。服务器在此处宣布已创建新资源。
202 Accepted。服务器告知用户请求已被接受,但需要一些时间才能响应。
203 非权威信息。此代码向客户提供可能并非官方的数据,但可用于比较。
204 无内容。服务器已处理请求,但不返回任何其他内容。
205 重置内容。此处指示客户端在发送后重置当前视图或数据。
206 部分内容。这种情况表示响应仅包含请求内容的一部分。“Content-Range”标头指示了部分内容的范围。
207 多状态。服务器已成功完成来自客户端的多操作请求,响应中包含有关每个操作状态的信息。
226 IM 已使用。此代码表示服务器使用了增量元数据 (IM) 方法,并且仅将修改后的资源部分传递给客户端。
3xx 代码(重定向)
HTTP 协议中的 3xx 代码就像是指引用户前往新资源位置的指针,告知客户端需要采取后续步骤才能获得请求的内容,否则将被重定向至其他资源。下面我们来深入了解一下 XNUMXxx 代码的具体含义:
300 多项选择题。客户端收到信号,表明资源有多个可能的位置,并需要做出选择。在当前情况下,“位置”标头可能指示资源的备选方案。
301 永久迁移。服务器向用户报告,资源已永久迁移到另一个位置。
302 Found。此 HTTP 状态码类似于临时重定向。服务器通知访问者,该资源暂时可通过另一个 URL 获取。“Location”标头指向临时重定向的新 URL。
303 参见其他。客户端被告知该资源位于不同的 URL,必须向该新地址发出 GET 请求。
304 未修改。此状态告知客户端资源自上次请求以来未发生任何更改,无需再次下载。发出请求时,会使用“If-Modified-Since”标头来检查资源是否已被修改。
305 使用代理。作为响应,服务器报告说它应该使用指定的代理来访问请求的资源。
306(保留) ——该代码已被保留,但实际上未使用。
307 临时重定向。此代码类似于 302 Found,但要求客户端保持在原始请求中使用的请求方法中。
308 永久重定向。表示资源已永久迁移到新的 URI,客户端应在所有后续请求中使用新的 URI。
4xx HTTP 错误(客户端错误)
HTTP 4xx 错误代码表示客户端错误。这意味着问题出在用户端,例如 Web 浏览器或应用程序。
400 错误请求。由于客户端存在语法错误、无效数据或其他错误,服务器无法处理该请求。
401 未授权。由于客户端存在语法错误、无效数据或其他错误,服务器无法处理请求。
402 需要付款。该代码目前未激活,仅供将来使用。这可能意味着将来访问该资源前需要付费。
HTTP 错误 403 禁止访问。客户端没有足够的权限访问请求的资源。
404 未找到。服务器上不存在请求的资源。这是最常见的用户错误之一。
405 方法不允许。服务器不支持此资源的指定请求方法。“Allow”标头指示了资源允许的方法。使用此代码,
406 不可接受。服务器无法提供客户端可以接受的数据格式。
407 需要代理身份验证。访问所请求的资源需要通过代理服务器进行身份验证。
408 请求超时。服务器正在等待接收来自客户端的请求,但超时了。“Retry-After”标头可能指示请求可以重试的时间。
409 冲突错误。由于与当前资源状态冲突,请求无法完成。
410 已删除。请求的资源之前存在,但现在已被删除,预计不会恢复。
411 长度必填。服务器要求在请求中指定内容长度;缺少此信息将被视为错误。
412 前提条件失败。请求中的某个前提条件未满足,导致请求无法执行。
413 请求负载过大。请求数据的大小超过了服务器限制。
414 URI 过长。请求中的 URI 长度超过了可接受的限制。
415 不支持的媒体类型。服务器无法处理请求中提供的数据类型。
416 范围不满足。HTTP 错误,请求的范围与当前服务器数据不匹配。
417 预期失败。“Expect”标头中的预期条件未得到满足。
418 我是茶壶。这段代码只是个玩笑,并不会对用户或服务器造成任何实际影响,也不是一个真正的错误。它表示服务器是茶壶,无法煮咖啡。
421 请求重定向错误。由于请求或服务器配置错误,服务器不处理该请求。
422 无法处理的实体。服务器理解请求,但由于数据错误而无法处理。
423 已锁定。资源已被阻塞,无法处理。
424 依赖关系失败。该请求依赖于另一个未执行的请求。
425 请求过早。由于请求过早到达,服务器尚未准备好处理该请求。
错误代码 426:需要升级。服务器需要使用更高级的协议来处理此请求。
428 需要前提条件。服务器要求在请求中指定某些前提条件。
429 请求过多。客户端在短时间内发送的请求过多,超过了服务器的限制。
431 请求头字段过大。请求头超过了允许的最大大小。
449 重试。表示当前服务器无法处理该请求,但其他服务器可以成功处理该请求,客户端应使用新的 URI 重试该请求。
451 因法律原因不可用。该资源因法律原因不可用。
499 客户端关闭请求。服务器已收到请求,但客户端在处理完成前关闭了连接。
HTTP 5xx 错误(服务器错误)
HTTP 5xx 错误代码表示服务器出现问题。这些代码表示服务器端出现问题,导致服务器无法以正确的方式处理用户的请求。让我们仔细看看它们:
HTTP 错误 500 内部服务器错误。服务器遇到意外情况,导致请求无法完成。“Server”标头可能指示发生错误的服务器。
501 未实现。服务器不支持处理客户端请求所需的功能。“Via”标头可能指示发生错误的代理服务器。
502 Bad Gateway。此代码表示充当代理的服务器从另一台服务器收到了错误的响应。
HTTP错误503:服务不可用。服务器暂时无法处理请求。
504 网关超时。充当代理的服务器未及时收到来自另一台服务器的响应。
505 HTTP 版本不支持。服务器不支持请求中指定的 HTTP 协议版本。作为备用方案,可以使用“Upgrade”标头来指示支持的协议。
506 变体也进行协商。此状态在 HTTP/1.1 中未使用;但是,如果服务器检测到导致内容协商歧义的内部配置,则可能会使用此响应。
507 存储空间不足。由于服务器存储空间不足,服务器无法满足请求。
检测到 508 循环错误。服务器在处理请求时检测到循环,为了避免无限循环,拒绝完成请求。
509 带宽限制超出。当服务器带宽因请求或流量过大而超出限制时,会发生此错误。
510 未续期。客户必须申请额外的分机号才能继续请求。
511 需要网络身份验证。客户端必须进行身份验证才能访问网络。
如何检查页面状态代码
在本节中,我们将介绍三种检查页面状态代码的主要方法:通过命令行、使用 Web 浏览器和使用独立的在线服务。每种方法都有各自的优势,并且适用于不同的情况。
通过命令行检查服务器响应
命令行提供了一种方便的方法来检查页面状态代码,而无需使用 Web 浏览器。对于此方法,您需要打开命令行并使用以下命令:
curl -I http://page-address
此命令向指定 URL 发送 HEAD 请求(仅标头请求)并显示包括 HTTP 状态代码在内的信息:
上面的示例显示了成功的响应代码。如果响应包含错误代码(例如 404 Not Found HTTP 错误),结果将类似:
通过浏览器控制台检查服务器响应
Web 浏览器开发者控制台提供了执行各种操作的工具,包括检查页面状态代码。为了查看服务器响应中的 HTTP 代码,您需要打开开发者控制台 (Ctrl+Shift+K) 或 (Ctrl+shift+J),具体取决于所使用的浏览器。接下来,选择“网络”部分并加载所需的页面:
使用独立工具检查服务器响应
有很多独立的在线服务提供工具来检查网站页面的状态代码。这些服务通常可以让您快速了解网站的可用性和性能概况。它们的工作原理都相同。例如,我们将以最流行的资源——httpstatus.io 为例。
首先你需要打开该服务本身,然后输入你需要查找答案的页面地址,并请求验证:
结果将显示在页面底部:
结语
总之,应该强调的是,理解并能够读取 HTTP 错误代码是任何参与 Web 开发和服务器维护的人的一项关键技能。当我们找出每个错误并探索检测它们的工具时,我们就会明白为什么有效管理这些 Web 服务方面如此重要。