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日

相关文章

  • Delphi中使用ISuperObject解析Json数据的实现代码

    让我来详细讲解一下“Delphi中使用ISuperObject解析Json数据的实现代码”的完整攻略吧。 什么是ISuperObject 在介绍如何使用ISuperObject解析Json数据之前,我们先来了解一下ISuperObject是什么。ISuperObject是Delphi语言中一款轻量级的Json解析工具,它不仅易于使用,而且解析速度非常快,目前…

    C# 2023年5月31日
    00
  • C# 函数返回多个值的方法详情

    下面我给你讲解一下C#函数返回多个值的方法详情: 1. 使用out关键字 使用out关键字是一个简单的方式,可以让函数返回多个值。out参数必须在方法内部赋值,否则编译器会报错。下面是一个返回三个整数的函数示例: public void GetValues(out int val1, out int val2, out int val3) { val1 = …

    C# 2023年5月15日
    00
  • C# Dictionary和SortedDictionary的简介

    C# Dictionary和SortedDictionary的简介 C#中的Dictionary和SortedDictionary都是用来存储键值对的数据结构,不同之处在于它们对数据的存储方式不同。 Dictionary Dictionary是一个散列表,使用哈希表存储键值对。在Dictionary中,键值对的键必须是唯一的,而值可以重复。下面是一个创建Di…

    C# 2023年6月7日
    00
  • C#使用RenderControl将GridView控件导出到EXCEL的方法

    下面是详细讲解“C#使用RenderControl将GridView控件导出到EXCEL的方法”的完整攻略。 第一步:引用命名空间 在C#代码中,使用RenderControl方法需要引用两个命名空间:System.IO和System.Web.UI。代码示例: using System.IO; using System.Web.UI; 第二步:编写导出方法 …

    C# 2023年5月15日
    00
  • C# 扩展方法详解

    C# 扩展方法详解 什么是扩展方法 C# 中的扩展方法是一种特殊的静态方法,它可以为已存在的类或结构体类型添加新的方法,而无需继承或修改原始类型。 通过扩展方法,可以使已经存在的类型具有新的行为和功能,这个过程不需要访问原始类的源代码,也不需要使用继承或接口实现。 扩展方法的语法 扩展方法使得我们可以给已经存在的类型添加额外的方法, 而不需要修改源代码, 具…

    C# 2023年6月1日
    00
  • Ajax实现评论中顶和踩功能的实例代码

    下面是Ajax实现评论中顶和踩功能的完整攻略。 1. 实现思路 实现评论中顶和踩功能,需要使用 Ajax 技术,通过向服务器端发送异步请求,实现对数据库中的数据进行增、删、改的操作。 一般而言,实现评论中顶和踩功能的流程如下: 点击“顶”或“踩”按钮; 发送 Ajax 请求到服务器端; 服务器端接收请求,根据请求的类型,在数据库中进行相应的操作; 服务器端将…

    C# 2023年6月1日
    00
  • 详解如何在ASP.NET Core中编写高效的控制器

    如何在ASP.NET Core中编写高效的控制器 在ASP.NET Core应用程序中,控制器是处理HTTP请求的核心组件。编写高效的控制器可以提高应用程序的性能和响应速度。本攻略将介绍如何在ASP.NET Core中编写高效的控制器。 步骤 以下是在ASP.NET Core中编写高效的控制器的步骤: 使用依赖注入。 在ASP.NET Core应用程序中,我…

    C# 2023年5月17日
    00
  • C# File.WriteAllText(string path, string contents):将指定文本内容写入文件

    当你需要将一段文本内容写入一个文件中时,可以使用 File.WriteAllText(string path, string contents) 方法。该方法将指定的文件路径和要写入的字符串作为参数,将字符串写入指定的文件中,覆盖原有的文件内容。如果文件不存在,则会被创建。 该方法的语法如下: public static void WriteAllText(…

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