HTTP和HTTPS

Posted _BitterSweet

tags:

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

HTTP相当于超文本传输协议,但是服务器不会记录HTTP的状态,减轻了服务器的开销,但是在完成关联性操作的时候容易出现问题,因为用会员看视频,不可能每看一集登陆一次,所以使用Cookie技术解决,通过在请求和响应报文中写入Cookie信息来控制客户端的状态,在客户端第一次请求后,服务器会下发一个装有客户信息的Cookie,后续客户端请求服务器的时候,带上Cookie,服务器就能识别出是谁

明文传输:相当于信息裸奔,对用户级不安全
不安全:通信使用明文传输,账号信息容易泄露,未验证通信双方,访问虚假用户,传输过程中报文遭到恶意篡改

HTTPS为了解决HTTP的缺陷而引入的,在TCP/和HTTP层之间加入了SSL/TLS安全协议,使得报文能够加密传输

引入几个功能点:
混合加密:对称加密+非对称加密,采用的原因:对称加密使用一个密钥,速度快,密钥必须保密// 非对称加密使用两个密钥:公钥和私钥,公钥可以任意发布而私钥保密,解决了密钥交换问题但速度慢

客户端向服务端发起SSL连接请求 --》服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥 --》 客户端使用公钥对双方通信的对称密钥进行加密,并发送给服务器端 --》服务器利用自己唯一的密钥对客户端发来的对称密钥进行解密 --》 进行数据传输,服务器端和客户端双方用公有的相同的对称密钥对数据进行加密解密,可以保证数据收发过程中的安全,即使第三方获得数据包,也无法对其进行加密解密或篡改

摘要算法:能够为数据生成独一无二的指纹,用于校验数据的完整性,解决了篡改风险,客户端在发送明文前通过摘要算法算出明文的指纹,发送的时候把指纹+明文一同加密成密文后,发送给服务器,服务器解密后,用相同的摘要算法算出发送过来的明文,通过比较客户端携带的指纹和当前的指纹进行一个比较,相同则数据是完整的

数字证书:客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密,如果保证公钥不被篡改?借助第三方权威机构CA数字证书认证机构,将服务器公钥放在数字证书中,只要证书是可信的,公钥就是可信的
①服务器把自己的公钥注册到CA
②CA用自己的私钥将服务器的公钥数字签名并颁发数字证书
③客户端拿到服务器的数字证书后,使用CA的公钥确认服务器的数字证书的真实性
④从数字证书获取服务器公钥后,使用它对报文进行加密后发送
⑤服务器用私钥对报文解密,解决了冒充的风险

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

http和https的区别?

HTTPS原理

http 与 https

网络相关

浅析https

前端面试题-http和https区别