当前位置: 首页 > news >正文

何为HTTP状态码?一文清楚基本概念。

图片

在客户端与服务器之间的信息传输过程中,我们可以将其比喻为客户与快递员之间的包裹传递。那么服务器是如何通知客户端,操作是成功还是失败?或者有其他的一些情况呢?(就像客户可以查询快递的状态)

而这背后实现的答案是,“HTTP状态码”

快递员(服务器)接收到请求后,会开始处理这个包裹,比如查找、打包、准备发货等。如果一切顺利,快递员会将包裹成功送达,并告知客户(客户端)已成功签收,这就像是服务器返回了一个“200 OK”的状态码,表示请求已成功处理。

然而,有时也会出现一些问题。比如,快递员可能找不到客户请求的包裹(资源不存在),或者由于某种原因暂时无法发货(服务器内部错误)。在这种情况下,快递员会通过一个特定的信息来告知客户发生了什么问题,这些信息就像是HTTP状态码。

例如,如果快递员告诉客户“404 Not Found”,那就意味着客户请求的包裹在仓库中找不到;如果快递员说“500 Internal Server Error”,那就表示快递公司内部出了问题,暂时无法处理客户的请求。

除了直接的成功或失败信息,快递员还可能给出一些重定向的指示。比如,“301 Moved Permanently”就像是快递员告诉客户:“您要的包裹已经永久搬到另一个仓库了,以后请去那里取货。”而“304 Not Modified”则像是快递员确认:“您上次取的包裹内容没有变化,不需要再次取货。”

总的来说,HTTP状态码就像是快递员与客户之间的沟通工具,它们以标准化的方式传达了请求的处理情况,使得客户端能够根据实际情况作出相应的决策和行动。在这个包裹传递的比喻中,HTTP状态码确保了数据的准确传输和交互的顺利进行。

图片

状态码分类

比喻:快递员点头示意收到,等待你进一步指示。

比喻:快递员将包裹放门前,通知你已送达。

比喻:快递员指引你去新地址取件。

比喻:你写错地址,快递员无法找到。

比喻:快递员货车故障,需等待修复。

  • 1xx(信息响应):表示服务器收到请求,需要请求者继续执行操作。

  • 2xx(成功):表示请求成功,请求被成功接收并处理。

  • 3xx(重定向):表示重定向,需要进一步的操作以完成请求。

  • 4xx(客户端错误):表示客户端错误,请求包含语法错误或无法完成请求。

  • 5xx(服务器错误):表示服务器错误,服务器在处理请求的过程中发生了错误。

HTTP状态码介绍

1xx(信息响应)

状态码

英文名称

描述

100

Continue

服务器成功接收到请求头,客户端可以继续发送请求主体。

101

Switching Protocols

服务器即将切换的协议。

2xx(成功)

图片

状态码

英文名称

描述

200

OK

请求已成功,请求所希望的响应头或数据体将随此响应返回。

201

Created

请求已经被实现,而且有一个新的资源已经依据请求的内容而建立,且其 URI 已经随 Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 '202 Accepted'。

202

Accepted

服务器已接受请求,但尚未处理。

203

Non-Authoritative Information

非授权信息,表示服务器已成功处理请求,但返回的信息可能来自其他地方,而非原始服务器。

204

No Content

无内容,服务器成功处理了请求,但不需要返回任何内容。

205

Reset Content

重置内容,请求已经成功处理,现在应该重置表单,以便用户可以继续输入新的信息 。

206

Partial Content

部分内容,服务器已经成功处理了部分GET请求。比如断点续传,在下载大文件时,如果下载过程中断,可以从上次中断的地方恢复下载,而不是重新开始。。

3xx(重定向)

图片

状态码

英文名称

描述

301

Moved Permanently

被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。

302

Found

请求的资源现在临时从不同的 URI 响应请求。

303

See Other

常用于将 POST 请求重定向到 GET 请求,比如你上传了一份个人信息,服务器发回一个 303 响应,将你导向一个“上传成功”页面。

304

Not Modified

请求的资源现在临时从不同的 URI 响应请求。

305

Use Proxy

使用代理,所请求的资源必须通过代理访问

306

Unused

已经被废弃的HTTP状态码

307

Temporary Redirect

状态码 307 与 302 之间的唯一区别在于,当发送重定向请求的时候,307 状态码可以确保请求方法和消息主体不会发生变化

表格展示效果不佳..

图片

关于4xx和5xx可以参考下图

图片

图片

图片

在工作中,HTTP 状态码还有一个作用,就是能有效防止程序员同学们甩锅,当系统出现一个bug的时候,他们第一反应大概率是:这肯定不是我写的代码出问题了。

但是,如果服务器返回4xx错误,那大概率就是前端同学的锅,前端同学就要第一时间介入;如果服务器返回5xx错误,就可以理直气壮地找后端同学解决问题了。

图片

觉得内容不错的 欢迎点击「在看」支持 谢谢各位

 
 
 

我也希望这个世界会因为分享而更美好!

单纯分享,无任何利益相关!

http://www.lryc.cn/news/333525.html

相关文章:

  • SV学习笔记(七)
  • Windows SDK(五)按钮静态文本与编辑框控件
  • 基于SSM框架实现的在线心理评测与咨询系统(技术栈 spring+springmvc+mybatis+jsp+jquery+css)
  • GD32F470_ DS18B20温度传感器模块移植
  • 【JAVASE】带你了解instanceof和equals的魅力
  • 【Linux】进程控制详解
  • Mysql 高性能的sql优化方案和建议
  • 鸿蒙实战开发:【实现应用悬浮窗】
  • 应用开发:python解析斗鱼弹幕
  • 【面试经典150 | 动态规划】交错字符串
  • 设计模式(17):中介者模式
  • echart 折线图或散点图当横坐标为小数位时,若想显示整数该如何处理?
  • 一套C#自主版权+应用案例的手麻系统源码
  • 31.2k star, 免费开源的白板绘图工具 tldraw
  • Redis开源协议调整,我们怎么办?
  • 干了三年外包。。。忘了什么是CICD。。。
  • 【LeetCode】454. 四数相加 II
  • 搜索(DFS BFS)
  • koc和kol是什么意思?
  • 基于vscode Arduino插件开发Arduino项目
  • AI 驱动强大是视频转换处理软件
  • Python+requests+Pytest+logging+allure+pymysql框架详解
  • 菜鸟笔记-Numpy函数-full/random.randint/random.choice
  • 蓝桥杯每日一题:牛的学术圈I(二分,双指针)
  • fping命令
  • 奇富科技推出新一代全自研智能语音模型,打破沟通壁垒
  • 穿越代码之海:探寻结构体深层逻辑,展望未来应用新天地
  • layui框架实战案例(26):layui-carousel轮播组件添加多个Echarts图标的效果
  • Unity开发一个FPS游戏之三
  • NIUSHOP完美运营版商城 虚拟商品全功能商城 全能商城小程序 智慧商城系统 全品类百货商城