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

Http到底是怎么一回事?我们来大解剖

http大家都很熟悉了,大家的网址都是http/https开头的,那到底这个http是什么呢,我们今天来研究研究

HTTP,全称为HyperText Transfer Protocol,中文是超文本传输协议

我们可以拆解这个名词来理解它:

超文本:字面意思是“超越文本”,它不仅仅指文字,还包括图片、音频、视频、超链接等一切你能在网页上看到的内容

传输:HTTP 的核心作用是在两点之间传递信息。通常是在 Web 浏览器(客户端)和 Web 服务器(服务器端)之间。

  1. 协议:这是一种规则、约定或标准。就像两个人打电话需要约定好都说中文才能沟通一样,HTTP 规定了浏览器和服务器之间通信时所要遵循的格式和规则。它确保了通信双方能互相理解

  2. 简单来说,HTTP 就是一套用于从网络服务器传输超文本(即网页)到本地浏览器(客户端)的通信规则。

当你浏览器地址栏里输入一个网址(如www.zhihu.com)并按下回车时,你的浏览器就会使用 HTTP 协议向知乎的服务器发送一个请求。服务器收到请求后,再使用 HTTP 协议将网页的文本、图片等内容打包成一个响应,发回给你的浏览器。浏览器最后将这些内容渲染成你看到的完整页面

http无状态简化了服务器设计,但现实应用(如登录状态、购物车)需要“状态”。因此,引入了CookieSession等技术来在客户端或服务器端记录状态,弥补 HTTP 无状态的缺陷

一、基础认识

我们先来简单认识一下http,http是网络模型分层中的应用层中的一个协议,它依赖于底层可靠的传输协议。通常HTTP 使用TCP作为其传输层协议。TCP 确保了数据能完整、按顺序地送达,为 HTTP 的可靠传输提供了基础。默认端口是 80(HTTP)和 443(HTTPS),其他协议还有NTF(传输文件)、SMTP/POP3(发送/接收邮件)、DNS(域名转化为ip)

那我们先从http报文讲起

1、请求报文

(1)请求行

包含请求方法、请求目标(URL或URI)和HTTP协议版本。

(2)请求头部

包含关于请求的附加信息,如Host、User-Agent、Content-Type等。

(3)空行(CRLF)

请求头部和请求体之间用空行分隔。

(4)请求体(可选)

包含请求的数据,通常用于POST请求等需要传输数据的情况

HTTP 可以传输任何类型的数据,只需在报文头部用Content-Type字段标明即可

2、响应报文

(1)状态行

包含HTTP协议版本、状态码和状态信息

(2)响应头部

包含关于响应的附加信息,如Content-Type、Content-Length等

(3)空行(CRLF)

响应头部和响应体之间用空行分隔

(4)响应体(部分不需)

包含响应的数据,通常是服务器返回的HTML、JSON等内容

二、请求的类型有哪些?

GET:获取指定资源

POST:提交数据,通常用于提交表单数据或进行资源的创建

PUT:更新指定资源,通常用于更新已存在的资源

DELETE:用于请求服务器删除指定资源

HEAD:类似于GET请求,但只返回资源的头部信息,用于获取资源的元数据而不获取实际内容

这里我们需要仔细讲一下大家常用的GET和POST:

1、GET 从服务器获取指定的资源

GET请求的参数位置一般是写在URL中,URL规定只能支持 ASCII

所以 GET 请求的参数只允许 ASCII 字符 ,而且浏览器会对 URL 的长度有限制

2、POST 根据请求负荷(报文body)对指定的资源做出处理

POST 请求携带数据的位置一般是写在报文body中,body 中的数据可以是任意格式的数据

只要客户端与服务端协商好即可,而且浏览器不会对body大小做限制

这里来一个插曲,就是很多公司,比如推特,他们会采用所有请求都用post,猜测一下为什么要这么做?

答案是:首先确实是为了安全,其次是因为统一规范,有一些封装的RPC框架是BSON二级制进行封装的,query太小了塞不下

三、HTTP和HTTPS区别?

区别主要有以下四点:

  1. HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题
  2. HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输
  3. HTTP 连接建立相对简单,TCP三次握手之后便可进行HTTP的报文传输。而HTTPS在TCP三次握手之后,还需进行SSL/TLS的握手过程,才可进入加密报文传输。两者的默认端口不一样,HTTP 默认端口号是80,HTTPS 默认端口号是 443
  4. HTTPS协议需要向CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的

四、为什么有HTTP/1.1和HTTP/2.0

HTTP/2 相比 HTTP/1.1 性能上的改进:

1、头部压缩

HPACK 算法:在客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。

2、二进制格式

HTTP/2 不再像 HTTP/1.1 里的纯文本形式的报文,而是全面采用了二进制格式,头信息和数据体都是二进制,并且统称为帧:头信息帧、数据帧

