在搜复习视频的时候,有一个视频名字挺吸引我的,说“作为程序猿,你实在没有理由还不懂https”。可是我还真是不懂,所以就来学学吧!
了解https之前,先了解http:
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。
百度百科上说“HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。”
https有两种基本的加解密算法类型:
1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
2)非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
https的通信过程:
https通信的优点:
1)客户端产生的密钥只有客户端和服务器端能得到;
2)加密的数据只有客户端和服务器端才能得到明文;
3)客户端到服务端的通信是安全的。
http和https有一些什么区别:
1、https协议需要到CA申请证书(CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关)
2、http信息都是明文传输,https具有安全性的ssl加密传输协议。
3、http端口是80,https默认端口是443
4、http是一种无状态,https由ssl+http组成。
https在安全方面做的很好:
1、认证用户或服务器,确保数据发送到正确的客户机或服务器
2、加密数据防止数据中途被窃听
3、维护数据的完整性,确保数据在传输过程中不能被改变。
当然,安全性做的好了,速度肯定就会慢一点,用HTTPS协议加载的页面比较慢,但是也仅限于第一次而已。