关于 HTTP 响应状态码你需要知道的一切

简介: 关于 HTTP 响应状态码你需要知道的一切

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 响应代码的完整列表。


相关文章
|
5天前
|
API 数据安全/隐私保护
Haskell中的HTTP请求:代理与响应状态检查
Haskell中的HTTP请求:代理与响应状态检查
|
4月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
238 1
|
5月前
|
Shell
HTTP状态码解析:在Haskell中判断响应成功与否
HTTP状态码解析:在Haskell中判断响应成功与否
|
2月前
【网路原理】——HTTP状态码和Postman使用
状态码(200,404,403,405,500,504,302),Postman下载和使用构造请求
|
4月前
|
开发者
深入了解HTTP状态码
深入了解HTTP状态码
230 64
|
4月前
|
缓存 网络协议 JavaScript
【HTTP】构造HTTP请求和状态码
【HTTP】构造HTTP请求和状态码
80 1
【HTTP】构造HTTP请求和状态码
|
4月前
|
缓存 应用服务中间件 nginx
你知道 HTTP 的状态码都有哪些吗?它们的含义又是什么呢?
你知道 HTTP 的状态码都有哪些吗?它们的含义又是什么呢?
107 9
|
4月前
|
存储 JSON API
HTTP 请求与响应处理:C#中的实践
【10月更文挑战第4天】在现代Web开发中,HTTP协议至关重要,无论构建Web应用还是API开发,都需要熟练掌握HTTP请求与响应处理。本文从C#角度出发,介绍HTTP基础知识,包括请求与响应结构,并通过`HttpClient`库演示如何发送GET请求及处理响应,同时分析常见错误并提供解决方案,助你更高效地完成HTTP相关任务。
173 2
|
5月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
280 8
|
4月前
|
缓存 前端开发 安全
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
330 0