HTTP 2.0 详细介绍

HTTP 2.0 详细介绍

什么是HTTP/2

HTTP/2是用于安全传输万维网内容的应用层协议。与其前身HTTP/1.1有很多相似之处,但它们有很多重要的不同之处。HTTP/2旨在使Web页面加载更快,同时提供更好的安全性和代码复杂性,而且还带来了一些新功能。

HTTP/2的优点

  1. 多路复用
    HTTP/2采用二进制分帧,一个TCP连接可以传输多个二进制消息(请求/响应)。这使得连接利用率更高,在同一条连接上的多个请求可以并行进行(异步传输),不需要等待其它请求处理完成。此外,HTTP/2中还有一个优化机制:服务器可以对已经发出的响应与客户端未来请求的优先级进行关联,从而保证一些关键资源能够优先处理。

  2. 头部压缩
    HTTP/2使用一种称为HPACK的新的头部压缩算法。 在HTTP/1.x中,头部信息是纯文本,需要消耗大量的带宽,而且重复出现的信息不必每次都重复发送。 HTTP/2利用HPACK算法在客户端和服务器之间减少网络流量,缩短加载时间。

  3. 服务器推送
    HTTP/2引入了服务器推送的概念,服务器可以在响应客户端之前“预加载”资源,进一步加快页面渲染速度,而且不需要客户端明确要求。例如,如果客户端请求了一个HTML文档,服务器可以发送所请求的文档及其所链接到的资源,以便在客户端接收响应按钮之前加载这些资源。

  4. 更好的安全性
    HTTP/2 对隐私和安全保护更加重视,引入了服务器证书证明机制,标准化了WhatsApp等应用程序使用的TLS吊销警告格式。

HTTP/2的示例

HTTP/1.1

GET / HTTP/1.1\r\n
Host: www.example.com\r\n
Connection: keep-alive\r\n
Cache-Control: max-age=0\r\n
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n
Referer: https://www.example.com/\r\n
Accept-Encoding: gzip, deflate, sdch\r\n
Accept-Language: en-US,en;q=0.8\r\n
\r\n

HTTP/2

PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n
GET / HTTP/2.0\r\n
Host: www.example.com\r\n
Connection: keep-alive\r\n
Cache-Control: max-age=0\r\n
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n
Referer: https://www.example.com/\r\n
Accept-Encoding: gzip, deflate, sdch\r\n
Accept-Language: en-US,en;q=0.8\r\n
\r\n

从上面两个示例可以看出,如果对于同一个请求,在HTTP/1.1中需要发送8行纯文本头部信息,而在HTTP/2中,只需发送一行头部信息即可。这是由于HTTP/2采用了头部压缩算法。此外,在HTTP/2中,服务器可以在响应客户端之前“预加载”资源,进一步加快页面渲染速度,在HTTP/1.1中则需要客户端明确要求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:HTTP 2.0 详细介绍 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C# 使用Aspose.Cells 导出Excel的步骤及问题记录

    下面是详细讲解“C# 使用Aspose.Cells 导出Excel的步骤及问题记录”的完整攻略。 1. Aspose.Cells 是什么 Aspose.Cells 是一个 .NET 组件库,用于处理 Microsoft Excel 文件,包括创建、读取、修改和导出 Excel 文件。Aspose.Cells 提供了广泛的 API 功能,可以通过代码轻松地将 …

    C# 2023年5月31日
    00
  • 枚举的用法详细总结

    枚举的用法详细总结 枚举(Enumeration)是一种常用的数据类型,它可以定义一些有限的取值范围。枚举常用于程序中对一些离散的状态或类型的定义,也方便了程序的维护和理解。在本文中,我们将介绍枚举的定义、初始化、遍历以及一些常见的用法。 定义枚举 定义枚举可以使用C++11引入的关键字enum class,其语法如下: enum class 枚举名 { 枚…

    C# 2023年6月8日
    00
  • 关于C#中使用Oracle存储过程返回结果集的问题

    下面是关于C#中使用Oracle存储过程返回结果集的完整攻略: 1. 确认Oracle版本和驱动版本 首先需要确认你所使用的Oracle版本和ODP.NET驱动版本是否匹配,可以从Oracle官网下载适合于自己Oracle版本的ODP.NET驱动,然后在项目中引用。 2. 编写Oracle存储过程 在Oracle中编写存储过程需要使用PL/SQL语言,在存储…

    C# 2023年5月15日
    00
  • ASP.Net Core基于EF6、Unitwork、Autofac实现Repository模式

    这是一篇关于在 ASP.Net Core 中应用 Repository 模式的攻略。我们将使用 Entity Framework 6,以及 UnitOfWork 模式和 Autofac 依赖注入框架来实现它。下面将是具体的步骤: 准备工作 在继续之前,我们需要确保在系统中安装了以下软件: Visual Studio 2017 及以上版本 .NET Core …

    C# 2023年6月3日
    00
  • ASP.NET 实现验证码以及刷新验证码的小例子

    ASP.NET 是一种基于微软 .NET 框架的Web开发技术,其中验证功能是Web开发过程中非常重要的一部分,其作用是防止恶意攻击和不良行为。而验证码(Captcha)就是一种常见的验证方式,通过输出一些图形内容或者文字内容让用户识别并输入,从而检查用户身份。 ASP.NET 的验证码实现步骤: 1.在后端代码中生成随机数,并保存到Session中: st…

    C# 2023年5月31日
    00
  • C#中File类的文件操作方法详解

    C#语言中提供了File类,可以用于文件的基本操作,包括创建、读取、写入、复制、移动和删除等功能。本文将对File类进行详细讲解,并提供多条示例说明。 创建文件 创建文件最基本的方式是使用File类的Create方法。该方法将创建指定路径的文件,如果文件已经存在,则覆盖原有文件。 File.Create("path/to/file.txt&quot…

    C# 2023年5月31日
    00
  • C#实现在网页中根据url截图并输出到网页的方法

    下面就来详细讲解如何使用C#实现在网页中根据URL截图并输出到网页的方法。 步骤一:安装NuGet包 首先,我们需要在Visual Studio中安装一个名为“Selenium.WebDriver”的NuGet包。这个包提供了许多操作浏览器窗口的功能,可以用来实现我们的目标。 步骤二:编写代码 接下来,我们需要编写代码来实现在网页中根据URL截图并输出到网页…

    C# 2023年6月7日
    00
  • Netcore Webapi返回数据的三种方式示例

    .Net Core WebAPI返回数据的三种方式示例 在.Net Core WebAPI中,有多种方式可以返回数据给客户端。本攻略将详细介绍.Net Core WebAPI返回数据的三种方式,并提供两个示例说明。 1. 返回字符串 在.Net Core WebAPI中,可以使用字符串来返回数据给客户端。可以按照以下步骤操作: 在Controller类中,添…

    C# 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部