新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。
多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。
header压缩,如上文中所言,对前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
服务端推送(server push),同SPDY一样,HTTP2.0也具有server push功能。
(1)HTTPS 协议需要到CA(电子商务认证机构)申请证书,一般免费证书很少,需要交费。
(2)HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的ssl加密传输协议
(3)HTTP 和 HTTPS 使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
(4)HTTP 的连接很简单,是无状态的
(5)HTTPS 协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比 HTTP 协议安全
(6)HTTPS 内容传输经过完整性校验
(7)HTTPS 内容经过对称加密,每个连接生成一个唯一的加密密钥
(8)HTTPS 第三方无法伪造服务端(客户端)身份
HTTP + 加密 + 认证 + 完整性保护 = HTTPS
SSL采用的是一种叫做公开密钥加密的加密处理方式
1.加密通信与纯文本通信相比,消耗更多的CPU和内存资源
2.购买证书是要钱的!
3.少许对客户端有要求的情况下,会要求客户端也必须有一个证书.
本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.
https连接缓存不如http高效,大流量网站如非必要也不会采用,流量成本太高。
好处:
(1)使用https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
(3)https是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
总结:加密传输,身份认证,完整性的保护 大幅增加了中间人攻击的成本。 保证了安全性。
TCP是传输层协议,定义数据传输和连接方式的规范。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。
HTTP 超文本传送协议(Hypertext Transfer Protocol )是应用层协议,定义的是传输数据的内容的规范。
HTTP协议中的数据是利用TCP协议传输的,特点是客户端发送的每次请求都需要服务器回送响应,它是TCP协议族中的一种,默认使用 TCP 80端口。
好比网络是路,TCP是跑在路上的车,HTTP是车上的人。每个网站内容不一样,就像车上的每个人有不同的故事一样。