探索Web通信的基础:理解HTTP状态码

LightNode
By LightNode ·

介绍

互联网是一个广阔的领域,每一次点击链接或提交表单都会在您的设备和托管所请求内容的服务器之间触发一系列复杂的交互。在这种互动的核心是超文本传输协议(HTTP)——统治着整个万维网通信的基础协议。在信息流中至关重要的是HTTP状态码——服务器传递的简洁数字代码,用于传达客户端请求的结果。

当您打开一个网页时,您实际上是在向互联网上的某个服务器发送请求。服务器接收到这个请求并制定响应——这种来回交流是HTTP运作的本质。状态码就像是服务器的回复,使用数字代码来指示您的请求是如何处理的。

状态码不仅对我们终端用户至关重要,对于网站所有者和开发者来说,了解其系统如何运行同样重要。掌握这些代码背后的含义可以高效地进行故障排除和问题解决。本质上,虽然HTTP状态码可能看起来只是一些数字,但它们提供了对互联网通信基本运作的一瞥。理解它们就像是学习一种巧妙的语言,阐明了支撑万维网运作的规则和智慧。让我们继续探索所有HTTP状态码。

所有HTTP状态码

HTTP状态码列表

1xx 信息性

  • 100 继续:服务器已接收请求头,客户端应继续发送请求体
  • 101 切换协议:请求者已要求服务器切换协议
  • 102 处理中:表示服务器已接收并正在处理请求,但尚未有响应可用
  • 103 早期提示:用于在最终HTTP消息之前返回一些响应头

2xx 成功

  • 200 OK:成功HTTP请求的标准响应
  • 201 创建:请求已成功处理,并导致新资源的创建
  • 202 已接受:请求已接受处理,但处理尚未完成
  • 203 非权威信息:服务器成功处理了请求,但返回的信息可能来自其他来源
  • 204 无内容:服务器成功处理了请求,不会返回任何内容
  • 205 重置内容:服务器成功处理了请求,但不会返回任何内容。客户端应重置文档视图
  • 206 部分内容:由于客户端发送的范围头,服务器仅提供部分资源
  • 207 多状态:为多个独立操作提供状态
  • 208 已报告:DAV绑定的成员已在多状态响应的前一部分中列举
  • 226 IM已使用:表示服务器已满足对资源的请求,响应是结果的一个或多个实例操作的表示

3xx 重定向

  • 300 多项选择:指示资源的多个选项
  • 301 永久移动:此及所有未来的请求应指向给定的URI
  • 302 找到:告诉客户端查看(浏览到)另一个URL
  • 303 其他情况:请求的响应可以在使用GET方法的另一个URI下找到
  • 304 未修改:表示自请求头指定的版本以来,资源未被修改
  • 305 使用代理:请求的资源仅通过代理可用
  • 307 临时重定向:应使用另一个URI重复请求
  • 308 永久重定向:此及所有未来的请求应使用另一个URI重复

4xx 客户端错误

  • 400 错误请求:由于明显的客户端错误,服务器无法或不会处理请求
  • 401 未授权:需要身份验证,身份验证失败或未提供
  • 403 禁止:请求有效,但服务器拒绝采取行动
  • 404 未找到:请求的资源找不到
  • 405 方法不被允许:请求的方法不被允许用于请求的资源
  • 406 不可接受:请求的资源只能生成根据Accept头不接受的内容
  • 407 代理身份验证要求:客户端必须首先向代理进行身份验证
  • 408 请求超时:服务器等待请求超时
  • 409 冲突:指示请求无法处理,因为有冲突
  • 410 已消失:指示请求的资源不再可用
  • 411 需要长度:请求未指定其内容的长度
  • 412 前置条件失败:服务器不满足其中一个前置条件
  • 413 负载过大:请求大于服务器可以处理的
  • 414 URI太长:提供的URI对服务器来说太长,无法处理
  • 415 支持的媒体类型:请求实体具有不支持的媒体类型
  • 416 范围不满意:客户端请求的文件范围无效
  • 417 期望失败:服务器无法满足Expect头的要求
  • 418 我是一个茶壶:服务器拒绝在茶壶中煮咖啡
  • 421 请求误导:请求被指向错误的服务器
  • 422 无法处理的实体:请求有效,但无法处理
  • 423 已锁定:资源当前被锁定
  • 424 依赖关系失败:请求因前一个请求的失败而失败
  • 425 太早:服务器拒绝可能会重放的请求
  • 426 需要升级:客户端应使用不同的协议
  • 428 前置条件要求:请求需要条件性头
  • 429 请求过多:用户发送了太多的请求
  • 431 请求头字段过大:服务器不会处理大头
  • 451 法律原因不可用:因法律原因拒绝资源访问

5xx 服务器错误

  • 500 内部服务器错误:一个通用错误,表示一个意外的情况
  • 501 未实现:服务器不认识请求的方法
  • 502 坏网关:服务器从上游服务器收到无效响应
  • 503 服务不可用:服务器当前不可用
  • 504 网关超时:服务器未及时收到上游的响应
  • 505 HTTP版本不支持:服务器不支持HTTP版本
  • 506 变体也协商:透明协商导致循环引用
  • 507 存储不足:服务器存储不足,无法完成请求
  • 508 循环检测:服务器在处理过程中检测到无限循环
  • 510 不扩展:服务器需要进一步扩展才能满足请求
  • 511 需要网络身份验证:客户端需要身份验证才能获得网络访问

关于HTTP状态码的常见问题

客户端和服务器之间有什么区别?

  • 客户端:客户端通常是用户设备(计算机、手机等)上的Web浏览器或应用程序,它发起对服务器的资源请求,如网页、文件或数据。客户端发送HTTP请求并从服务器接收HTTP响应。

  • 服务器:服务器是接收来自客户端的传入HTTP请求、处理它们并发送回适当HTTP响应的计算机程序或系统。服务器托管和管理客户端通过网络请求访问的资源(网页、文件、数据库等)。

LightNode服务器可以作为客户端吗?

当然,一个LightNode服务器,作为一个VPS,可以同时充当服务器和客户端。以下是它的工作原理:

  • 作为服务器:LightNode VPS服务器可以托管网站、数据库、应用程序等。在这个角色中,它为客户端设备或其他服务器提供内容或服务。它监听传入的请求并提供适当的响应或数据。

  • 作为客户端:同一个LightNode服务器在需要从互联网或其他服务器请求信息或服务时也可以充当客户端。这可能包括从API获取数据、下载软件更新或访问在线资源。在这些情况下,VPS发起请求并等待响应,就像任何其他客户端设备一样。

HTTP状态码可以定制吗?

是的,HTTP状态码在一定程度上可以由Web开发人员和服务器管理员定制。定制状态码允许与客户端进行更有意义的沟通,并通过提供定制的错误消息或重定向指示来增强用户体验。

HTTP状态码如何影响SEO和网站排名?

HTTP状态码在搜索引擎优化(SEO)和网站排名中起着至关重要的作用。搜索引擎爬虫依赖状态码来理解网页的可访问性和相关性。返回服务器错误或未找到错误的页面可能会对网站在搜索引擎结果页(SERPs)上的排名产生负面影响。