HTTP协议和HTTP1.01.12.0的区别

HTTP协议和HTTP1.0/1.1/2.0的区别

详细内容请关注我的博客地址

一、什么是HTTP协议

  • HTTP协议,全称超文本传输协议,属于网络结构OSI参考模型的“最上层”应用层,由请求与响应构成,是无状态的协议。

  • HTTP占用默认端口号为80,可承载在TLS和SSL之上,通过加密、认证的方式实现数据传输,即HTTPS协议,默认端口443

二、HTTP1.0,HTTP1.1,HTTP2.0的特性与区别

  • HTTP1.1使用长连接,有效减少三次握手的开销
  • HTTP1.1允许只发送header信息不携带body,此时如果服务器认为客户端拥有权限,就会向客户端发送100,客户端接收100hou再向服务器发送 body信息
  • HTTP1.0没有host域HTTTP1.1才开始支持
  • HTTP1.x的致命缺陷:
    • 协议规定客户端对同一域的并发连接只能由一个,而一个 页面至少需要加载40个资源
    • 线头阻塞(Head of line blocking)同一个连接中的请求,需要一个一个的收发,效率太低
    • 基于文本协议,请求与响应头信息非常大,无法进行压缩
    • 只能单向请求,即服务端只能返回客户端的指定请求
  • HTTP2.0的特点:使用了多路复用、HOPACK头压缩、流+二进制帧,流优先级等技术
  • HTTP2.0使用了多路复用技术,允许同时通过单一的HTTP/2连接发起请求-响应信息,是解决HTTP1.x并发问题HOLB线头问题的核心技术
  • HTTP协议和HTTP1.01.12.0的区别
  • HTTP2在原有HTTP基础上在应用层(HTTP2)和传输层(TCP/UDP)之间增加了二进制分帧层
  • HTTP2允许客户端发送请求后,服务端将所有相关文件一并返回,并加入浏览器缓存,减少请求次数
  • HTTP2带来的好处:
    • 更小的传输体积,更小甚至省略的头消息
    • 突破原有的TCP连接并发限制,使用一个TCP可实现多请求并发,减少了服务端的压力
    • 解决 HOLB 线头问题,慢的请求或者先发送的请求不会阻塞其他请求的返回
    • 结合CDN提供实时性更高,不会出现先发送的请求阻塞后面的请求
    • 数据优先级可控
    • 能在不中断TCP连接的情况下停止数据的发送

据优先级可控

  • 能在不中断TCP连接的情况下停止数据的发送