HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍-程序员宅基地

技术标签: 网络  http  JavaWeb  

HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍

HTTP 建立之初,是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。但随着CSS,Javascript的出现,以及移动互联时代的到来,我们不得不对HTTP进行不断地优化。

HTTP优化:
影响一个 HTTP 网络请求的因素主要有两个方面:带宽和延迟。
随着网络基础建设的完善,带宽因素已经不需要再考虑,仅需要考虑的就是延迟。延迟主要受三个方面影响:浏览器阻塞(HOL blocking), DNS查询(DNS Lookup),建立连接(Initial connection).

1 HTTP1.0及HTTPS
(1)HTTP1.0
  • 请求与响应支持 HTTP 头,响应含状态行,增加了状态码,
  • 支持 HEAD,POST 方法
  • 支持传输 HTML 文件以外其他类型的内容

HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT 的开销。因为同一个页面可能存在多个对象,所以非持久连接可能使一个页面的下载变得十分缓慢,而且这种 短连接增加了网络传输的负担。

注:
RTT(Round Trip Time):一个连接的往返时间,即数据发送时刻到接收到确认的时刻的差值;

(2)HTTP1.1
  • 支持长连接
  • 在HTTP1.0的基础上引入了更多的缓存控制策略。
  • 引入了请求范围设置,优化了带宽。
  • 在错误通知管理中新增了错误状态响应码。
  • 增加了Host头处理,可以传递主机名(hostname)。

缺点:
传输内容是明文,不够安全

(3)HTTPS
  • HTTPS运行在安全套接字协议(Secure Sockets Layer,SSL )或传输层安全协议(Transport Layer Security,TLS)之上,所有在TCP中传输的内容都需要经过加密。
  • 连接方式不同,HTTP的端口是80,HTTPS的端口是443.
  • HTTPS可以有效防止运营商劫持。

注:
SSL运行在TCP之上

(4)HTTP 1.x优化(SPDY)

SPDY 并不是新的一种协议,而是在 HTTP 之前做了一层会话层。为了达到减少页面加载时间的目标,SPDY 引入了一个新的二进制分帧数据层,以实现优先次序、最小化及消除不必要的网络延迟,目的是更有效地利用底层 TCP 连接。

  • 多路复用,为多路复用设立了请求优先级。
  • 对header部分进行了压缩。
  • 引入了HTTPS加密传输。
  • 客户端可以在缓存中取到之前请求的内容。

参考博客:HTTP的前世今生

2 HTTP2.0(SPDY的升级版)
  • HTTP2.0支持明文传输,而HTTP 1.X强制使用SSL/TLS加密传输。
  • 和HTTP 1.x使用的header压缩方法不同。
  • HTTP2.0 基于二进制格式进行解析,而HTTP 1.x基于文本格式进行解析。
  • 多路复用,HTTP1.1是多个请求串行化单线程处理,HTTP 2.0是并行执行,一个请求超时并不会影响其他请求。

HTTP2.0的多路复用提升了网页性能:

  • 在 HTTP1 中浏览器限制了同一个域名下的请求数量(Chrome下一般是六个),当在请求很多资源的时候,由于队头阻塞,当浏览器达到最大请求数量时,剩余的资源需等待当前的六个请求完成后才能发起请求。
  • HTTP2 中引入了多路复用的技术,这个技术可以只通过一个 TCP连接就可以传输所有的请求数据。多路复用可以绕过浏览器限制同一个域名下的请求数量的问题,进而提高了网页的性能。

注意:

  • 主流浏览器只支持基于TLS部署的HTTP2.0协议,所以要将网站升级为HTTP 2.0,就需要先升级为HTTPS。
  • HTTP 2.0完全兼容HTTP 1.x,所以对于部署了HTTP 2.0的网站可以自动向下兼容HTTP 1.X.

参考博客:HTTP1.0、HTTP1.1 和 HTTP2.0 的区别

3 HTTP 3.0 (QUIC)

QUIC (Quick UDP Internet Connections), 快速 UDP 互联网连接。
QUIC是基于UDP协议的。

两个主要特性:
(1)线头阻塞(HOL)问题的解决更为彻底:
基于TCP的HTTP/2,尽管从逻辑上来说,不同的流之间相互独立,不会相互影响,但在实际传输方面,数据还是要一帧一帧的发送和接收,一旦某一个流的数据有丢包,则同样会阻塞在它之后传输的流数据传输。而基于UDP的QUIC协议则可以更为彻底地解决这样的问题,让不同的流之间真正的实现相互独立传输,互不干扰。
(2)切换网络时的连接保持:
当前移动端的应用环境,用户的网络可能会经常切换,比如从办公室或家里出门,WiFi断开,网络切换为3G或4G。基于TCP的协议,由于切换网络之后,IP会改变,因而之前的连接不可能继续保持。而基于UDP的QUIC协议,则可以内建与TCP中不同的连接标识方法,从而在网络完成切换之后,恢复之前与服务器的连接

参考博客:
[1] QUIC协议浅析与HTTP/3.0
[2] HTTP3.0

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/glpghz/article/details/106063833

智能推荐

26SkypeForBusiness2015进阶篇--安装并更新CsDatabase-程序员宅基地

文章浏览阅读100次。6.3.6 安装并更新CsDatabase好了,打开Skype For Business命令行管理工具重启下前端服务看看是否能够成功启动,我这里直接重新启动服务器了 转载于:https://blog.51cto.com/winteragain/1703803..._skype for business 2015如何打累计更新

