网上查询了好多版本,在这里总结一下:
1.就传输协议与端口而言,http是HTTP协议运行在TCP之上,端口为80;https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上,用的端口为443。
2.就传输内容与身份认证而言,http传输的内容都是明文,客户端与服务器都无法验证对方的身份。https传输的内容都经过加密,加密采用的是对称加密。但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。
3.就网站认证证书而言。http协议不需要ca申请证书。https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。这个证书是由CA(certificate authority)颁布的,每次链接,网站都先去找CA拿一份证书,然后把这个证书一起发给客户,来证明网站的正确性。补充一下,google的https是他们自己公司的一个CA发的。