C++复习之路:网络相关基础知识
HTTP和HTTPS的区别,以及HTTPS有什么缺点?
区别:
1)HTTP协议是以明文的方式在网络中传输数据,而HTTPS协议传输的数据则是经过TLS加密后的,HTTPS具有更高的安全性
2)HTTPS在TCP三次握手阶段之后,还需要进行SSL (Secure Sockets Layer安全套接字协议)的握手,协商加密使用的对称加密密钥
3)HTTPS协议需要服务端申请证书,浏览器端安装对应的根证书(既然对称加密,那么客户端/浏览器就需要和服务端对应上)
4)HTTP协议端口是80,HTTPS协议端口是443
HTTPS的优点:
HTTPS传输数据过程中使用密钥进行加密,所以安全性更高
HTTPS协议可以认证用户和服务器,确保数据发送到正确的用户和服务器
HTTPS的缺点:
HTTPS握手阶段延时较高:由于在进行HTTP会话之前还需要进行SSL握手,因此HTTPS协议握手阶段延时增加
HTTPS部署成本高:一方面HTTPS协议需要使用证书来验证自身的安全性,所以需要购买CA证书;另一方面由于采用HTTPS协议需要进行加解密的计算,占用CPU资源较多,需要的服务器配置或数目高
HTTPS的实现原理:
大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。
但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。
HTTPS 的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:
证书验证阶段:
-
浏览器发起 HTTPS 请求。
-
服务端返回 HTTPS 证书。
-
客户端验证证书是否合法,如果不合法则提示告警。
数据传输阶段:
-
当证书验证合法后,在本地生成随机数。
-
通过公钥加密随机数,并把加密后的随机数传输到服务端。
-
服务端通过私钥对随机数进行解密。
-
服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。
HTTPS的实现原理部分的作者:程序员追风
链接:https://www.jianshu.com/p/8307b5cc073c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文地址:https://blog.csdn.net/weixin_42067304/article/details/107640291