HTTP 响应代码经常被忽略,但它们是标准化远程服务器响应的非常重要的机制。当程序(或用户)向服务器发出请求时,可能会发生以下几种情况:
- 它可能无法通过验证
- 它可能会成功
- 它可能会产生服务器错误
如您所见,可能性是无限的。我们现在遇到的问题是 HTTP 是为机器之间的通信而创建的。我们如何处理机器将读取这些代码这一事实?
HTTP 以一种非常优雅的方式解决了这个问题:每个请求都必须使用 HTTP 代码来解决,并且这些代码具有指示代码性质的范围。
这篇文章介绍了几个服务器状态和错误代码,并解释了它们揭示了幕后服务器上发生的事情。
让我们开始吧!
1xx — 信息代码
100–199 范围内的代码纯粹是信息性的。此范围内最有趣的代码是 102 代码。此代码用于指定操作正在后台进行并且可能需要一些时间才能完成。
2xx — 成功代码
成功代码用于指示 HTTP 请求中一定程度的成功。它是最常见的(也是最需要的)代码。
该范围内最常见的代码如下:
- 200:成功:此代码表示完全成功。甚至远程都没有出错。
- 201:已创建:当客户端请求在服务器中创建新实体时,此代码主要用于 REST API。
- 203:非权威信息:当通过转换代理路由请求时,源端以 200 响应时使用此代码。
- 204: No Content: 这是一个成功的代码,但是没有从服务器返回的内容。有时,即使没有内容,API 也会返回 200。
- 206:部分内容:此代码用于分页响应。发送标头,指定客户端将接受的范围(和偏移量)。如果响应大于范围,服务器会回复206,表示后面还有更多的数据。
3xx——重定向代码
300 到 399 范围内的代码表示客户端必须采取一些额外的操作才能完成请求。
该范围内最常见的代码描述如下:
- 301: Moved permanently : 这个状态码表示客户端试图获取的资源已经永久移动到另一个位置。
- 302: Found:此代码表示用户出于某种原因需要执行临时重定向,但浏览器开始将此代码实现为 303 See Other。这导致引入 303 和 307 临时重定向代码来消除行为重叠的歧义。
- 308永久重定向:顾名思义,此代码用于指定资源的永久重定向。它可能与 301 混淆,但有一个小区别,308 代码不允许更改 HTTP 方法。
4xx — 客户端错误
400 到 499 范围内的代码表示客户端生成的错误。它们表明请求存在问题。这个范围特别重要,因为它是 HTTP 服务器必须指示客户端他们的请求有问题的方式。
该范围内的常用代码如下:
- 400 bad Request:此代码表示来自用户的请求在语法上不正确。可能缺少参数或某些值未通过验证。
- 401 Unauthorized:此代码表示缺少客户端身份验证。通常,有效的登录将解决此问题。
- 403 Forbidden:这类似于401,但在这种情况下,表示用户没有足够的权限。
- 404 Not Found:这意味着在服务器中找不到资源。这是您导航到不存在的页面时遇到的错误。
5xx — 服务器错误
此范围表示服务器中出现处理错误。发出 5xx 代码时,表示服务器出现某种问题,无法从客户端修复。
该范围内的部分代码如下:
- 500 Internal Server Error:这意味着服务器上的软件发生了错误。目前没有更多信息披露。
- 501 Not Implemented:此错误状态代码表示服务器不支持完成请求所需的功能。当服务器无法识别请求方法并且无法支持任何资源时,这是适当的响应。
- 503 服务不可用:当服务器由于某种原因不可用时发出此代码,负载过大或服务器已关闭。
结论
虽然它们表面上看起来令人困惑或令人生畏,但 HTTP 状态代码实际上非常有用。通过了解一些常见问题,您可以更快地解决网站上的问题。您可以在此处找到 HTTP 响应代码的完整列表。