https和http区别
http的中文叫做超文本传输协议,它负责完成客户端到服务端的一系列操作,是专门用来传输注入HTML的超媒体文档等web内容的协议,它是基于传输层的TCP协议的应用层协议HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。
简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
1、 HTTPS和HTTP的区别主要如下: ? https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 ? http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 ? http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 ? http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 ? HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头 ? 在 OSI 网络模型中,HTTPS的加密是在传输层完成的,因为SSL是位于传输层的,TLS的前身是SSL,所以同理https:https是基于安全套接字的http协议,也可以理解为是http+ssl/tls(数字证书)的组合
https加密过程
https就是使用了非对称加密(一对公私钥进行加密解密)进行公钥传输,然后客户端通过公钥加密将自己的私钥发给服务端,以后就可以使用这个私钥进行消息的收发了。
简单来说就是:
- 服务器自己拥有公钥和私钥
- 服务器把公钥通过明文发送给用户
- 用户本地随机生成一个普通密钥,之后通过公钥加密,返还给服务器
- 服务器使用自己这本来就有的私钥进行公钥解密,获取用户随机出来的普通密钥
- 之后服务器和用户之间就可以通过这个普通密钥进行对称性加密通话
其中,为了防止在公钥传递的过程中有人拦截公钥,替换随机密钥,所以需要个第三方认证机构确认公钥的正确性
浏览器会内置一个受信任的CA机构列表。
第一阶段服务器会提供认证过的服务器证书,如果认证该服务器证书的CA机构,存在于列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。
否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移除我们不信任的CA机构。
|