面试总是纷纷扰扰,等待结果妙不可言。
今日之惑:
1)分布式项目的实现原理
springcloud本身是一个servlet应用,而springboot则是嵌入式tomcat所以,需要一些胶水代码使得servlet应用跑在tomcat之中。springCloud的调用方式是restful,Spring Cloud也并不是和http+JSON强制绑定的,如有必要Thrift(Thrift除了可以通过TCP协议访问,还可以通过HTTP/HTTPS协议访问)、protobuf等高效的RPC、序列化协议同样可以作为替代方案,dubbo使用的是rpc框架,走的是TCP/IP协议。SpringCloud和dubbo对比而言,dubbo相当于SpringCloud的一个子集。
1.1)resutful和rpc的差别
RESTful通常采用http+JSON实现。
JSON-RPC是指通信协议采用二进制方式,而不是http,序列化采用JSON的形式。
2)HTTP和HTTPS的差别
HTTPS是HTTP的加密版。
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤:
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。