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


相关文章
|
11月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
1041 130
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
2592 83
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
1191 20
|
缓存 JavaScript 前端开发
Vue 3 HTTP请求封装导致响应结果无法在浏览器中获取,尽管实际请求已成功。
通过逐项检查和调试,最终可以定位问题所在,修复后便能正常在浏览器中获取响应结果。
443 0
HTTP协议中常见的状态码 ?
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类。常见状态码包括:101(切换协议)、200(请求成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器错误)。
1039 0
|
Web App开发 缓存 数据安全/隐私保护
Django全栈实战:HTTP状态码与业务状态码的分层设计与实战应用
HTTP状态码是服务器响应请求的3位数字代码,分为1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。业务状态码则用于描述具体业务逻辑结果,常在响应体中返回。二者在前后端交互中有不同用途和处理方式。本文还介绍了如何在Django项目中设计并使用业务状态码。
825 0
|
API 数据安全/隐私保护
Haskell中的HTTP请求:代理与响应状态检查
Haskell中的HTTP请求:代理与响应状态检查
282 13
【网路原理】——HTTP状态码和Postman使用
状态码(200,404,403,405,500,504,302),Postman下载和使用构造请求