FPGA-HLS简介_hls verilog-程序员宅基地

文章浏览阅读492次。HLS编程环境入门_hls verilog

她在博士阶段破釜沉舟转换研究方向后,发表了32篇SCI-程序员宅基地

文章浏览阅读149次。点上方蓝字计算机视觉联盟获取更多干货在右上方···设为星标★,与你不见不散编辑:Sophia计算机视觉联盟 报道 |公众号CVLianMeng转载于 :中国石油大学她,大..._哈工大博士32篇sci

mysql安装出现应用程序无法正常启动(oxc000007b)的解决方案-程序员宅基地

文章浏览阅读5.1k次。原文:mysql安装出现应用程序无法正常启动(oxc000007b)的解决方案 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IUNIQUE/article/details/82864859 有时候安装m..._安装mysql时电脑出现此应用无法在你的电脑上运行怎么办

XenApp 5.0 如何管控U盘的映射一-程序员宅基地

文章浏览阅读43次。在XenApp5.0中,策略中并没有提供对USB设备的映射。不过官方提供了如下方案:新建如下键值:OnXenApp32-bitEditionHKEY_LOCAL_MACHINE\Software\Citrix\Policies\DisableUSBDriveRedirectionOnXenApp64-bitEditionHKEY_LOCAL_MACHINE\So..._citrix xenapp 5.0映射客户端优盘

python 计算协方差矩阵_opencv2学习:计算协方差矩阵-程序员宅基地

文章浏览阅读538次。图像的高级处理中,协方差矩阵计算是必不可少的,但opencv关于这方面的资料却相当少。首先,利用matlab计算一下,便于比较:>> data=[1,2,3;10,20,30]data =1 2 310 20 30>> convar=cov(data)convar =40.5000 81.0000 121.500081.0000 162...._图像的协方差矩阵计算过程

随便推点

微信小程序云开发项目实战进阶 - 诗词大全&成语接龙-程序员宅基地

文章浏览阅读698次,点赞2次,收藏3次。1. 小程序功能古诗词大全成语大全成语接龙诗词飞花令诗词分享、收藏诗词接龙唐诗宋词起名字百家姓猜谜语2. 小程序地址https://github.com/caochangkui/miniprogram-project3. 小程序预览:4. 部分截图首页列表页详情页 分享页唐诗宋词成语接龙5. 项目结构.├── README.md├──..._成语接龙云开发数据库

微软特权访问管理-程序员宅基地

文章浏览阅读452次。2018-2022是私有云混合云在中国最火热的时代,私有云将在中国从摸索走向成熟阶段,随着云技术的火热,下一个企业必须要思考的将是信息安全的问题,现在企业都在导入云计算技术,建置更多的信息应用系统以从中获取信息化带来的价值。那么随着带来的一个隐患就是,管理员要管理的基础架构和应用系统数量越来越多,这时候管理员账户就变的很重要了,如何保证管理员账户能够安全,如果保证管理员账户的..._-membertimetolive

阿里巴巴 Apache Dubbo 布道师谈 Service Mesh-程序员宅基地

文章浏览阅读90次。“Service Mesh要解决分布式架构下如何集成的问题,同时它又是云原生的核心,Dubbo Mesh正在做这方面的实践。--- 阿里巴巴Apache Dubbo布道师 吕仁琦”本文整理自2018杭州云栖大会首届开发者生态峰会吕仁琦的分享。- 公众号后台发送“首届开发者生态峰会”,获取峰会PPT。| Service Mesh 和 Du..._apache dubbo 与 alibaba dubobo site:blog.csdn.net

偏微分方程数值解的matlab程序,偏微分方程数值解法MATLAB源码-程序员宅基地

文章浏览阅读1.3k次。《偏微分方程数值解法MATLAB源码》由会员分享,可在线阅读,更多相关《偏微分方程数值解法MATLAB源码(27页珍藏版)》请在人人文库网上搜索。1、源码【更新完毕】偏微分方程数值解法的MATLAB原创 说明:由于偏微分的程序都比较长,比其他的算法稍复杂一些,所以另开一贴,专门上传偏微分的程序 谢谢大家的支持! 其他的数值算法见:./Announce/Announce.asp?BoardID=20..._在matlab中使用crank-nicolson 方法求解偏微分方程

7、Flink 流计算处理和批处理平台_批处理和流计算-程序员宅基地

文章浏览阅读6.9k次,点赞5次,收藏17次。一、Flink 基本概念Flink 是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink 与 Storm 类似,属于事件驱动型实时流系统。所谓说事件驱动型指的就是一个应用提交之后,除非明确的指定停止,否则,该业务会一直持续的运行,它的执行条件就是触发了某一个事件,比如在淘宝中,我..._批处理和流计算

硬盘分区表错误与解决办法_调整分区容量时出现错误-程序员宅基地

文章浏览阅读3.6k次。在Windows2000/XP中,我们一般会用到故障恢复控制台集成的一些增强命令,比如Fixmbr用于修复和替换指定驱动器的主引导记录、Fixboot用于修复知道驱动器的引导扇区、Diskpart能够增加或者删除硬盘中的分区、Expand可以从指定的CAB源文件中提取出丢失的文件、Listsvc可以创建一个服务列表并显示出服务当前的启动状态、Disable和Enable分别用于禁止和允许一项服务或者硬件设备等等,而且输入“help”命令可以查看到所有的控制命令以及命令的详细解释。......_调整分区容量时出现错误

推荐文章

热门文章

相关标签