HTTP与HTTPS的不同
1.HTTP的URL为http://开头,HTTPS的URL为https://开头
2.http协议使用TCP的80端口;https协议使用TCP的443端口
3.在OSI网络模型中,http可以明确是位于应用层;https是在http的基础上加上了SSL安全协议,而SSL是运输层协议,所以https是应用层和传输层的结合
4.HTTP是不安全的,而HTTPS是安全的
5.http协议对传输的数据不进行加密;https协议对传输的数据使用SSL安全协议进行加密,https加密需要CA签发的证书。
6.HTTP无需证书,HTTPS需要CA机构wosign颁发的SSL证书
7.总的来说,http效率更高,https安全性更高。
引申问题:
1、为什么https更安全?HTTPS是HTTP基于SSL加密后的传输协议
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
http的连接很简单,是无状态的 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
http是明文传输,传输的数据很可能被中间节点获取,从而导致数据传输不安全
https是加密传输,可以保证数据的传输安全
2、http的请求流程?
比如在地址栏输入地址 http://www.xxx.cn
这个地址如何进行访问?
这个地址域名,这个首先会到本地电脑去找一个文件 hosts文件,文件里面使用有这个域名对应的ip。
如果找到了ip,直接返回ip进行访问
如果找不到ip,到网络上去找一个域名解析服务器,服务器里面是否有域名对应的ip地址,
如果找到了ip,直接返回ip进行访问
域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
3、https的请求流程?
HTTPS就是基于SSL/TLS的HTTP请求,也就是在HTTP和TCP之间加了一层SSL/TLS,用于数据的加密,加强通讯的安全。
1、域名解析(DNS查询)
2、TCP握手(443端口)并进行SSL加密
3、http请求
4、服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
SSL加密的握手过程如下:
在https中,加密过程大致如下:
首先服务器将公钥给浏览器,浏览器拿到公钥之后,生成一个“会话密钥”,这个会话密钥属于对称加密,然后用公钥加密这个“会话密钥”发送给服务器,最后,在数据传输的过程中,就用这个会话密钥来加密数据。打个比方:我有二把钥匙,我把其中一把钥匙放在信封里,然后把信封交给你。但是这个信封只有你能打开。
上述的过程是在3次握手中完成,采用明文发送,握手完成以后,客户端和服务端就约定好了“会话密钥”,以后的数据传输,就采用这个会话密钥加密。