http https socket rpc grpc有啥区别联系

HTTP、HTTPS、Socket、RPC 、gRPC简介

  1. HTTP(Hypertext Transfer Protocol)
    1.1: HTTP是一种应用层协议,用于在客户端和服务器之间传输超文本数据,通常用于Web应用中。
    1.2: HTTP是基于请求-响应模型的,客户端向服务器发送请求,服务器返回相应的数据。
    1.3: HTTP是明文传输,安全性较低,但可以通过其他技术(如TLS/SSL)在其上层构建安全通道,即HTTPS。
  2. HTTPS(Hypertext Transfer Protocol Secure)
    2.1: HTTPS是在HTTP的基础上加入了安全层的通信协议,通过使用TLS/SSL来加密HTTP通信,提供更高的安全性。
    2.2: HTTPS使用加密算法对通信数据进行加密,防止数据被窃听或篡改,因此更适合于安全要求较高的场景。
  3. Socket
    3.1: Socket是一种编程接口(API),用于在网络上实现进程间通信(IPC)。
    3.2: Socket提供了一种编程模型,使得应用程序能够通过网络发送和接收数据。
    3.3: Socket可以基于TCP或UDP协议实现,因此可以用于实现各种类型的通信,例如客户端-服务器通信、对等网络通信等。
  4. RPC(Remote Procedure Call)
    4.1: RPC是一种通信协议和编程模型,用于实现分布式系统中不同计算机之间的远程调用。
    4.2: RPC允许程序调用另一个地址空间(通常是远程计算机上)的过程或函数,就像调用本地函数一样。
    4.3: RPC隐藏了底层通信细节,使得远程调用看起来像本地调用一样。
  5. gRPC
    5.1: gRPC是由Google开发的一种高性能、跨语言的远程过程调用(RPC)框架。
    5.2: gRPC基于HTTP/2协议,使用Protocol Buffers(protobuf)作为接口描述语言(IDL)来定义服务接口和消息格式。
    5.3: gRPC支持多种语言,包括C、C++、Java、Go、Python等,使得不同语言的系统可以方便地进行跨语言通信。

HTTP、HTTPS、Socket、RPC 、gRPC联系和区别

  1. HTTP、HTTPS、Socket、RPC 和 gRPC 都是用于实现网络通信的技术,但它们的实现方式、特点和应用场景有所不同。
  2. HTTP 和 HTTPS 是应用层协议,用于在客户端和服务器之间传输超文本数据,适用于Web应用。
  3. Socket 是一种编程接口,可以用于实现各种类型的通信,包括HTTP。
  4. RPC 和 gRPC 是用于实现分布式系统中不同计算机之间的远程调用,提供了更高级别的抽象和封装,隐藏了底层通信细节,使得远程调用更加方便和高效。
  5. gRPC 是基于HTTP/2协议的高性能、跨语言的RPC框架,采用Protocol Buffers作为接口描述语言,适用于构建分布式系统中的服务间通信。
相关推荐
Bruce_Liuxiaowei6 小时前
网站敏感文件_目录大全(分类记忆+风险标注)
运维·网络·网络协议·http·网络安全·https
charlee448 小时前
使用cpp-httplib发布HTTP服务
c++·http·json·cpp-httplib
爬山算法10 小时前
Netty(22)如何实现基于Netty的HTTP客户端和服务器?
服务器·网络协议·http
爱吃香蕉的阿豪10 小时前
NET Core中ConcurrentDictionary详解:并发场景下的安全利器及服务端实践
安全·http·.netcore·高并发
小阿宁的猫猫1 天前
CSRF漏洞的原理、防御和比赛中的运用
安全·http·xss·csrf
水上冰石1 天前
harbor使用https之证书生成
服务器·数据库·https
全栈工程师修炼指南1 天前
Nginx | HTTPS 加密传输:客户端与Nginx服务端 SSL 双向认证实践
运维·网络·nginx·https·ssl
教练、我想打篮球1 天前
120 同样的 url, header, 参数, 使用 OkHttp 能够成功获取数据, 使用 RestTemplate 报错
http·okhttp·resttemplate·accept
zfj3211 天前
websocket为什么需要在tcp连接成功后先发送一个标准的http请求,然后在当前tcp连接上升级协议成websocket
websocket·tcp/ip·http
杀手不太冷!1 天前
Jenkins的安装与使用;git clone url的时候,url为http和ssh时候的区别
git·http·jenkins