HTTP常见状态码 HTTP的逐步发展(通俗易懂版)

news2024/9/22 1:24:39

HTTP常见状态码 

HTTP 状态码是服务器返回的响应结果的一个数字标志,用于告诉客户端(例如浏览器)请求的处理情况。为了方便记忆,我们可以简单地分成几类并用通俗的方式来理解:

1. 2xx 成功类:请求成功,事情办妥了。

200 OK:请求成功,服务器返回正常响应。就像你点了一份餐,服务员端上了餐,并且一切都正常。

201 Created:资源被成功创建了。比如你在某个平台上传了一张图片,服务器返回201表示图片已经上传并保存成功。

204 No Content:请求成功,但没有任何数据返回。就像你请求了服务,但服务员只是点了点头,没有给你任何东西。

2. 3xx 重定向类:需要进行进一步的操作。

301 Moved Permanently:资源永久搬家了。就像你去了一家老店,服务员告诉你这家店已经搬到新地址了,而且以后都在新地址营业。

302 Found:临时搬家了。和301类似,不过只是暂时性的,资源可能很快又会回到原来的地方。

304 Not Modified:资源没有更新。比如你已经缓存了这个网页,服务器告诉你“别重复下载了,之前那个版本没变”。

3. 4xx 客户端错误类:你的请求有问题。

400 Bad Request:请求有误,服务器不知道该怎么处理。就像你给服务员递上了一份乱七八糟的菜单,服务员看不懂。

401 Unauthorized:未经授权,必须登录后才能访问。相当于你想进入一个VIP房间,但你没有VIP卡,需要先验证身份。

403 Forbidden:禁止访问。即使你登录了,服务器还是不让你看某些内容,类似于一个禁区,你就是不能进去。

404 Not Found:资源未找到。就像你去了一家店点餐,结果服务员说这个餐品已经下架了,不在菜单上。

405 Method Not Allowed:方法不允许。你发的请求方式(比如POST或GET)不对,服务器不支持这种方式。就像你点餐的方式不符合店里的规矩。

5. 5xx 服务器错误类:服务器这边出问题了。

500 Internal Server Error:服务器内部错误。就像餐馆的厨房出了问题,服务员也不知道到底哪里出错了。

502 Bad Gateway:网关错误。服务器作为中间人,试图从另一个服务器获取信息,但那个服务器返回了错误信息。相当于服务员去厨房拿餐,却发现厨房那边出问题了。

503 Service Unavailable:服务暂时不可用。就像你去餐馆点餐,结果服务员告诉你他们今天太忙了,暂时无法提供服务。

简单记忆小技巧:

1xx:服务器告诉客户端“稍等,我正在处理”。

2xx:都表示成功(事情办妥了)。

3xx:意味着要去其他地方找(搬家、重定向)。

4xx:客户端错误(你的请求有问题)。

5xx:服务器错误(他们那边的问题)。

HTTP协议发展

(1)HTTP 1.0

短连接,每次请求都会创建一个新的 TCP 连接,请求完成后立即关闭。这导致了大量的连接建立和断开,性能较差。

(2)HTTP 1.1

  • 支持持久连接,多个请求可以复用一个 TCP 连接,减少了频繁建立和关闭连接的开销。并且支持分块传输(对大文件传输有利)
  • 但请求和响应仍是串行处理,一个请求完成后才能发送下一个请求,这导致了“队头阻塞”问题(即前面的请求阻塞后面的请求)。

(3)HTTP 2.0

  • 使用二进制传输,使得解析更高效,也减少了协议层的歧义。
  • 支持多路复用:同一个 TCP 连接可以承载多个请求和响应,互不干扰。多个请求和响应可以同时发送和接收,解决了 HTTP/1.1 中的“队头阻塞”问题。
  • 头部压缩:对 HTTP 头部进行压缩,减少了冗长的头部信息带来的开销,尤其是对于重复的头部字段。
  • 服务器推送:服务器可以主动将客户端可能需要的资源推送给客户端
  • 仍然依赖TCP协议,TCP 的慢启动、丢包重传等问题会影响整体性能。

(4)HTTP 3.0

  • 基于 QUIC 协议(由 UDP 构建的新的传输层协议),可以提供更低的延迟和更好的性能,尤其是在网络状况不佳的情况下。
  • 内置加密:QUIC 默认采用 TLS 1.3 加密,所有传输都是加密的,不再需要单独配置 HTTPS。
  • 快速连接恢复:QUIC 可以在丢包时迅速恢复,而不需要像 TCP 那样进行复杂的重传机制。

总结:HTTP协议的发展从以下几个方面优化,二进制传输、头部压缩、多路复用、服务器推送、协议转换、自动加密。

HTTP/1.0:每个请求都要建立新的连接,性能较差。

HTTP/1.1:支持持久连接,但没有解决多路复用问题。

HTTP/2.0:通过多路复用、头部压缩(重复的部分省略)、服务器推送等特性,显著提高了性能,但仍依赖 TCP。

HTTP/3.0:基于 QUIC 协议,解决了 TCP 的局限性,提供了更快、更安全的传输。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

年度巨献 | OpenCSG开源最大中文合成数据集Chinese Cosmopedia

01 背景 近年来,生成式语言模型(GLM)的飞速发展正在重塑人工智能领域,尤其是在自然语言处理、内容创作和智能客服等领域展现出巨大潜力。然而,大多数领先的语言模型主要依赖于英文数据集进行训练,中文数据…

python:给1个整数,你怎么判断是否等于2的幂次方?

最近在csdn上刷到一个比较简单的题目,题目要求不使用循环和递归来实现检查1个整数是否等于2的幂次方,题目如下: 题目的答案如下: def isPowerofTwo(n):z bin(n)[2:]print(bin(n))if z[0] ! 1:return Falsefor i in z[1:]:if i !…