这样虽然对人不友好,但是对计算机非常友好,因为计算机只懂二进制,那么收到报文后,无需再将明文的报文转成二进制,而是直接解析二进制报文,这增加了数据传输的效率

3、并发传输

引出了 Stream 概念,多个 Stream 复用在一条 TCP 连接。解决了HTTP/1.1 队头阻塞的问题。

3、服务器主动推送资源

HTTP/2 还在一定程度上改善了传统的「请求 - 应答」工作模式,服务端不再是被动地响应,可以主动向客户端发送消息

五、HTTP常用状态码

1xx 类状态码

提示信息,协议处理中的一种中间状态,实际用到的比较少。

2xx 类状态码

成功,服务器成功处理了客户端的请求。

3xx 类状态码

重定向,客户端请求的资源发生了变动,需要客户端重新发送请求获取资源

4xx 类状态码

客户端发送的报文有误,服务器无法处理。

5xx 类状态码

表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

其中常见的具体状态码有:

200:请求成功;

301:永久重定向;

302:临时重定向;

404:无法找到此页面;

405:请求的方法类型不支持;

500:服务器内部出错;

六、HTTP长连接是什么?

HTTP 协议采用的是「请求-应答」的模式,也就是客户端发起了请求,服务端才会返回响应,一来一回这样

由于 HTTP 是基于 TCP 传输协议实现的,客户端与服务端要进行 HTTP 通信前,需要先建立 TCP 连接,然后客户端发送 HTTP 请求,服务端收到后就返回响应,至此「请求-应答」的模式就完成了,随后就会释放 TCP 连接

如果每次请求都要经历这样的过程:建立 TCP -> 请求资源 -> 响应资源 -> 释放连接,那么此方式就是 HTTP 短连接。这样实在太累人了,一次连接只能请求一次资源。

能不能在第一个 HTTP 请求完后,先不断开 TCP 连接,让后续的 HTTP 请求继续使用此连接?

当然可以,HTTP 的Keep-Alive就是实现了这个功能,可以使用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,避免了连接建立和释放的开销,这个方法称为 HTTP 长连接。

HTTP 长连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态

http://www.jsqmd.com/news/343958/

相关文章:

  • 联机手写签名识别技术通过采集书写时的压力、速度、轨迹等动态特征,构建独特的“行为指纹“
  • THine发布无光学DSP芯片组,赋能下一代Scale-Up型AI网络“Slow and Wide”互联
  • Total Economic Impact研究显示:Yubico实现265%投资回报率,并将可控数据泄露风险相关的暴露成本降低99.99%
  • 2026中国AI招聘系统选型指南:从“效率工具”到“智能体协同”的跃迁
  • log-lottery:不只是炫酷的3D抽奖,更是学习前端开发的最佳实践
  • 2026年靠谱的高纯度划片切割液用户口碑认可参考(高评价) - 行业平台推荐
  • 分布式系统:时钟和全局状态
  • 2026年质量好的热镀锌楼承板/工业厂房楼承板厂家怎么选 - 行业平台推荐
  • 放弃传统积分!绿色积分凭“单边上扬”,让积分越用越有价值
  • 2026年开年,成都电线电缆品牌权威推荐与深度解析 - 2026年企业推荐榜
  • 2026年RHCE考试大纲及培训要点
  • 超实用 Guluscan 工具:HTTPS 抓包 + APP 安全分析 漏洞检测一步到位
  • MathCAD许可证优化策略分析
  • Redis存储(5)Redis五大数据类型之 List 和 Set。
  • 2026年家装电线工厂综合实力与报价深度解析 - 2026年企业推荐榜
  • 2026年高压电缆制造厂商综合评测与选型指南 - 2026年企业推荐榜
  • 无穿戴动捕:无感交互时代的技术革新与行业赋能
  • AI Agent失控风险:OpenClaw从提示词注入到skill投毒
  • 小公司不能用 RabbitMQ?
  • 嵌入式C语言阶段复习——函数
  • 基于物理交互的具身智能决策框架设计
  • 具身智能视觉、触觉、力觉、听觉等信息如何实时对齐与融合?
  • Deepoc-M数学大模型赋能教育领域,破解中小机构与教学核心痛点
  • 实测 | FreeBuds 7i新版本默认音效,体验拉满!
  • 惠普5200LX打印机驱动下载方法:告别失效困扰,3大路径高效适配
  • Qoder+Skills,一个人一周完成开源官网重构
  • 年夜饭
  • 2026年靠谱的不锈钢楼承板/压型钢板楼承板高评分品牌推荐(畅销) - 行业平台推荐
  • 30分钟搞定 Ingress Nginx 到 Higress 迁移?AI 帮我干完了脏活累活
  • 云渲染会影响最终效果吗?一次把常见误解说清楚