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


相关文章
|
1月前
|
存储 缓存 安全
第二章 HTTP请求方法、状态码详解与缓存机制解析
第二章 HTTP请求方法、状态码详解与缓存机制解析
|
1月前
|
XML Java 数据格式
Servlet 教程 之 Servlet 服务器 HTTP 响应 3
`Servlet`教程示例展示了如何创建一个HTTP响应,使用`@WebServlet("/Refresh")`的`Refresh`类继承`HttpServlet`。在`doGet`方法中,设置了`Refresh`头以每5秒自动刷新,并用`setContentType("text/html;charset=UTF-8")`设定内容类型。还使用`Calendar`和`SimpleDateFormat`获取并格式化当前时间显示。相应的`web.xml`配置指定了Servlet路径。当访问此Servlet时,页面将每5秒更新一次显示的系统时间。
28 4
|
1月前
|
数据安全/隐私保护
Servlet 教程 之 Servlet HTTP 状态码 1
Servlet教程讲解了HTTP状态码,如200(成功)、404(未找到)和500(服务器错误)。状态码帮助标识HTTP响应的状态,包括继续请求、重定向、权限问题、方法不允许和服务器故障等不同情况。这些代码是通信中的关键反馈元素。
20 3
|
1月前
状态码对于理解HTTP请求和响应的流程,以及调试网络问题非常重要
【5月更文挑战第15天】HTTP状态码由三位数字表示,分为1xx-5xx五类。1xx为信息响应,2xx表示成功,如200(请求成功)、201(创建成功)。3xx是重定向,如301(永久移动)、302(临时重定向)。4xx表示客户端错误,如400(坏请求)、404(未找到)。5xx是服务器错误,包括500(内部服务器错误)和503(服务不可用)。这些状态码用于理解请求响应流程和调试网络问题。
25 1
|
13天前
|
JSON 缓存 前端开发
网络原理 - HTTP / HTTPS(3)——http响应
网络原理 - HTTP / HTTPS(3)——http响应
10 0
|
13天前
|
Java
JSP 教程 之 JSP HTTP 状态码 4
JSP教程讲解了HTTP状态码的使用,包括HTTP响应的结构和设置状态码的方法:通过HttpServletResponse的setStatus、sendRedirect及sendError。示例展示了如何发送407错误码,浏览器显示"Need authentication!!!"。
9 1
|
14天前
|
Java 数据安全/隐私保护
JSP 教程 之 JSP HTTP 状态码 2
JSP教程讲解了HTTP状态码,包括成功、重定向、客户端错误和服务器错误等类别。例如,200表示请求成功,404表示页面未找到,500表示服务器内部错误。这些状态码帮助理解HTTP通信过程中发生的问题。
18 2
|
21天前
|
XML 存储 缓存
HTTP状态码的分类
HTTP状态码的分类
13 1
|
25天前
|
存储 缓存
ETag的值是如何在HTTP响应中传递给客户端的
ETag的值是如何在HTTP响应中传递给客户端的
|
30天前
|
前端开发 JavaScript
关于HTTP 状态码不要再问我了,都在这了 。。。返回什么就去解决什么,不要盯着状态码找不到解决办法
关于HTTP 状态码不要再问我了,都在这了 。。。返回什么就去解决什么,不要盯着状态码找不到解决办法

热门文章

最新文章