HTTP2和HTTPS来不来了解一下?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP2和HTTPS来不来了解一下?相关的知识,希望对你有一定的参考价值。

参考技术A

HTTP博文回顾:

本文 力求简单讲清每个知识点 ,希望大家看完能有所收获

最近在看博客的时候,发现有的面试题已经考HTTP/2了,于是我就顺着去了解一下。

到现在为止,HTTP协议已经有三个版本了:

下面就简单聊聊他们三者的区别,以及整理一些必要的额外知识点。

HTTP1.0和HTTP1.1最主要的区别就是:

在HTTP1.0默认是短连接:

简单来说就是: 每次与服务器交互,都需要新开一个连接

试想一下:请求一张图片,新开一个连接,请求一个CSS文件,新开一个连接,请求一个JS文件,新开一个连接。HTTP协议是基于TCP的,TCP每次都要经过 三次握手,四次挥手,慢启动 ...这都需要去消耗我们非常多的资源的!

在HTTP1.1中默认就使用持久化连接来解决: 建立一次连接,多次请求均由这个连接完成 !(如果阻塞了,还是会开新的TCP连接的)

相对于持久化连接还有另外比较重要的改动:

参考资料:

在说HTTP2之前,不如先直观比较一下HTTP2和HTTP1.1的区别:

上面也已经说了,HTTP 1.1提出了管线化(pipelining)理论,但是仅仅是限于理论的阶段上,这个功能默认还是关闭了的。

管线化(pipelining)和非管线化的 区别

HTTP2与HTTP1.1最重要的区别就是 解决了线头阻塞的 问题!其中最重要的改动是: 多路复用 (Multiplexing)

使用了HTTP2可能是这样子的:

HTTP2所有性能增强的核心在于 新的二进制分帧层 (不再以文本格式来传输了),它定义了如何封装http消息并在客户端与服务器之间传输。

看上去协议的格式和HTTP1.x完全不同了, 实际上HTTP2并没有改变HTTP1.x的语义 ,只是把原来HTTP1.x的header和body部分用 frame重新封装了一层 而已

HTTP2连接上 传输的每个帧都关联到一个“流” 。流是一个独立的,双向的帧序列可以通过一个HTTP2的连接在服务端与客户端之间不断的交换数据。

实际上运输时:

HTTP2还有一些比较重要的改动:

HTTP1.1新改动:

HTTP2新改动:

参考资料:

之前在面试的时候被问到了HTTPS,SSL这样的知识点,也没答上来,这里也简单整理一下。

首先还是来解释一下基础的东东:

3y的通讯之路:

对于数字签名和CA认证还是不太了解参考一下

回到我们的HTTPS,HTTPS其实就是在HTTP协议下多加了一层SSL协议(ps:现在都用TLS协议了)

HTTPS采用的是 混合方式加密

过程是这样子的:

所以相比HTTP,HTTPS 传输更加安全

参考资料:

我只是在学习的过程中,把自己遇到的问题写出来,整理出来,希望可以对大家有帮助。如果文章有错的地方,希望大家可以在评论区指正,一起学习交流~

参考资料:

文章的目录导航

以上是关于HTTP2和HTTPS来不来了解一下?的主要内容,如果未能解决你的问题,请参考以下文章

HTTP2和HTTPS来不来了解一下?

运维童鞋:HTTP2 和 HTTPS 不来多了解下麽??

整理网络编程篇

一文了解阿里云CDN HTTP2.0

性能测试工具WebBenchmark,你不来了解下?

线程池你真不来了解一下吗?