区别
HTTP和HTTPS是两种不同的应用层协议,主要区别如下:
- 安全性:HTTP传输的数据都是明文,容易被窃听、篡改,而HTTPS传输的数据是经过加密的,能够保证传输的安全性。
- 数据传输方式:HTTP使用明文传输,而HTTPS使用加密传输。
- 默认端口号:HTTP的默认端口号是80,HTTPS的默认端口号是443。
- 证书认证:HTTPS需要使用数字证书,数字证书需要由认证机构(CA)颁发,用来证明网站的真实性和合法性,防止冒充和中间人攻击等安全问题。而HTTP则没有证书认证。
- 连接方式:HTTP是无状态连接,每个请求都是独立的,服务器不会记录客户端的状态。而HTTPS是有状态连接,因为需要在客户端和服务器之间建立加密通道,所以需要在客户端和服务器之间建立一种持久的连接。
- 性能:HTTPS由于需要进行加密处理,因此相比HTTP有一定的性能损失,但随着硬件和算法的不断升级,这种性能差距正在逐渐缩小。
总之,HTTPS相比HTTP更加安全可靠,能够有效地保护用户的隐私和数据安全。
传输过程
HTTP的传输过程:
- 客户端向服务器发送请求。
- 服务器接收到请求,根据请求的内容做出相应的响应。
- 服务器将响应的内容返回给客户端。
HTTPS的传输过程:
- 客户端向服务器发送HTTPS请求。
- 服务器向客户端返回SSL证书。
- 客户端验证SSL证书是否合法,如果合法,客户端生成随机数作为“对称密钥”,使用服务器公钥加密后发送给服务器。
- 服务器使用私钥解密客户端发送的“对称密钥”,并将解密后的“对称密钥”发送给客户端。
- 客户端和服务器使用“对称密钥”进行数据传输。
HTTPS的传输过程比HTTP多了一步SSL证书验证和对称密钥的交换过程,这样可以保证数据传输的安全性。
判断SSL证书的有效性:
客户端首先检查 SSL 证书的颁发机构是否可信(比如是否是受信任的证书颁发机构),如果不可信,则会给出警告;
如果证书颁发机构可信,则客户端会检查证书中的公钥是否和服务器返回的公钥一致,如果不一致,则会给出警告;
服务器端返回的数字证书本身是加密的,使用了非对称加密算法。数字证书是由数字证书颁发机构(CA,Certificate Authority)颁发的,包含了服务器公钥以及相关信息,同时数字证书颁发机构会对服务器的身份进行验证并签名。当客户端与服务器进行SSL/TLS握手过程时,服务器会将数字证书发送给客户端,客户端使用数字证书颁发机构的公钥进行解密,获取到服务器的公钥以及其他相关信息。这个过程中数字证书本身是加密的,而解密过程中使用的是数字证书颁发机构的公钥,因此可以保证数字证书的安全性和完整性。之后客户端和服务器使用服务器公钥进行加密通信。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/199223.html