一、http协议介绍
HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP进行通信的HTTP的实现程序。
HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了
二、dubbo介绍
Dubbo是 Alibaba 开源的分布式服务框架远程调用框架,在网络间传输数据,就需要通信协议和序列化。
Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的,默认也是用的dubbo协议。
三、http协议和dubbo协议的区别
http协议和dubbo协议的区别主要有三点:
- 协议层区别
- socket层区别
- 安全不一样
协议层区别
HTTP ,HTTPS 使用的是 应用层协议
应用层协议:定义了用于在网络中进行通信和传输数据的接口
DUBBO接口使用的是 TCP/IP是传输层协议 传输层协议:管理着网络中的端到端的数据传输
决定了dubbo协议比http协议要快
socket层区别
dubbo默认使用socket长连接,即首次访问建立连接以后,后续网络请求使用相同的网络通道
http1.1协议默认使用短连接,每次请求均需要进行三次握手,而http2.0协议开始将默认socket连接改为了长连接
安全方面
dubbo设计之初基本都是考虑内网通讯,安全上基本没什么考虑,比http的安全差远了。
- 当前我们也可以做一些针对应用权限校验或者ip校验的。
特点
rpc长连接、传输效率较高,可定制化路由,适用于内部系统互联;
http短连接,协议标准化且易读,容易对接外部系统,适用于上层业务模块