一、芝麻开门:HTTP/HTTPS是什么
HTTP(Hypertext Transfer Protocol)是一种用于传输超媒体文档(例如 HTML 文件)的应用层协议。所有的WWW文件都必须遵守这个标准。HTTP 是一种无状态的请求响应协议。
HTTPS(Hypertext Transfer Protocol Secure)是以安全为目标的 HTTP 通道,简单来说是HTTP的安全版。HTTPS通过使用SSL/TLS协议来保证数据传输的安全。
二、干货:HTTPS如何保证安全
1、数据加密
HTTPS 在数据传输过程中采用了 SSL/TLS 协议来对数据进行加密,客户端与服务端之间传输的数据都是加密后的。同时,HTTPS 还使用了对称加密和非对称加密两种加密算法来完成数据的加密/解密工作。
// 加密示例代码 function encrypt(data) { // 对称加密 let aesKey = generateAesKey(); let encryptedData = aesEncrypt(data, aesKey); // 非对称加密 let publicKey = getRsaPubKeyFromCert(serverCert); // 从服务端证书获取公钥 let encryptedAesKey = rsaEncrypt(aesKey, publicKey); return { encryptedData, encryptedAesKey }; }
2、数字证书认证
HTTPS 中,服务端必须拥有公开认可的数字证书,数字证书一般由 CA(Certificate Authority) 颁发。 CA 会对服务端进行身份验证,签发数字证书,证书包含了服务端的公钥、证书持有者信息、证书有效期等信息。
在客户端与服务端建立连接时,服务端会把数字证书发送给客户端,客户端再根据 CA 的公钥对数字证书进行校验。如果校验通过,客户端便信任服务端,接受服务端发送的信息。
// 数字证书验证示例代码 function verifyCert(certificate) { let caCert = getCaCertFromSystem(); // 获取系统自带的 CA 证书 // 验证数字证书的合法性 let { publicKey } = getPublicKeyFromCert(certificate); // 从证书中获取公钥 let caPublicKey = getPublicKeyFromCert(caCert); // 获取 CA 证书的公钥 let isValid = rsaVerify(certificate.signature, certificate.tbs, caPublicKey); // 验证签名是否正确 return isValid; }
3、安全协议
SSL(Secure Socket Layer)和 TLS(Transport Layer Security)是两种不同的安全协议,两者的目的都是为了确保数据在传输过程中的安全性。
SSL 协议曾经作为 HTTPS 中加密通道的唯一选择,但由于一些安全漏洞的出现,SSL 协议已经被弃用,取而代之的是 TLS 协议。
三、零散但重要:其他补充说明
1、HTTPS性能
相比于 HTTP,在数据传输过程中 HTTPS 需要进行加密和解密,因此在性能上会有所折扣,但是越来越多的网站选择使用 HTTPS,主要原因是 HTTPS 可以提供更为安全的用户访问体验。
2、HTTPS与SEO
HTTPS 对搜索排名的影响主要是正面的。2014 年底,Google 宣布 HTTPS 是一个轻微但是信誉良好的搜索信号。因此,通过使用 HTTPS 可以对网站的搜索排名产生积极的影响。
3、快速参考云南教育公共服务平台htpps
云南教育公共服务平台通过使用 HTTPS 来保证用户的访问数据安全,同时也为学生和老师提供了更加可靠的服务。
以上就是HTTPS的详细解释,希望对大家有所帮助!
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/192390.html