首页 > Web开发 > 详细

http1.0 http1.1 http2.0

时间:2021-09-07 05:40:58      阅读:19      评论:0      收藏:0      [点我收藏+]

http 超文本传输协议

http 协议是基于Tcp协议的;

影响一个http请求的因素主要有两个:带宽、延迟;

  1 带宽:

  2 延迟:1、DNS查询:当发起一个请求时,要先建立tcp连接;要建立Tcp连接必须知道服务器Ip地址;通过DNS查询(DNS系统)对URL中域名进行解析;可以通过使用

        DNS缓存来减少解析时间;

      2 、浏览器阻塞:浏览器对于同一个域名·,同时只能有4个连接(TCP通道);浏览器不同,限制也不一样;超过限制;后续请求将会被阻塞;

        这也是为啥同一站点有多个静态资源CDN域名的原因;变相解决了一个域名请求限制的问题;http1.0

      3、建立连接(TCP):建立连接是需要三次握手的,费时;

 

http1.0和http1.1区别;

  1   缓存处理:http1.0中在第一次响应头header中增加了Expriess、last-modified(if-modified-since)来处理缓存;htpp1.1中新增了Etags(if-none -match)

来处理缓存;

  2   Host头处理:在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。

  3 长连接:http1.1中一个tcp通过   在HTTP1.1中默认开启Connection: keep-alive,在一个连接中可以串行方式的传递多个请求、响应;来减少建立连接和关闭连接带来的延迟;

但是会存在线头阻塞问题,即如果上一个请求超时;下一个请求也会一直等待;

 

https 和 http区别:

  http运行在tcp之上的;所有传输的内容是都是明文;https运行在SSL/TSL之上的;而SSL/TSL是运行在TCP之上的;所有传输内容都是密文的;

  两者采用的是不一样的连接方式;端口也不一样;http是80;https是433;

  https需要申请CA证书;付费;

http2.0;

  多路复用:http2.0新增多路复用功能;指一个连接(tcp通道)可以并行发起多个请求;

  请求优先级:给重要的请求设置较高的优先级;比如加载首页内容;先是首页内容的请求,然后是静态资源的加载;js文件等;

  header压缩:http1.1中很多header都是重复的;

  服务端推送:就是在请求一些文件时,在响应时,将一些相关文件一并推送出去;这样就不用再次请求相关文件;直接缓存读取;

      服务端推送能把客户端所需要的资源伴随着index.html一起发送到客户端,省去了客户端重复请求的步骤。正因为没有发起请求,建立连接等操作,所以静态资源通

      过服务端推送的方式可以极大地提升速度。

http2.0的多路复用补充:

  tcp连接存在慢启动的;当建立连接之初;数据传输是缓慢的,存在自我调节的一种功能;当时间变长;相当于确定这个通道稳固了;就开始快速的传递数据;

但是一旦通道销毁;断开连接;下一个请求开始;又会经历慢启动的过程;费时;http2.0的多路复用则解决了这个问题

 

注意:

  http2.0 是可以支持明文传输的;也就是不加SSL/TSL;但是现在主流浏览器chrome,火狐等只支持基于TSL部署的http2.0协议;所以要升级到http2.0;还得先进行TSL部署;才会有好的兼容性

 

  

  

http1.0 http1.1 http2.0

原文:https://www.cnblogs.com/chen-da-da/p/15229472.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!