计算机网络:基于HTTP的功能追加协议,HTTP1.1与HTTP2.0

      最后更新:2022-07-29 12:26:48 手机定位技术交流文章

      计算机网络:基于HTTP、HTTP1.1和HTTP2.0的附加协议

      虽然HTTP协议非常简单和方便,但随着时代的发展,抓住肘部的功能的疲劳逐渐被突出。接下来,让我们看看基于HTTP的新功能的协议,HTTP1.1和HTTP2.在0之间更改,以及HTTPS和HTTP之间的区别

      基于HTTP的协议

      ​ 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求响应协议,它通常在TCP上运行。它指定客户端可以向服务器发送哪些消息和它接收哪些响应。即,在建立HTTP标准规范时,制造商主要希望使用HTTP作为传输HTML文档的协议。随着时代的发展,网络的使用更加多样化,例如,发展成网上购物网站,SNS(Social Networking Service,社交网络服务),企业或组织内部的各种管理工具,等等。

      这些网站的最受欢迎的功能可以通过Web应用程序和脚本程序实现。 即使这些功能满足了要求,但由于HTTP协议的限制和它们本身的性能的限制,它们不一定是最佳的性能。

      ​ 但又由于基于HTTP的Web服务器的使用环境已遍布全球,因此无法完全抛弃HTTP。故出现了一些新协议规则是基于HTTP的,并在此基础上添加了新的功能。

      SPDY消除HTTP瓶颈

      SPDY(来自瑞典,用快速的声音说,意思是更快)是Google在2010年发布的基于传输控制协议(TCP)的应用层协议,开发团队正在敦促SPY成为正式标准(现在是互联网草案)。SPDY的开发目标是解决HTTP在这一时代的开发中所面临的性能瓶颈,减少网页的负载时间(50%)。

      • SPDY - The Chromium Projects

      ​ https://www.chromium.org/spdy/

      HTTP的瓶颈

      在Facebook和Twitter等社交网站上,几乎可以实时观察数以千计的用户发布的内容,而当数以百计或数以万计的用户发布内容时,大量内容更新会在很短的时间里发生,以便保存新的内容。

      ​ 这是就出现了一个问题,为了尽可能实时地显示这些更新的内容,服务器上一有内容更新,就需要直接把那些内容反馈到客户端的界面上,但HTTP却无法妥善地处理好这项任务。

      如果我们使用HTTP协议检测服务器上是否有内容更新,则必须经常从客户端到服务器端确认,但如果服务器上没有内容更新,则会有无意义的通信。

      目前HTTP协议遇到的瓶颈是:

      • 连接只能发送一个请求(单路径连接,低性能请求)。
      • 请求只能从客户端开始。 客户端不能收到其他指令,而不是响应(HTTP只允许客户端发起请求)。
      • 第一个请求/响应是没有压缩的。 初始信息越大,延迟越大。
      • 发送一个长头条。 每当同一头条被发送到另一个头条时,就会有更多的浪费。
      • 数据压缩格式可以任意选择。非强制压缩发送。

      Ajax的解决方法

      ​ Ajax(Asynchronous JavaScript and XML,非同步JavaScript和XML技术是使用JavaScript和DOM(Document Object Model)的有效方法。文档对象模型)操作,为了实现本地网页置换的负载非同步通信手段.Ajax,与以前的同步通信相比,因为它只更新部分页面,因此, 响应 中 传输 的 数据 数量 减少 。

      AJAX最大的优点是它可以与服务器交换数据并更新部分页面内容,而不重载整个页面。

      AJAX不需要任何浏览器插件,但要求用户允许JavaScript在浏览器上执行。

      Ajax的核心技术是API,叫做XMLHttpRequest,调用JavaScript脚本语言可以与服务器进行HTTP通信。借由这种手段,您可以从完成的网页启动请求,只更新局部页面。

      通过使用Ajax来实时从服务器获取内容,可以生成大量的请求。 此外,Ajax没有解决HTTP本身的问题。

      注意: AJAX不是新的编程语言,而是使用现有标准的新方法。

      如何解决彗星

      ​ 一旦服务器端有内容更新了,Comet不会让请求等待,而是直接给客户端返回响应。这是一种通过延迟应答,模拟实现服务器向客户端推送(Server Push)的功能。

      ​ 通常,服务器收到请求,处理完成后,答复将立即返回,但为了实现传送功能,服务器首先将响应置于暂停状态,当内容在服务器端更新时,再返回该响应。因此,一旦服务器结束时,你可以立即向客户反馈。即,这是基于HTTP长连接的,不需要在浏览器端插入的“服务器传送”技术叫做“Comet”。

      ​ 内容上虽然可以做到实时更新,但为了保留响应,一次连接的持续时间也变长了。期间,为了维持连接会消耗更多的资源。另外,Comet也仍未解决HTTP协议本身存在的问题。

      Comet的优缺点

      • 优点:良好的实时(消息延迟小);良好的性能(可以支持大量的用户)
      • 缺点: 长期占用连接, 失去无状态高巧合的特点.

      SPDY的目标

      ​ 陆续出现的Ajax和Comet等提高易用性的技术,一定程度上使HTTP得到了改善,但HTTP协议本身的限制也令人束手无策。为进行根本性的改善,需要有一些协议层面上的改动。

      SPDY设计及功能

      SPDY不完全重写HTTP协议,而是在TCP/IP应用程序层和传输层之间进行新添加层的操作。 同时,考虑到安全问题, SPDY指定了在通信中使用SSL。

      SPDY以对话层的形式添加,以控制数据流,但仍使用HTTP来建立通信连接。 因此,HTTP方法如GET和 POST、cookie和HTTP消息可以使用。

      在这里插入图片描述

      SPDY协议的优点
      1. 多路复用 请求优化
      2. 支持服务器推送技术
      3. SPDY压缩HTTP头
      4. 强制性SSL传输协议

      使用SPDY,HTTP协议还获得下列功能。

      • 多路复用流

      ​ 通过单一的TCP连接,可以无限制处理多个HTTP请求。所有请求的处理都在一条TCP连接上完成,因此TCP的处理效率得到提高。

      • 赋予请求优先级

      SPDY不仅可以无限制地同时处理请求,而且可以将优先次序分配给单一请求,这主要是解决发送多个请求时由于低带宽而产生缓慢响应的问题。

      • 压缩HTTP首部

      压缩HTTP请求和响应的第一个部分,减少通过通信生成的包和发送的字节数量,从而节省额外数据传输带来的等待时间和带宽

      • 推送功能

      支持服务器主动向客户端发送数据的能力,允许服务器直接发送数据而不等待客户端的请求。

      • 服务器提示功能

      服务器可以主动提示客户端请求所需的资源。 由于在客户端发现资源之前可以知道该资源的存在,在资源缓存时可以避免发送不必要的请求等。

      HTTP1.1和HTTP2.0的区别

      目前主流的HTTP/1.Standard1,自199年的RFC 2616发布以来,没有进一步修改。负责互联网技术标准的IETF(Internet Engineering Task Force,互联网工程工作队)设立httpbis工作组,它的目标是推进HTTP的下一代-HTTP/2。 标准化于2014年11月实现。

      http2.0是下一代安全高效的HTTP传输协议。安全是基于 https 协议的 http2.0,它是有效的,因为它通过二进制帧传输数据。正因为这些特性,http2.0协议也被越来越多的网站支持。

      HTTP2.0:SPDY升级

      ​ HTTP2.0可以说是SPDY的升级版(其实原本也是基于SPDY设计的),但是,HTTP2.0 跟 SPDY 仍有不同的地方

      HTTP2.0和SPDY之间的区别:

      1. HTTP2.0支持显式HTTP传输,而SPDY则需要HTTPS
      2. HTTP2.0消息标题压缩算法使用HPACK代替SPDY DEFLATE

      HTTP2.0的特征

      二进制分帧

      在HTTP2中,在应用程序层(HTTP2)中,在传输层(TCP或UDP)之间添加一个层:一个二进制帧层。在二进制分帧层中,HTTP/2.0将所有传输的信息分成较小的消息和帧,编码是二进制格式。

      多路复用

      在HTTP2中,一旦建立TCP连接请求,随后的请求被发送到流中.每个stream的基本组成单位是frame(二进制帧)。客户端和服务器可以将HTTP消息分解为独立的帧,然后乱序发送,最后, 他们又聚在另一端.

      header压缩

      ​ HTTP1.1的header带有大量信息,而且每次都要重复发送,HTTP2.0使用HPACK头部压缩算法对header进行压缩。

      服务端推送(server push)

      与SPDY一样,HTTP2.0也有服务器推力功能。

      HTTPS和HTTP之间的一些差异

      HTTPS不是应用程序层的新协议,只有HTTP通信接口被SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议所取代。

      ​ 通常来说,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信。简而言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP。

      ​ 在采用SSL后,HTTP就拥有了HTTPS的加密,证书和完整性保护这些功能.

      在这里插入图片描述

      相关区别:

      • HTTPS协议要求CA申请证书,通常是几份免费证书,还有费用。
      • HTTP协议运行在TCP上,所有传输内容都是写的,HTTPPS运行在SSL/TLS上,SSL/TLS运行在TCP上,所有传输内容都是加密的。
      • HTTP和HTTPPS使用完全不同的连接方法和不同的端口,前者80和后者443。
      • HTTPS可以有效地防止操作者劫持,解决劫持的主要问题。

      HTTPS的缺点:

      • 与HTTP相比,网络负载可以慢2到100倍
      • 加密通信消耗更多的CPU和内存资源

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/30779.html

          热门文章

          文章分类