HTTP2和HTTPS来不来了解一下? (2)

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

HTTP2和HTTPS来不来了解一下?

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

HTTP2和HTTPS来不来了解一下?

实际上运输时:

HTTP2和HTTPS来不来了解一下?

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

使用HPACK对HTTP/2头部压缩

服务器推送

HTTP2推送资料:https://segmentfault.com/a/1190000015773338

流量控制

针对传输中的进行控制(TCP默认的粒度是针对连接)

流优先级(Stream Priority)它被用来告诉对端哪个流更重要

2.2HTTP2总结

HTTP1.1新改动:

持久连接

请求管道化

增加缓存处理(新的字段如cache-control)

增加Host字段、支持断点传输等

HTTP2新改动:

二进制分帧

多路复用

头部压缩

服务器推送

参考资料:

HTTP2 GitBook电子书(中文版):https://legacy.gitbook.com/book/ye11ow/http2-explained/details

HTTP/2.0 相比1.0有哪些重大改进?https://www.zhihu.com/question/34074946

HTTP/2 新特性浅析:https://segmentfault.com/a/1190000002765886

HTTP2学习资料:https://imququ.com/post/http2-resource.html

HTTP2简介和基于HTTP2的Web优化:

http2原理入门:https://blog.qingf.me/?p=600

HTTP/2 对现在的网页访问,有什么大的优化呢?体现在什么地方?https://www.zhihu.com/question/24774343/answer/96586977

HTTP/2笔记之流和多路复用:

2.3HTTPS再次回顾

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

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

对称加密:

加密和解密都是用同一个密钥

非对称加密:

加密用公开的密钥,解密用私钥

(私钥只有自己知道,公开的密钥大家都知道)

数字签名:

验证传输的内容是对方发送的数据

发送的数据没有被篡改过

数字证书(Certificate Authority)简称CA

认证机构证明是真实的服务器发送的数据

3y的通讯之路:

远古时代:3y和女朋友聊天传输数据之间没有任何的加密,直接传输

内容被看得一清二楚,毫无隐私可言

上古时期:使用对称加密的方式来保证传输的数据只有两个人知道

此时有个问题:密钥不能通过网络传输(因为没有加密之前,都是不安全的),所以3y和女朋友先约见面一次,告诉对方密码是多少,再对话聊天。

中古时期:3y不单单要跟女朋友聊天,还要跟爸妈聊天的哇(同样不想泄漏了自己的通讯信息)。那有那么多人,难道每一次都要约来见面一次吗?(说明维护多个对称密钥是麻烦的!)--->所以用到了非对称加密

3y自己保留一份密码,独一无二的(私钥)。告诉3y女朋友,爸妈一份密码(这份密码是公开的,谁都可以拿--->公钥)。让他们给我发消息之前,先用那份我告诉他们的密码加密一下,再发送给我。我收到信息之后,用自己独一无二的私钥解密就可以了!

近代:此时又出现一个问题:虽然别人不知道私钥是什么,拿不到你原始传输的数据,但是可以拿到加密后的数据,他们可以改掉某部分的数据再发送给服务器,这样服务器拿到的数据就不是完整的了。

3y女朋友给3y发了一条信息”3y我喜欢你“,然后用3y给的公钥加密,发给3y了。此时不怀好意的人截取到这条加密的信息,他破解不了原信息。但是他可以修改加密后的数据再传给3y。可能3y拿到收到的数据就是”3y你今晚跪键盘吧“

现代:拿到的数据可能被篡改了,我们可以使用数字签名来解决被篡改的问题。数字签名其实也可以看做是非对称加密的手段一种,具体是这样的:得到原信息hash值,用私钥对hash值加密,另一端公钥解密,最后比对hash值是否变了。如果变了就说明被篡改了。(一端用私钥加密,另一端用公钥解密,也确保了来源)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwgxz.html