NXP官方或正点原子mfgtool下载系统报错initialize the library falied error code:29

这是因为mfgtool版本或者源文件被破坏了,你可以重新下载一个被改过的mfgtool程序,我就是去原子官网重新在linux包里找了新的更迭过的mfgtool

VMware虚拟机因磁盘空间不足黑屏无法登录

在虚拟机里存储了一些文件之后,再打开发现进不去了,只有光标一直在左上角,登录的框都是黑的,具体如下: 明明知道登录框的存在却怎么也触碰不到它T_T ,先说解决方法: 产生这个问题的原因是因为磁…

yolov5/8/9模型在COCO分割数据集上的应用【代码+数据集+python环境+GUI系统】

yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 1.COCO数据集介绍 COCO数据集,全称为Microsoft Common Objects in Context,是微软于2014年出资标注的…

多态与绑定例题

答案: B D C 知识点: 多态是相同方法不同的表现,分为重写和重载 重写体现在父类与子类不同表现,主要表现为子类重现父类的方法 重载体现在同一个类中的不同表现 绑定分为动态绑定和静态绑定 动态绑定是在运行时 静态绑定是…

动态规划算法:09.路径问题_最小路径和_C++

目录 题目链接:LCR 099. 最小路径和 - 力扣(LeetCode) 一、题目解析 题目: 解析: 二、算法原理 1、状态表示 2、状态转移方程 3、初始化 dp表初始化: 特殊位置初始化: 4、填表顺序 5、返回值 …

【HTTP】认识 URL 和 URL encode

文章目录 认识 URLURL 基本格式**带层次的文件路径****查询字符串****片段标识符** URL encode 认识 URL 计算机中非常重要的概念,并不仅仅是在 HTTP 中使用。用来描述一个网络资源所处的位置,全称“唯一资源定位符” URI 是“唯一资源标识符“严格的说…

超越极限!Qwen2.5 助力多领域智能应用

前沿科技速递🚀 近日,Qwen2.5 系列重磅发布,成为开源语言模型领域的又一里程碑。作为一款全新的通用语言模型,Qwen2.5 在支持自然语言处理的基础上,还在编程、数学等领域进行了专项优化。Qwen2.5 模型支持长文本生成&a…

黑群晖安装教程

黑群晖(一种非官方的群晖NAS系统安装方式)的安装教程相对复杂,但按照以下步骤操作,可以顺利完成安装。请注意,由于黑群晖涉及非官方操作,安装过程中可能遇到各种不确定因素,建议具备一定的计算机…

十四、运算放大电路

运算放大电路 1、理想运算放大器的概念。运放的输入端虚拟短路、虚拟断路之间的区别; 2、反相输入方式的运放电路的主要用途,以及输入电压与输出电压信号的相位 3、同相输入方式下的增益表达式(输入阻抗、输出阻抗)

英语<数词>

1.基数 one two three 整数 1 2 3 小数 1.1 2.2 3.2 分数 分子用基数,分母用序数 例子 1/3 one third 分子>1 2/3 two thirds 百分数 2.序数 first second

【软考】传输层协议TCP与UDP

目录 1. TCP1.1 说明1.2 三次握手 2. UDP3. 例题3.1 例题1 1. TCP 1.1 说明 1.TCP(Transmission Control Protocol,传输控制协议)是整个 TCP/IP 协议族中最重要的协议之一。2.它在IP提供的不可靠数据服务的基础上为应用程序提供了一个可靠的、面向连接的、全双工的…

[UTCTF2020]sstv

用goldwave和010editor打开均未发现线索, 网上搜索sstv,豆包回答如下: 慢扫描电视(Slow Scan Television,简称 SSTV)是一种通过无线电传输和接收静态图像的技术。 一、工作原理 SSTV 通过将图像逐行扫描并…

十九、石英晶体振荡电路

石英晶体振荡电路 1、石英晶体的特点、等效电路、特性曲线; 2、石英晶体振动器的特点, 3、石英晶体振动器的振荡频率

Vision Transformer (ViT)、Swin Transformer 和 Focal Transformer

1. Vision Transformer (ViT) Vision Transformer详解-CSDN博客https://blog.csdn.net/qq_37541097/article/details/118242600?ops_request_misc%257B%2522request%255Fid%2522%253A%2522F8BBAFBF-A4A1-4D38-9C0F-9A43B56AF6DB%2522%252C%2522scm%2522%253A%252220140713.13…

互联网全景消息(5)之RocketMq快速入门(下)

一、RocketMQ的存储设计 1.1 Domain Model 1.1.1 Message Message是RocketMQ消息引擎中的主体。messageId是全局唯一的。MessageKey是业务系统(生产者)生成的,所以如果要结合业务,可以使用MessageKey作为业务系统的唯一索引。 1.1.2 Topic subTopics==Message Queue,其实…

机器学习——Stacking

Stacking: 方法:训练多个模型(可以是强模型),然后将这些模型的预测结果作为新的特征,输入到下一层新的模型(可以是多个)中进行训练,从而得到最终的预测结果。 代表:Stacking本身并没…

跨游戏引擎的H5渲染解决方案(腾讯)

本文是腾讯的一篇H5 跨引擎解决方案的精炼。 介绍 本文通过实现基于精简版的HTML5(HyperText Mark Language 5)来屏蔽不同引擎,平台底层的差异。 好处: 采用H5的开发方式,可以将开发和运营分离,运营部门自…

新峰商城之订单(一):确认页面开发

新峰商城订单从生成到处理结束,主要以下几个流程: (1)提交订单(商城用户发起) (2)订单入库(后台逻辑) (3)支付订单(商城…