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

计算机网络——不同版本的 HTTP 协议

介绍

  HTTP,即超文本传输协议(HyperText Transfer Protocol),是应用层的一个简单的请求-响应协议,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。本文将介绍 HTTP 协议各个版本。

HTTP/1.0

  HTTP/1.0 在客户端与服务器之间建立的是非持久连接,特点是一次 TCP 连接中,服务器只能发送一次相应报文
  举个例子,假设用户键入了一个 URL 为 www.hust.edu.cn/cs/home.index,该网页包含文本并引用了10 jpeg 图片。那么 HTTP/1.0 的传输模式如下所示。
在这里插入图片描述
  在这种情况下,客户端要获取 n n n 个 URL 对象,就必须先后建立 n n n 次 TCP 连接,效率十分低下。于是,许多浏览器同时打开多个并行的连接来改善性能,比如上面已经知道这 10 10 10 个 jpeg 对象的 URL 了,客户机很可能创建 10 10 10 个不同的套接字分别去请求这些图片。这样对对服务器端连接数的要求很高,降低了服务器的负载能力。

HTTP/1.1

  相比于 HTTP/1.0,HTTP/1.1 建立的是持久连接,即服务器在发送完响应报文后保持该连接一段时间,这段时间如果没有收到 HTTP 请求报文,那就断开连接。

持久连接分为流水线方式非流水线方式

  • 流水线方式:一个对象传输完成方能传输下一个。保证了响应报文的顺序到达,但是效率可能低一些。
  • 非流水线方式:可以一次性发送所有请求,然后慢慢接收响应报文。响应报文可能乱序到达。

  还是上面那个例子,正常情况下,客户端只需要建立一次 TCP 连接,即可收到该网页的的内容及其中的 10 10 10 个图像。

HTTP/2

  HTTP/1.1 存在的问题是:服务器接收到多个对象请求时,小对象会被排在前面的大对象阻塞——队首(HOL)阻塞,导致用户体验极差。采用多TCP连接并发可以规避这个问题,但是这样又回到了 HTTP/1.0。
在这里插入图片描述
  对此,HTTP/2 给出的解决方案是报文分帧,目的是努力减少多对象访问时的感知时延。
在这里插入图片描述

HTTP/3

  相比于 HTTP/2,HTTP/3 使用的运输层协议改为 UDP,并且在 HTTP 与 QUIC 协议(谷歌发明的新的应用层协议),具体可以参见这篇博客。
在这里插入图片描述

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

相关文章:

  • 使用 LLaMA-Factory 微调
  • vue2 虚拟DOM 和 真实DOM (概念、作用、Diff 算法)
  • GEOBench-VLM:专为地理空间任务设计的视觉-语言模型基准测试数据集
  • 说说Elasticsearch查询语句如何提升权重?
  • 2-2-18-9 QNX系统架构之文件系统(一)
  • Unity类银河战士恶魔城学习总结(P156 Audio Settings音频设置)
  • springboot vue 会员收银系统 (12)购物车关联服务人员 订单计算提成 开源
  • P3916 图的遍历(Tarjan缩点和反向建边)
  • Android13 允许桌面自动旋转
  • cocotb value cocotb—基础语法对照篇
  • 001-SpringBoot整合日志
  • 【Java基础面试题011】什么是Java中的自动装箱和拆箱?
  • ERROR in [eslint] Invalid Options ‘extensions‘ has been removed.
  • 消息传递神经网络(Message Passing Neural Networks, MPNN)
  • 常用图像变换方法
  • 从被动响应到主动帮助,ProActive Agent开启人机交互新篇章
  • 力扣hot100道【贪心算法后续解题方法心得】(三)
  • 工业齐套管理虚拟现实仿真模拟软件
  • ARP表、MAC表、路由表的区别和各自作用
  • Android 使用OpenGLES + MediaPlayer 获取视频截图
  • 浏览器的事件循环机制
  • Z2400032基于Java+Mysql+SSM的校园在线点餐系统的设计与实现 代码 论文
  • k8s使用的nfs作为sc。
  • linux下Qt程序部署教程
  • tp6 合成两个pdf文件(附加pdf或者替换pdf)
  • 工作:三菱PLC防止程序存储器爆满方法
  • jmeter 获取唯一全局变量及多线程读写的问题
  • 掌握 Spring Boot 中的缓存:技术和最佳实践
  • 动手学深度学习10.5. 多头注意力-笔记练习(PyTorch)
  • 13 设计模式之外观模式(家庭影院案例)