计算机网络基础之HTTP与HTTPS

HTTP与HTTPS介绍

HTTP协议:早期专门传输超文本数据html,随着协议发展多元化,不限制数据格式 但是由于HTTPS协议是以明文方式发送内容,不提供任何方式的数据加密,如果恶意方截取中间的传输报文,就可以直接获取其中的信息,所以为了解决HTTP协议的安全问题,就需要使用另一种协议–HTTPS HTTPS协议: https就是http加密之后的协议,在HTTP协议的基础上,加入了SSL/TLS协议,SSL/TLS依靠证书验证服务器的身份,对其之间的通信进行加密 所以HTTPS协议作用有两个:1.建立通信安全通道 2.确认网站的真实性

HTTP与HTTPS区别

    HTTP超文本传输协议,信息是明文,HTTPS是加密传输协议,比HTTP安全 由于HTTP与HTTPS连接方式不同,HTTP为80,HTTPS为443

HTTP流程

因为HTTP由请求和响应构成,所以永远都是客户端向服务端发起响应,服务端回应响应 1.地址解析(DNS) 2.封装HTTP请求数据包 3.封装TCP包建立TCP连接 4.客户端发送请求命令 5.服务端进行响应 6.服务端关闭TCP连接

HTTPS加密的过程

对称加密算法 / 非对称加密算法

对称加密算法:通信双方使用相同的加密方式进行解密,加密与解密的算法是相同的 非对称加密算法:加密与解密使用的算法不同

对称加密与非对称加密的优缺点: 对称加密算法:使用时间长了,很容易破解,而且存在很多隐患,但是解密速度比较快 非对称加密算法: 优点:

SSL加密

SSL加密:即使用了对称加密也使用了非对称加密 服务端产生一个公钥和一个私钥,通信的时候将公钥传递给对方,对方使用公钥对数据进行加密,收到数据后,使用私钥对加密后的数据进行解密得到原始数据 因此ssl加密集合了对称加密和非对称加密两种方式:使用对称加密保护协商对称加密算法的过程,实际通信使用协商的加密通信

ssl加密通信过程: 1.在通信前,服务器将公钥传递给对方 2.客户端使用公钥对自己支持的对称加密算法和一个随机数进行加密,传递给服务器 3.服务器收到这个加密后的数据,使用私钥进行解密,得到客户端支持的对称加密算法和一个随机数,也给客户端响应一个随机数 4.双方通过这两个随机数和支持的加密算法计算的到一个对称加密算法 5.后续通信则使用这个协商的对称加密算法完成

但是SSL加密通信虽然保证了加密后的数据不容易被破解,但是公钥的传输过程中无法保证其安全性(当公钥被劫持,此时无法保证传输的安全性),也就是说SSL加密也存在安全问题

CA证书

由于非对称加密可能会导致的安全问题,所以此时就需要CA证书来保证安全性 CA证书中包含的信息 :证书颁发机构信息,自己的身份信息,公钥信息等信息 通信双方在通信的时候,首先不应该是数据加解密,而是应该先去认证跟我通信的这一方是否为真正通信的一方,通信方身份认证就是通过签名证书实现验证,并且这个签名证书必须是权威机构颁发的 相当于一个公司产生了私钥和公钥之后,拿着公钥去权威机构生成证书 通信之前将这个证书发送给对方,既可以进行身份验证也可以传递公钥信息,保证了公钥传输的安全性

CA证书保护的是对称算法协商的过程

    客户端知道的数据:客户端的加密算法和随机数 服务端收到后使用私钥解密,得到算法和随机数 随机数是只有客户端和服务端知道的 只有拿到双方的信息才能计算得到解密方法

签名证书流程 1.公司生成公钥和私钥,拿着公钥去权威机构颁发证书 2.在通信前,先传递证书给对方,进行身份验证,并且传递公钥信息 3.身份验证无误后,就可以进行ssl加密流程

HTTPS缺点

    SSL证书需要购买,功能越强大费用越高 HTTPS连接缓存不如HTTP高效,流量成本高 HTTPS连接服务器占用资源较高 SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,使用IPV4无法支撑
经验分享 程序员 微信小程序 职场和发展