一、HTTP和HTTPS的介绍:
1、HTTP:超文本传输协议(Hyper Text Transfer Protocol)
使用TCP协议(一般的TCP端口号是80)
2、HTTPS是安全的HTTP通道。HTTPS的安全基础是SSL。
HTTPS协议位于TCP/IP协议和各应用层协议之间。
SSL协议可分为两层:
(1)SSL记录协议(SSL Record Protocol),为高层协议提供数据封装、压缩、加密等功能。
(2)SSL握手协议(SSL Handshake Protocol),用于实际的数据传输之前,双方的身份认证
协商加密算法、交换加密密钥等。
二、HTTP和HTTPS的区别:
1、HTTP是明文传输,HTTPS则是有安全性的SSL加密传输协议。
2、HTTP的端口用80,HTTPS的端口用443。
3、HTTP的连接是无状态的,HTTPS协议是由SSL+HTTP协议构建的。
(无状态的意思是数据包的发送、传输和接收都是相互独立的)
三、HTTPS相对于HTTP的改进:
双向的身份认证:
(1)客户端发起SSL握手消息给服务端要求连接。
(2)服务端将证书发送给客户端。
(3)客户端检查服务端证书,确认服务端身份。如果检查无误进入下一步。
如果检查有误则将决定权交给用户,如果用户选择继续,则服务端认可服务端身份。
(4)服务端要求客户端发送证书,并检查是否通过。认证失败则关闭连接,认证成功则从客户端证书中获得客户端公钥,一般为1024或者2048位。
第(4)步顺利完成,则服务器客户端双方的身份认证结束,双方确认身份都是真实可靠的。
四、HTTPS的优点和缺点:
优点:
1、使用HTTPS可完成用户(通过客户端)和服务器的双向认证,确保数据的传输在正确客户机和服务器之间。
2、HTTPS协议是由SSL+HTTP协议保障的可进行加密传输、身份认证的网络协议,比HTTP协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。
3、HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但增加了中间人攻击的成本。
缺点:
4、HTTPS协议握手阶段比较费时,会使用页面的加载时间拖长。
5、HTTPS的数据开销比HTTP更大。
6、HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器挟持等方面几乎没作用。
补充:
1、采用HTTPS协议的服务器必须要有一套数字证书,可自己制作,也可向机构申请。
2、互联网有许多的服务需要使用证书来验证身份,以至于客户端(操作系统、浏览器)无法内置所有证书,需要通过服务端将证书发送给客户端。
3、客户端内置的是CA的根证书(Root Certificate),HTTPS协议中服务器会发送证书链(Certificate Chain)给客户端。