HTTPS和HTTP的区别:
1.安全性:
- HTTP是明文传输协议,数据在传输的过程中不加密,容易被窃听和篡改。
- HTTPS通过使用SSL或TLS协议对数据进行加密,确保传输的数据在网络上是安全的,不容易被窃取和篡改。
2.加密方式:
- HTTP不提供加密机制,数据以明文形式传输
- HTTPS使用SSL或TLS协议来加密传输的数据,使用公钥加密和私钥解密的方式确保数据的机密性和完整性。
3.端口号:
- HTTP默认使用端口号80进行通信
- HTTPS默认使用443进行通信
4. 证书:
- HTTPS需要使用SSL证书,证书由可信的第三方机构颁发,用于验证服务器的身份。
- HTTP不需要证书验证,任何人都可以发送HTTP请求。
5.连接方式:
- HTTP是无状态协议,每个请求都是独立的,服务器不会保留之前的请求信息。
- HTTPS可以用持久连接,通过SSL会话复用,提高性能和效率。
6. SEO影响:
- HTTPS被搜索引擎视为安全的协议,使用HTTPS可以对网站的搜索排名产生积极影响。
- HTTP没有加密,可能会受到搜索引擎的负面影响。
总的来说,HTTPS相对于HTTP提供了更高的安全性和数据保护,通过加密传输数据,确保数据的机密性和完整性。因此,在涉及用户隐私和敏感信息传输的场景中,使用HTTPS协议是更好的选择。
HTTPS的工作原理,HTTPS是怎么样建立连接的?
如图:
解释:
- 客户端向服务器发起HTTPS请求,连接到服务器的443端口
- 服务端产生一对公私钥,然后将自己的公钥发送给CA机构,CA机构也有一对公私钥,然后CA机构使用自己的私钥将服务端发来的公钥进行加密,产生一个CA数字证书。
- 服务端响应客户端的请求,将CA机构产生的证书发给客户端。
- 客户端将服务端发来的数字证书进行解析,验证这个数字证书是否合法,如果不合法则发送一个警告,如果合法,取出服务端生成的公钥。客户端取出公钥并生成一个随机码key。
- 客户端将加密后的随机码key发送到服务端,作为接下来对称加密的密钥。
- 服务端接收到随机码key后,使用自己的私钥对它进行解密,然后获得随机码key。
- 服务端使用随机码key对传输的数据进行加密,在把加密传输后的内容发给客户端。
- 客户端使用自己生成的随机码key解密服务端发来的数据,之后,客户端和服务端通过对称加密传输数据,随机码key作为传输的密钥。