http和https有哪些不同
1.数据传输的安全性:http非加密,https加密
2.端口号:http默认80端口,https默认443端口
3.性能:http基于tcp三次握手建立连接,https在tcp三次握手后还有TLS协议的四次握手确认加密,所以http建立连接更快。
4.SEO影响:搜索引擎更偏向于https的网站。
SEO(Search Engine Optimization,搜索引擎优化)是一种通过优化网站内容和结构,提高网站在搜索引擎自然搜索结果中排名的方法。SEO 的目标是增加网站的可见性,吸引更多的有机(非付费)流量,从而提高网站的知名度和业务价值。
我们可能的第一想法就是http是不安全的https是安全的,但是可能不怎么了解为什么,我们现在可以从底层出发了解一下为什么https是安全的。
https之所以安全就是因为数据加密,也就是在tcp三次握手后还有一次加密的操作(TLS协议握手)
TLS协议分为两种算法RSA算法和ECDHE算法:
RSA算法握手流程:
1.客户端问候:主要就是发送以下信息比如使用的TLS的版本、加密套件和随机数。
2.服务器问候:服务端收到客户端的消息后会先检验是否支持TLS的版本,然后选择加密套件和生成一个随机数
3.客户端密钥交换 + 使用加密 + 客户端完成:客户端密钥交换:客户端在验证完服务器的证书后会发送密钥给服务端并且这时还会生成一个新的随机数,然后发送"开始加密"和"客户端结束"消息给服务端
4.服务器使用加密 + 服务器完成:服务端发送"开始使用加密"和服务端结束消息
时序图:
ECDHE算法握手流程与RSA大致一致就是加密原理不一样,ECDHE 是基于椭圆曲线的 Diffie-Hellman 算法,用于密钥交换。它利用椭圆曲线上的离散对数问题,生成临时的公钥和私钥对,确保每次通信的密钥都是独立的,提供前向安全性。
总之知道https的TLS协议的四次握手流程就行,知道RSA和ECDHE算法的区别在哪。