在 Web 开发领域,HTTP 错误代码对用户体验和网站声誉的影响至关重要。在本文中,我们将考虑完整的服务器错误代码列表,分析其含义,并学习如何有效地解释服务器响应代码,以解决问题并优化 Web 应用程序的性能。
什么是 HTTP 响应代码
HTTP 响应代码是 Web 服务器的语言,可将浏览器请求翻译成可理解的指令。它就像诗人回答虚拟问题,赋予它们意义和方向。响应代码并不总是 HTTP 错误代码。例如,“200 OK”表示一切正常,但 HTTP 错误“404 Not Found”表示页面在虚拟空间中丢失。每个代码都是服务器状态的独特表达,解码后我们就可以了解虚拟世界另一端正在发生的事情。
1xx 代码(信息)
HTTP 协议中的 1xx 状态代码是服务器与客户端对话中的第一个环节。它们不提供对请求的完整响应,而是提供有关当前状态的信息,从而使数据交换更加高效。让我们仔细看看它们:
100继续。HTTP 响应代码,其中服务器向用户亮起绿灯,允许他安全地继续发送大型请求。
101交换协议。服务器告诉客户端它正在改变游戏规则,例如从 HTTP 转移到更安全的 HTTPS。在这种情况下,“Upgrade”标头用于协议更改。
102处理。此代码就像是一条消息,表示服务器已经接受了请求,但仍在忙于执行一项复杂的操作。
103 早期提示。在这里,服务器在主要响应之前向客户端发送几个指示性标头,警告在不久的将来可能发生的事情。
2xx 代码(成功)
2xx 组中的 HTTP 错误代码表示服务器请求成功。它们本质上是网络通信范围内的“绿灯”,确认一切按计划进行并已成功完成。
200 OK。当服务器顺利处理通过 GET 方法的请求并在响应中返回请求的数据时,使用此状态。“Content-Type”标头报告响应中的内容类型。它只是通知客户端请求已成功。
201已创建。此处服务器宣布创建新资源。
202接受。服务器让用户知道请求已被接受,但需要一些时间来响应。
203 非权威信息。此代码向客户提供的数据可能不是官方的,但可以用于比较。
204没有内容。服务器已处理请求,但未返回任何其他内容。
205重设内容。这里指示客户端在发送后重置当前视图或数据。
206部分内容。这种情况表示响应仅包含请求内容的一部分。“Content-Range”标头指示部分内容范围。
207 多状态。 服务器成功完成了来自客户端的多操作请求,并且响应包含有关每个操作的状态信息。
226 即时通讯工具使用。此代码表示服务器使用了增量元数据 (IM) 方法,并通过仅将修改后的资源部分传递给客户端来进行响应。
3xx 代码(重定向)
HTTP 协议中的 3xx 代码就像是指引用户前往新资源位置的指针,告知客户端需要采取后续步骤才能获得请求的内容,否则将被重定向至其他资源。下面我们来深入了解一下 XNUMXxx 代码的具体含义:
300种选择客户端收到信号,表示资源有多个可能的位置,并作为响应给出选择。在当前情况下,“Location”标头可能指示资源的备选选项。
301 永久移动。 服务器向用户报告资源已永久移动到另一个位置。
302找到了。此 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错误的网关。此代码表示充当代理的服务器从另一个服务器收到了错误的响应。
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 服务方面如此重要。