http1.0 http1.1 http2.0比较

 1.0的HTTP版本,是一种无状态,无连接的应用层协议。


浏览器每次请求都需要与服务器建立一个TCP连接,服务器处理完成以后立即断开TCP连接(无连接),
服务器不跟踪也每个客户单,也不记录过去的请求(无状态)


问题:

无法复用连接
每次发送请求,都需要进行一次TCP连接,而TCP的连接释放过程又是比较费事的。这种无连接的特性会使得网络的利用率变低。
队头阻塞
由于HTTP1.0规定下一个请求必须在前一个请求响应到达才能发送,假设前一个请求响应一直不到达,那么下一个请求就不发送,后面的请求就阻塞了
能够“并行”发送多个请求。但服务器必须按照客户端请求的先后顺序依次回送相应的结果,以保证客户端能够区分出每次请求的响应内容,不允许并行的响应
浏览器厂商采取了另外一种做法,它允许我们打开多个TCP的会话,我们看到的并行,其实是不同的TCP连接上的HTTP请求和相应

HTTP1.1增加Connection字段,通过设置Keep-Alive保持HTTP连接不断卡。


避免每次客户端与服务器请求都要重复建立释放建立TCP连接。提高了网络的利用率
如果客户端想关闭HTTP连接,可以在请求头中携带Connection:false来告知服务器关闭请求。
HTTP1.1还加入了缓存处理(强缓存和协商缓存),新的字段如cache-control,支持断点传输

HTTP2.0在应用层和传输层之间增加一个二进制分层帧


所有HTTP2.0通信都在一个TCP链接上完成,这个链接可以承载任意流量的双向数据流。
每个数据流以消息的形式发送,而消息由一或多个帧组成。这些帧可以乱序发送,然后再根据每个帧头部的流标识符(Stream_id)重新封装
HTTP2.0里每个数据流都可以设置优先级和依赖,优先级高的数据流会被服务器优先处理和返回客户端。

https和http区别


1)http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL/TLS加密传输协议

HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。
2)HTTP无需认证证书,而https需要认证证书 
3)HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443

https是如何加密的

 

1. 客户端发起HTTPS请求

用户在浏览器里输入一个https网址,然后连接到server的443端口。

2. 服务端的配置

  采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3. 服务端返回协商的信息结果,传送证书(协商的信息结果包括选择使用的协议版本 version,选择的加密套件 cipher suite,选择的压缩算法 compression method、随机数 )

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4. 客户端解析证书

  这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书(公钥)对该随机值进行加密,这个随机值就是对称加密的密钥。

5. 传送加密信息

  这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6. 服务段解密信息

  服务端用私钥解密后,得到了客户端传过来的随机值(对称加密的密钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7. 传输加密后的信息

 这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8. 客户端解密信息

  客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

对称加密和不对称加密:

1.加密和解密用同一个秘钥的加密方式叫做对称加密;非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密。

2.对称加密解密的速度比较快,非对称加密和解密花费的时间长、速度相对较慢。

3.对称加密的安全性相对较低,非对称加密的安全性较高。

安全性相对较低

在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值